HDU1016.....dfs和&&的短路作用

来源:互联网 发布:php socket编程 断开 编辑:程序博客网 时间:2024/06/06 19:03
首先直接上代碼,這題是第一次發現&&的短路作用
/** * *Dtcg *2014.12.09 ***************/#include <cstdio>#include <map>#include <cmath>#include <vector>#include <sstream>#include <cstring>#include <fstream>#include <iostream>#include <algorithm>using namespace std;int n,sum[21];bool use[21];inline bool is_prime(int x){for(int i=2;i*i<=x;i++)if(x%i==0)return 0;return 1;}inline void dfs(int cur){if(cur==n&&is_prime(sum[n-1]+1)){printf("%d",sum[0]);for(int i=1; i<n; i++)printf(" %d",sum[i]);cout<<endl;}elsefor(int i=1;i<=n;i++)if(is_prime(i+sum[cur-1])&&!use[i]){sum[cur]=i;use[i]=true;dfs(cur+1);use[i]=false;}}int main(){int k=1;while(cin>>n){memset(sum,0,sizeof sum);memset(use,0,sizeof use);sum[0]=use[1]=1;printf("Case %d:\n",k++);dfs(1);cout<<endl;}return 0;}

看這兩句

if(is_prime(i+sum[cur-1])&&!use[i])

在看

if(!use[i]&&is_prime(i+sum[cur-1]))

會發現後者需要的時間更多,所以呢,這是&&的短路作用

0 0
原创粉丝点击