HDU-1016 Prime Ring Problem DFS
生活随笔
收集整理的這篇文章主要介紹了
HDU-1016 Prime Ring Problem DFS
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡單DFS,需要注意的是最后的那個數加上一要是個素數。
代碼如下:
#include <cstring> #include <cstdlib> #include <cstdio> #include <cmath> using namespace std;int hash[25], rec[25], cnt;bool isprime( int x ) {if( x<= 1 ) return false;if( x== 2 ) return true;int lim= sqrt( x );for( int i= 2; i<= lim; ++i ){if( x% i== 0 ) return false;}return true; }void DFS( int last, int cnt, int N ) {if( cnt== N ){if( isprime( rec[N- 1]+ 1 ) ){for( int i= 0; i< cnt; ++i ){printf( i== 0? "%d": " %d", rec[i] );}puts( "" );}return;}for( int i= 1; i<= N; ++i ){if( !hash[i]&& isprime( last+ i ) ){rec[cnt]= i;hash[i]= 1;DFS( i, cnt+ 1, N );hash[i]= 0;}} }int main() {int N, ca= 0;while( scanf( "%d", &N )!= EOF ){rec[0]= 1;hash[1]= 1;printf( "Case %d:\n", ++ca );DFS( 1, 1, N );puts( "" );}return 0; }轉載于:https://www.cnblogs.com/Lyush/archive/2011/08/11/2135494.html
總結
以上是生活随笔為你收集整理的HDU-1016 Prime Ring Problem DFS的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新建物料组!
- 下一篇: Excel 的点点滴滴