标签:
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 5664 | Accepted: 3280 |
Description
3 1 2 4 4 3 6 7 9 16Behind FJ‘s back, the cows have started playing a more difficult game, in which they try to determine the starting sequence from only the final total and the number N. Unfortunately, the game is a bit above FJ‘s mental arithmetic capabilities.
Input
Output
Sample Input
4 16
Sample Output
3 1 2 4
Hint
#include<cstdio> #include<cstring> #include<cmath> #include<iostream> #include<algorithm> using namespace std; #define mem(x,y) memset(x,y,sizeof(x)) #define SI(x) scanf("%d",&x) #define PI(x) printf("%d",x) #define P_ printf(" ") const int MAXN=1010; int ans[MAXN]; int vis[MAXN]; int N,M; int flot; int a[15]; void dfs(int num){ if(flot)return; if(num==N){ int sum=0,temp=N; for(int i=0;i<N;i++)a[i]=ans[i]; while(temp>1){ for(int i=0;i<temp-1;i++){ a[i]+=a[i+1]; } temp--; } sum=a[0]; if(sum==M){ for(int i=0;i<N;i++){ if(i)P_; printf("%d",ans[i]); } puts(""); flot=1; } return ; } for(int i=0;i<N;i++){ if(vis[i+1])continue; ans[num]=i+1; vis[i+1]=1; dfs(num+1); vis[i+1]=0; } } int main(){ while(~scanf("%d%d",&N,&M)){ if(N==1){ puts("1");continue; } mem(vis,0); flot=0; dfs(0); } return 0; }
标签:
原文地址:http://www.cnblogs.com/handsomecui/p/5244651.html