C/C++知识点之观光浏览
小标 2018-08-10 来源 : 阅读 1533 评论 0

摘要:本文主要向大家介绍了C/C++知识点之观光浏览,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

本文主要向大家介绍了C/C++知识点之观光浏览,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

   
一条街道被分成m格(1<=m<=100),还有n个景点(1<=n<=100),分布在街道上。每个景点可以占据连续的若干格,并且有一个美学值v(0<v<=100)。现要组织k个人考察这个街道(1<=k<=m),每个人考察的区域是连续的若干格(不可为0格),且任意两个人考察的区域不得相交,也不得有一个格子无人考察。对于任意一个人,如果它考察的区域中有一个风景点(风景点必须完整的位于这个区域),则它就得到了这个风景点的分值(美学值)。
你的任务是将街道的m个格子分给k个人去考察,使得总的分值最大。
 
【输入文件】
第一行一个整数m,表示街道的长度。
第二行一个整数n,表示风景点个数。
此后n行,每行描述一个风景点,三个整数x、y和v,表示该风景点是从第x个格子到第y个格子,美学值为v。
最后一行一个整数k,表示考察的人数。
 
【输出文件】
一个整数,表示最大可以得到的分值。
 
【输入输出样例】
输入:
321 2 22 3 32
输出:3【参考程序】:
#include#include#includeint f[101][101],c[101][101];int n,m,k;int main(){        freopen("view.in","r",stdin);        freopen("view.out","w",stdout);        scanf("%d",&n);scanf("%d",&m);        memset(c,0,sizeof(c));        int x,y,v;        for (int t=1;t<=m;t++)        {                scanf("%d%d%d",&x,&y,&v);                for (int i=1;i<=x;i++)                        for (int j=y;j<=n;j++)                                c[i][j]+=v;        }        scanf("%d",&k);        memset(f,128,sizeof(f));        f[0][0]=0;        for (int i=1;i<=n;i++)                for (int j=1;j<=k;j++)                        for (int l=0;l<=i-1;l++)                                if (f[i][j]<f[l][j-1]+c[l+1][i])                                        f[i][j]=f[l][j-1]+c[l+1][i];        printf("%d\n",f[n][k]);        return 0;}
 

本文由职坐标整理并发布,了解更多内容,请关注职坐标编程语言C/C+频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved