| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:brute forceIn Reply To:Re:brute force Posted by:ysjjovo at 2011-03-13 21:40:12 dp[n][s]为n个数字和为s的方案数
则转移方程:dp[n+1][s+i]+=dp[n][s] -1<i<10
代码:
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
if(n&1){
cout<<0<<endl;
return 0;
}
int i,j,k;
int dp[6][9*5+1];
int max=9;
memset(dp,0,sizeof(dp));
fill(dp[1],dp[1]+10,1);
for(i=1;i<n/2;i++){
for(j=0;j<=max;j++){
for(k=0;k<=9;k++){
dp[i+1][j+k]+=dp[i][j];
}
}
max+=9;
}
int ans=0;
for(j=0;j<=max;j++){
ans+=(dp[i][j]*dp[i][j]);
}
cout<<ans<<endl;
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator