标签:nyoj
4 1 2 4 7 13 4 1 2 4 7 15
Of course,I can! Sorry,I can‘t!
直接dfs用时长,可以剪枝
剪枝代码:用时12ms
01.#include<iostream>02.using namespace std;03.int n,k,a[25];04.bool dfs(int p,int sum)05.{06.if(sum==k)return 1;07.if(p==n||sum>k)return 0;08.if(dfs(p+1,sum))return true;09.else return dfs(p+1,sum+a[p]); 10.}11.int main()12.{13.while(cin>>n)14.{15.for(int i=0;i<n;i++)16.cin>>a[i];17.cin>>k;18.if(dfs(0,0))19.cout<<"Of
course,I can!"<<endl;20.else21.cout<<"Sorry,I
can‘t!"<<endl;22.}23.return 0;24.}
普通dfs:用时860ms
01.#include<iostream>02.using namespace std;03.int n,k,a[25];04.bool dfs(int p,int sum)05.{06.if(p==n)return sum==k;07.if(dfs(p+1,sum))return true;08.if(dfs(p+1,sum+a[p]))return true;09.return false; 10.}11.int main()12.{13.while(cin>>n)14.{15.for(int i=0;i<n;i++)16.cin>>a[i];17.cin>>k;18.if(dfs(0,0))19.cout<<"Of
course,I can!"<<endl;20.else21.cout<<"Sorry,I
can‘t!"<<endl;22.}23.return 0;24.}
NYOJ-927 The partial sum problem
标签:nyoj
原文地址:http://blog.csdn.net/justesss/article/details/38041665