Happy Programming Contest  ZOJ3703

老实说:题目意思没看懂。。。(希望路过的大神指点)

最后那个the total penalty time是什么意思啊!!!

还是学到点东西的。。。

解题的关键在于:要控制最后所用的时间最少,所以在程序的最开始应该先将输入的各种题目 以时间升序排列, 然后就可以保证每次都以时间小的优先选, 这样就可以保证最后相同的吸引值和解题数的情况下所花的时间最少。

 #include <iostream>
#include <stdio.h>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
struct Point
{
int t,v;
}p[];
bool cmp(Point left,Point right)
{
return left.t<right.t;
}
int dp[],pen[],pro[];
int main ()
{
int test;scanf("%d",&test);
while(test--)
{
int len,n;
scanf("%d%d",&len,&n);
memset(dp,,sizeof(dp));
memset(pro,,sizeof(pro));
memset(pen,,sizeof(pen));
for(int i=;i<=n;++i)
scanf("%d",&p[i].t);
for(int i=;i<=n;++i)
scanf("%d",&p[i].v);
int ans_val=,ans_p=,penalty=;
sort(p+,p++n,cmp);
for(int i=;i<=n;++i)
{
for(int j=len;j>=p[i].t;--j)
{
bool flag=false;
if(dp[j-p[i].t]+p[i].v>dp[j])
flag=true;
else if(dp[j-p[i].t]+p[i].v==dp[j] && pro[j-p[i].t]+>pro[j])
flag=true;
else if(dp[j-p[i].t]+p[i].v==dp[j] && pro[j-p[i].t]+==pro[j] && pen[j-p[i].t]+j<pen[j])
flag=true;
if(flag)
{
dp[j]=dp[j-p[i].t]+p[i].v;
pro[j]=pro[j-p[i].t]+;
pen[j]=pen[j-p[i].t]+j; }
}
}
for(int j=;j<=len;++j)
{
bool flag=false;
if(ans_val<dp[j])
flag=true;
else if(ans_val==dp[j] && ans_p<pro[j])
flag=true;
else if(ans_val==dp[j] && ans_p<pro[j] && penalty>pen[j])
flag=true;
if(flag)
{
ans_val=dp[j];
ans_p=pro[j];
penalty=pen[j];
}
}
printf("%d %d %d\n",ans_val,ans_p,penalty);
}
return ;
}

Happy Programming Contest(ZOJ3703)(01背包+路径储存)的更多相关文章

  1. ZOJ 3703 Happy Programming Contest(0-1背包)

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3703 Happy Programming Contest Time Lim ...

  2. Gym 101102A Coins -- 2016 ACM Amman Collegiate Programming Contest(01背包变形)

    A - Coins Time Limit:3000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Descript ...

  3. UVA 624 ---CD 01背包路径输出

    DescriptionCD You have a long drive by car ahead. You have a tape recorder, but unfortunately your b ...

  4. Coderfroces 864 E. Fire(01背包+路径标记)

    E. Fire http://codeforces.com/problemset/problem/864/E Polycarp is in really serious trouble — his h ...

  5. UVA--624 CD(01背包+路径输出)

    题目http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  6. HDOJ 5188 zhx and contest 贪婪+01背包

    zhx and contest Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  7. UVA 624 CD【01背包+路径记录】

    You have a long drive by car ahead. You have a tape recorder, but unfortunately your best music is o ...

  8. uva624 CD (01背包+路径的输出)

    CD Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Submit Status Practice UVA 624 ...

  9. HDU 6083 度度熊的午饭时光(01背包+记录路径)

    http://acm.hdu.edu.cn/showproblem.php?pid=6083 题意: 思路: 01背包+路径记录. 题目有点坑,我一开始逆序枚举菜品,然后一直WA,可能这样的话路径记录 ...

随机推荐

  1. iconv将文件编码从gb2312 转换为utf-8

    iconv命令用于转换指定文件的编码,默认输出到标准输出设备,亦可指定输出文件. 用法: iconv [选项...] [文件...] 有如下选项可用: 输入/输出格式规范:-f, --from-cod ...

  2. JavaWeb 学习005-4个页面,5条sql语句(添加、查看、修改、删除)

    今天完成了的事: = 1.班级模块,list页面的添加班级信息操作,中文乱码问题 尚待解决 这俩天做得工作是: 首先搭建好main页面:是由top.left.right三个部分构成的,拼接到一起. 流 ...

  3. Git查看、删除、重命名远程分支和tag(转)

    转:http://zengrong.net/post/1746.htm 这篇文章记录我在使用git的过程中碰到远程分支和tag的相关内容,提纲: 查看远程分支 删除远程分支和tag 删除不存在对应远程 ...

  4. 浅谈rem、em、px

    1.px:像素(Pixel) px是相对长度单位,他是相对于显示器屏幕分辨率而言的 优点:比较稳定.精确 缺点:在浏览器 中放大或者缩小浏览页面,会出现页面混乱的情况. 如下例子: .buttonPX ...

  5. requirejs+cdn

    当requirejs加上cdn.cdn固然可以在requirejs里面配置.但是在a.html里面却不能通过给自己引用的requirejs文件添加版本戳. 最重要的是requirejs不能引进css当 ...

  6. 第一章 jQuery基础方法回顾

    jQuery即JavaScript,它是一个.js文件(官网下载).使用时须将jQuery库的声明写在HTML文档的head标签里. 章节内容: 1.选择DOM节点 2.延迟的JavaScript的执 ...

  7. MVC中使用EF:排序,过滤,分页

    原文链接:http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/sorting-filtering-and-paging ...

  8. 影响google PageRank的因素

    1 与pr高的网站做链接: 2 内容质量高的网站链接 3 加入搜索引擎分类目录 4 加入免费开源目录 5 你的链接出现在流量大.知名度高.频繁更新的重要网站上 6 google对PDF格式的文件比较看 ...

  9. windows平台升级ORACLE11.2.0.1到11.2.0.4

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://4445027.blog.51cto.com/4435027/1674217 一  ...

  10. RTP在。net中的使用(资料)

    开源组件:lumisoft 网址:http://www.lumisoft.ee/lswww/download/downloads/Examples/ 非开源的免费组建:rtp.net (微软推荐)