标签:Digit target int 题解 rep P1118 Backward sum
P1118 [USACO06FEB]Backward Digit Sums G/S 题解
···
#include<bits/stdc++.h> #define rep(i,x,n) for(int i=x;i<=n;i++) using namespace std; int s[20][20];//系数 int st[20];//判断dfs时数有没有被枚举过 int d[20];//数字 vector<int> q; int n,target; void init(int n=12) { rep(i,1,n) d[i]=i;//初始化数组 s[1][1]=1; rep(i,2,n) rep(j,1,n) s[i][j]=s[i-1][j-1]+s[i-1][j];//初始化杨辉三角系数 } void dfs(int x,int sum) { if(sum>target) return; if(x==n&&sum==target) { for(auto i:q) cout << i << ' '; exit(0); } rep(i,1,n) { if(!st[i]) { st[i]=1; q.push_back(i); dfs(x+1,i*s[n][x+1]+sum); q.pop_back(); st[i]=0; } } } int main() { init();//预处理出系数 cin >> n >> target; dfs(0,0); return 0; }
···
标签:Digit,target,int,题解,rep,P1118,Backward,sum 来源: https://www.cnblogs.com/hssliuscat/p/16103973.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。