永发信息网

同样的代码,为什么用C不超时,用C++却超时了

答案:2  悬赏:80  手机版
解决时间 2021-03-22 16:14
#include#include
using namespace std;
#define MAXN 10 + 1;
int n;int a[MAXN], p[MAXN];
void print(){ int i; for( i = 1; i < n; ++i ) cout << a[i] << ' '; cout << a[i] << endl;}
void DFS( int dep ){ if( dep > n ) print(); else { for( int i = 1; i <= n; ++i ) { if( p[i] ) { a[dep] = i; p[i] = 0; DFS( dep + 1 ); p[i] = 1; } } }}
int main(){ cin >> n; memset( p, 1, sizeof(p) );
DFS(1);
return 0;}
#include#include
#define MAXN 10 + 1
int n;int a[MAXN], p[MAXN];
void print(){ int i; for( i = 1; i <= n; ++i ) printf( "%d ", a[i] ); putchar('\n');}
void DFS( int dep ){ if( dep > n ) { print(); return; } else { for( int i = 1; i <= n; ++i ) { if( p[i] ) { a[dep] = i; p[i] = 0; DFS( dep + 1 ); p[i] = 1; } } }}
int main(){ scanf( "%d", &n ); memset( p, 1, sizeof(p) );
DFS(1);
return 0;}
最佳答案
C++在C上面发展的,增加了面向对象内容,响应的函数执行的有更多额外的东西处理,时间略长一点是可以理解的。
全部回答
超时主要是算法不够好,设计好算法,一般不会超时的。还有,慎用迭代这种方法,虽然好想,但很容易超时的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
自我克制是什么意思
Mr.Blake is very popular because of his go
初中探究性物理小论文 300字左右
清波鱼的特性
婚纱店做门市需要长相嘛
我在s6隐藏分是1400 到了s7会背分到啥段位?
电脑主板配置怎么看,怎样查电脑主板名称?
bootstrap怎样在表单里面只能填数字
单选题有关非条件反射的叙述中,不正确的一项
辽宁省通信局地址在什么地方,想过去办事
如果你的女朋友不能生孩子,你会跟她分手吗
狗狗磨牙棒什么时候用,狗狗的磨牙棒能用多久
驻马店市公安局交通管理支队车管所神州车城服
炎岷大乱斗是什么游戏
一千字关于开班干会迟到反思
推荐资讯
天涯明月刀ol神威修罗需要升级吗
The action film has attracted (吸引) milli
怎么反面说那些把你当棋子用的人
太平洋人寿保险中的步步高增额终身寿险具体是
公积金卡去哪里办理,住房公积金卡丢了要到哪
二航嘉苑地址在什么地方,想过去办事
QQ飞车休闲区琳琅湾怎样把自己卡到海里
川丰种业在什么地方啊,我要过去处理事情
毕业大补考,VB怎么破
短途徒步需要带什么,去徒步三天左右,有什么
菠萝种植多久结果,佛手瓜现在种上,什么时候
社保卡激活后,每个月要交多少钱?要交钱的话
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?