题目
那么先把A1,A2所组成的等式列出来:
解出A1:
之后,我们可以发现问题变成了求1~n之间任意和为A1的可能性——01背包。顺便看一眼,要用long long!
完整代码:
#include<bits/stdc++.h> using namespace std; int n,m; long long f[100][501];//f[i][j]:在前n个数,合为j的情况下的可能性。 int main() { ios::sync_with_stdio(false); cin>>n>>m; f[0][0]=1; for(int i=1;i<=n;i++) { for(int j=0;j<=i;j++) { f[i][j]=f[i-1][j]; } for(int j=i;j<501;j++) { f[i][j]=f[i-1][j]+f[i-1][j-i]; } } int t=((n+1)*n/2+m)/2;//解出来的A1用到了 cout<<f[n][t];//注意输出 return 0; }
标签:第十二届,int,T4,long,A1,省赛 From: https://www.cnblogs.com/wjk53233/p/17255736.html