【HDU 2709】【水题】Sumsets

应该可以算是DP吧。一开始漏了题目给的条件,半天A不掉。


#include "stdio.h"
#include "string.h"
int main(int argc, char const *argv[])
{
  int n;
  long long dp[1000001];
  while(~scanf("%d",&n))
  {
    memset(dp,0,sizeof(dp));
    dp[0]=1;
    for(int i=1;i<=n;i*=2)
      for(int j=i;j<=n;j++)
      {
        dp[j]+=dp[j-i];
        dp[j]%=1000000000;//漏看了题目的条件不能a
      }
    printf("%lld\n",dp[n]);
  }
  return 0;
}


你可能感兴趣的:(c,动态规划,水题)