zoukankan      html  css  js  c++  java
  • bzoj 1677: [Usaco2005 Jan]Sumsets 求和【dp】

    设f[i]为i的方案数,f[1]=1,考虑转移,如果是奇数,那么就是f[i]=f[i-1]因为这1一定要加;否则f[i]=f[i-1]+f[i>>1],就是上一位+1或者i/2位所有因子乘二

    #include<iostream>
    #include<cstdio>
    using namespace std;
    int n,f[1000005];
    int main()
    {
    	scanf("%d",&n);
    	f[1]=1;
    	for(int i=2;i<=n;i++)
    	{
    		if(!(i&1))
    			f[i]=(f[i-1]+f[i>>1])%1000000000;
    		else
    			f[i]=f[i-1];
    	}
    	printf("%d",f[n]); 
    	return 0;
    }
    
  • 相关阅读:
    2021-4-20 日报博客
    2021-4-19 日报博客
    2021-4-17 周报博客
    java web
    java web
    java web
    java
    java
    周末总结8
    java web
  • 原文地址:https://www.cnblogs.com/lokiii/p/8974346.html
Copyright © 2011-2022 走看看