小睿睿的数列

考试策略

http://www.nowcoder.com/questionTerminal/a1792d443f914f2b928d2a157cd7900d

题目描述:小睿睿给了你一个长度为n的数列,他想问你该数列中满足条件(区间内存在某个数是区间内所有数的公因数)的最长区间有多少个。
题解:这道题可以看成一个非常简单的分组0-1背包问题,即每组物品只能使用一种,感兴趣对于分组背包的可以去博客园或者CSDN上搜背包九讲
#include<bits/stdc++.h>
using namespace std;
int dp[150];//在i分钟最多能拿多少分
int p[150];
int a[155];
int q[150];
int b[150];
int main()
{

int n;
scanf("%d",&n);
for(int i=1; i<=n; i++)
{
    scanf("%d%d%d%d",&p[i],&a[i],&q[i],&b[i]);
}
for(int i=1;i<=n;i++)//枚举有多少种,可以看成分组背包中的多少组
{
    for(int j=120;j>=0;j--)//枚举背包容量大小
    {
        //正常这一维是应该枚举这一个组中每个物品的,因为少所以就直接暴力了
        if(j>=p[i])//确保能装进去
        {
            dp[j]=max(dp[j],dp[j-p[i]]+a[i]);
        }
        if(j>=q[i])
        {

            dp[j]=max(dp[j],dp[j-q[i]]+b[i]);
        }

    }
}
printf("%d\n",dp[120]);
return 0;

}

全部评论

相关推荐

07-09 20:50
门头沟学院 Java
码农索隆:1.教育背景和荣誉证书合二为一。 2.获奖项目理一遍,你做了什么,对你求职的岗位有什么帮助,没有就删掉。 3.技能特长和教育背景交换位置。 4.技能特长写的太差,上网上找简历参考。都不用问你别的,一个redis就能把你问住,写写你具体会redis哪些方面的知识。
点赞 评论 收藏
分享
来个厂收我吧:首先,市场侧求职我不是很懂。 但是,如果hr把这份简历给我,我会觉得求职人不适合做产品经理。 问题点: 1,简历的字体格式不统一,排版不尽如人意 2,重点不突出,建议参考star法则写个人经历 3,印尼官方货币名称为印度尼西亚卢比(IDR),且GMV690000印尼盾换算为305人民币,总成交额不高。 4,右上角的意向职位在发给其他公司时记得删除。 5,你所有的经历都是新媒体运营,但是你要投市场营销岗位,jd和简历不匹配,建议用AI+提示词,参照多个jd改一下经历内容。 修改建议: 1,统一字体(中文:思源黑体或微软雅黑,英文数字:time new romans),在word中通过表格进行排版(b站学) 2,校招个人经历权重:实习经历=创业经历(大创另算)>项目经历>实训经历>校园经历 3,请将项目经历时间顺序改为倒序,最新的放最上方。 4,求职方向不同,简历文字描述侧重点也需要不同。
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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