永发信息网

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

答案:2  悬赏:80  手机版
解决时间 2021-03-22 16:14
  • 提问者网友:流星是天使的眼泪
  • 2021-03-22 03:11
#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;}
最佳答案
  • 五星知识达人网友:毛毛
  • 2021-03-22 04:14
C++在C上面发展的,增加了面向对象内容,响应的函数执行的有更多额外的东西处理,时间略长一点是可以理解的。
全部回答
  • 1楼网友:零点过十分
  • 2021-03-22 04:27
超时主要是算法不够好,设计好算法,一般不会超时的。还有,慎用迭代这种方法,虽然好想,但很容易超时的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯