题解 | #整数拆分#

整数拆分

https://www.nowcoder.com/practice/376537f4609a49d296901db5139639ec

//二维数组过大,爆空间!
//#include <iostream>
//#include <algorithm>
//
//using namespace std;
//
//const int N = 10010, mod = 1000000000;
//
//int n;
//int f[N][N];
//
//int main()
//{
//    cin >> n;
//    for(int i=0;i<=n;i++) f[i][0] = 1;
//    int i;
//    for (i = 1; i <= n; i *= 2 )
//        for (int j = 0; j <= n; j ++ )
//        {
//            f[i][j] = f[i/2][j];
//            if(j >= i)
//                f[i][j] = (f[i/2][j] + f[i][j - i]) % mod;
//        }
//    cout << f[i/2][n] << endl;
//
//    return 0;
//}
//



#include <iostream>
#include <algorithm>
using namespace std;
//类比于完全背包问题
const int mod = 1000000000,N=1000000;
int n;
int f[N];
int main()
{
    cin >> n;
    f[0] = 1; //如果要求结果为0,只有一种方案,即什么也不选
    for(int i=1;i<=n;i *= 2)
        for(int j=i;j<=n;j++)       
            f[j] = (f[j]+f[j-i]) % mod;
    cout << f[n];
    return 0;
}

全部评论

相关推荐

霁华Tel:秋招结束了,好累。我自编了一篇对话,语言别人看不懂,我觉得有某种力量在控制我的身体,我明明觉得有些东西就在眼前,但身边的人却说啥也没有,有神秘人通过电视,手机等在暗暗的给我发信号,我有时候会突然觉得身体的某一部分不属于我了。面对不同的人或场合,我表现出不一样的自己,以至于都不知道自己到底是什么样子的人。我觉得我已经做的很好,不需要其他人的建议和批评,我有些时候难以控制的兴奋,但是呼吸都让人开心。
点赞 评论 收藏
分享
Yushuu:你的确很厉害,但是有一个小问题:谁问你了?我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了😆
点赞 评论 收藏
分享
11-29 11:21
门头沟学院 Java
总包48.5w,意想不到的价格
想开了的垂耳兔很喜欢拱白菜:转人工
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务