hdu - 1789 题解
题意:主角打完ACM比赛回来,有一堆作业要做,每个作业有自己的deadline和score,如果不能在deadline之前完成就拿不到这个作业的分数,问主角最多能拿多少分。
题解:还是贪心策略,将作业按deadline顺序排序,用一个时间变量从前向后推,将作业逐个填入当天的内容中,如果当天的时间已经晚于该作业的deadline,就从前面的安排中找到一个可以完成该作业,且原安排的作业得分比该作业低且最少的日子来做该作业。
1 #include<iostream> 2 #include<algorithm> 3 #include<climits> 4 using namespace std; 5 struct datatype 6 { 7 int deadline; 8 int score; 9 bool choose; 10 }a[100001]; 11 bool com(const datatype& x,const datatype& y) 12 { 13 return x.deadline<y.deadline; 14 } 15 int time[100001]; 16 int main() 17 { 18 int T; 19 cin>>T; 20 for(int p=1;p<=T;p++) 21 { 22 int n; 23 cin>>n; 24 for(int i=1;i<=n;i++) 25 { 26 cin>>a[i].deadline; 27 a[i].choose=false; 28 } 29 for(int i=1;i<=n;i++) 30 { 31 cin>>a[i].score; 32 } 33 int t=0; 34 sort(a+1,a+n+1,com); 35 for(int i=1;i<=n;i++) 36 { 37 if(t+1<=a[i].deadline) 38 { 39 time[t+1]=i; 40 t+=1; 41 a[i].choose=true; 42 } 43 else 44 { 45 int tip1=a[i].score,tip2=0; 46 for(int j=1;j<=t;j++) 47 { 48 if(a[time[j]].score<a[i].score) 49 { 50 if(a[time[j]].score<tip1) 51 { 52 tip2=j; 53 tip1=a[time[j]].score; 54 } 55 } 56 } 57 if(tip2!=0) 58 { 59 a[time[tip2]].choose=false; 60 time[tip2]=i; 61 a[i].choose=true; 62 } 63 } 64 } 65 int res=0; 66 for(int i=1;i<=n;i++) 67 { 68 if(!a[i].choose) 69 { 70 res+=a[i].score; 71 } 72 } 73 cout<<res<<endl; 74 } 75 return 0; 76 }
转载于:https://www.cnblogs.com/shao0099876/p/7297786.html
hdu - 1789 题解相关推荐
- hdu 1789题解
http://acm.hdu.edu.cn/showproblem.php?pid=1789: 这个题目就是用贪心的思想来做,首先按分数从高到底排下序,然后在判断哪几个不能完成时用到了一个小技巧. # ...
- hdu 1789 贪心算法
http://acm.hdu.edu.cn/showproblem.php?pid=1789 此题大致思路,既然要计算最少扣多少分,就要在最后时间之前把扣分最多的作业先安排了.如果扣分一样多的话,那必 ...
- HDU 6194 题解报告
HDU[6194] 后缀数组+ST表 题目大意 在指定的字符串中找到仅出现k次的不同子串有几种,不同子串之间可重叠,题目在此. 做了一天的神题,之前思路一直都很混乱,直到看到同站的一位大佬的博客,e ...
- HDU 1593题解
find a way to escape Problem Description 一日,话说0068与泛舟湖上.忽见岸边出现他的一大敌人elnil.0068当然不想落入elnil的魔爪,于是他就得想办 ...
- HDU 2102 题解(BFS 广度优先搜索 练习题)
原题链接,但是HDU现在校外提交需要审核 欢迎来 SCPC OJ提交 知识点 : BFS(广搜/宽搜) 原题: 描述: 可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生 ...
- hdu 1789 Doing Homework again
又是一次初始化惹的货!!! 超级水的贪心...害的我以为思路错误~~ ~ #include<iostream>#include<cstdio>#include<cmath ...
- hdu 2007题解
问题: Problem Description 给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和. Input 输入数据包含多组测试实例,每组测试实例包含一行,由两个整数m和n组成. ...
- hdu oj1095题解
#include <iostream> using namespace std; int main() { int a,b,sum; int i; while(cin>>a&g ...
- hdu oj1096题解
#include <iostream> using namespace std; int main() { int n,i,j,k,sum; cin>>n; while(n-- ...
最新文章
- 解决Linux中使用google chrome浏览器出现:ERR_PROXY_CONNECTION_FAILED 代理错误,导致不能够上网
- How to hide index.php on nginx
- Mongodb 故障分享 初始化时errmsg : exception: new file allocation failure 并且长时间处于STARTUP2...
- [最全操作指南] 在线六个项目全部迁移Linux
- java spring 多数据库_java – 使用多个数据源/数据库的Spring-Hibernate
- java excel条件格式_Java 设置Excel条件格式(高亮条件值、应用单元格值/公式/数据条等类型)...
- leetcode - 98. 验证二叉搜索树
- 【定有惊喜】android程序员如何做自己的API接口?php与android的良好交互(附环境搭建),让前端数据动起来~...
- 闭合导线坐标计算表_测量员人员必备:8套工程测量公式计算表,输入参数自动得出结果...
- mysql可视化一月多少钱_最便宜mysql可视化
- android事务队列处理的实现
- python正则表达式怎么看_python如何使用正则表达式
- (二)pscc学习笔记
- matlab中prod函数、mean函数、median函数——小白MAT LAB学习笔记
- 用UCWEB浏览器上网 省流量小技巧
- 2022年Work-Life Balance能实现吗?
- 博弈论夏普利值!提高机器学习可解释性的新方法!
- wireshark网络分析器的学习使用
- Burp Scanner Report
- Unity Ads 中国正式落地:做玩家喜欢的广告,为游戏加分
热门文章
- MySQL5.6建索引时遇到 Specified key was too long; max key length is 767 bytes错误提示解决办法
- Android中给定一个日期判断是周几.
- Java ISO 8601时间格式转换
- ROOT/RStringView.hxx:32:37: error: ‘experimental’ in namespace ‘std’ does not name a type
- h5+css3基础面试题
- Python 于 webgame 的应用(上)
- mysql版本升级手册
- linux下查看opencv安装路径以及版本号
- 机器学习降维方法概括
- 数据结构-栈(栈的C语言实现)