题意 : 让你找出1到10^9中和为s的数有多少个。
思路 : 自己没想出来,看的题解,学长的题解报告
//URAL 1353
#include <iostream>
#include <stdio.h>
#include <string.h> using namespace std; int dp[][] ; int main()
{
int s ;
memset(dp,,sizeof(dp)) ;
for(int i = ; i < ; i++)
{
dp[][i] = ;
dp[i][] = ;
}
for(int i = ; i < ; i++)
for(int j = ; j < ; j++)
for(int k = ; k >= ; k--)
if(j >= k)
dp[i][j] += dp[i-][j-k] ;
while(~scanf("%d",&s))
{
if(s == )
printf("10\n") ;
else printf("%d\n",dp[][s]) ;
}
return ;
}