我能弱弱地问一下巧克力的那道题错在哪里了吗。。。

求各位大佬给我解答一下,c++
有关巧克力的那道题:思路就是动态规划。i代表去掉6个以后还有几个的可能分配情况,re[0]=1;re[1]=1;然后就每次把0到(i-1)的都加上。最后输出数组的和……然而不知道为啥只能AC 20% 
哭了 

#include "stdafx.h"
#include <iostream>
using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
    int n;
    cin>>n;
    if(n <6) cout<<0;
    if(n == 6) cout<<1;
    int *re=new int[n+2];
    re[1]=1;
    re[0]=1;
    int res=1;
    //int m=n;
    int tmp=n-6;
    for(int i=1;i<=tmp+1;i++)
    {
        re[i]=0;
        for(int j=0;j<i;j++)
        {
            re[i]+=re[j];
            re[i]=re[i]%666666666;
        }
    }
    int k=re[tmp+1];
    res=re[tmp+1]%666666666;
        cout<<res;
    return 0;
}

#笔试题目#
全部评论
高中数学题 n分成多个正整数相加 有序是隔板法 无序是2的n-1次方种
点赞 回复 分享
发布于 2019-04-09 21:34
你的思路是对的,不过可以把你的动态规划化简成2^n这种。 我给你总结一下: re[2]=re[1]+re[0]=2*re[1]=2; re[3]=re[2]+re[1]+re[0]=re[2]+re[2]=2*re[2]=2*2*re[1]=2^2; 同理re[4]=2*re[3]=...=2^3 所以re[n]=2^(n-1); 然后这题的答案是re[0]+re[1]+...re[n-6]=re[n-5]=2^(n-6);
点赞 回复 分享
发布于 2019-04-10 14:57
for循环,每次乘二 乘完对9个6取模,
点赞 回复 分享
发布于 2019-04-09 23:11
哈哈哈,第一眼我也是考虑dp,初始化0, 1项后,没找到递推规律。放弃了
点赞 回复 分享
发布于 2019-04-09 22:31
就是2的n-6次方
点赞 回复 分享
发布于 2019-04-09 22:24
由剑指offer的变态跳台阶可以知道n层的台阶有2的n-1次方种跳法 0到n-6的全部相加就是2的n-6次方。你这种dp的方法 就算写对了 这个题也会超时的
点赞 回复 分享
发布于 2019-04-09 21:55
2的n-6次方就好啦
点赞 回复 分享
发布于 2019-04-09 21:30
这题不是找规律。。。找到公式后,答案就是2的次方
点赞 回复 分享
发布于 2019-04-09 21:30

相关推荐

09-19 12:15
门头沟学院 Java
迷茫的大四🐶:这下是真的打牌了,我可以用感谢信和佬一起打牌吗
点赞 评论 收藏
分享
09-22 09:42
门头沟学院 Java
牛客37185681...:马德,我感觉这是我面过最恶心的公司,一面是两个女hr,说什么实习前几个月属于试用期,试用期过了才能转成正式实习生,我***笑了,问待遇就是不说,问能不能接受全栈,沙币公司
如果可以选,你最想去哪家...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务