hdu 1789 Doing Homework again 贪心
来源:互联网 发布:影楼修片软件mac版 编辑:程序博客网 时间:2024/06/07 06:10
传送门:hdu 1789 Doing Homework again
题目大意
一个人从WF回来要写作业,但是每次只能做一个,每个作业都有对应的截止时间,如果过了截止时间就会扣相应的分数,求扣的最小分数
输入:第一行输入多组则是用例t
下面的一行输入有几门作业n,
再下面一行对应的这n门作业的截止时间,
再下面一行对应的是n门作业的过了截止时间扣的分数
输出扣的最小分数
解题思路
先对截止时间排序,如果截止时间相同哪个扣得分数大就放在前面。然后从前到后开始遍历,遍历到第i个开始的时候已经过了截止时间,然后记录下这个数和这个数对应的下标。在这个前面寻找一个最小扣的分数,来作为扣得分数,因为这个时候必须要扣分了,所以最好的方案就是扣最小的
AC代码
#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;const int MAXN = 5000;struct Node{ int score; int dead; bool flag;}work[MAXN];bool cmp(const Node a,const Node b){ if(a.dead!=b.dead) return a.dead<b.dead; return a.score>b.score;}int main(){ int t; int workSum; scanf("%d",&t); while(t--) { scanf("%d",&workSum); for(int i=0;i<workSum;i++) scanf("%d",&work[i].dead); for(int i=0;i<workSum;i++){ scanf("%d",&work[i].score); work[i].flag =false; } sort(work,work+workSum,cmp); int sum=0,k=1; for(int i=0;i<workSum;i++) { if(work[i].dead>=k){ k++; continue; } int pos = i,tmpScore = work[i].score; for(int j=0;j<i;j++) { if(work[j].score<tmpScore && !work[j].flag) { tmpScore = work[j].score; pos = j; } } sum+=tmpScore; work[pos].flag = true; } printf("%d\n",sum); } return 0;}
0 0
- hdu 1789 Doing Homework again 贪心算法
- hdu 1789 Doing Homework again (贪心)
- hdu 1789 Doing Homework again(贪心)
- HDU 1789 Doing Homework again (贪心)
- HDU 1789 Doing Homework again (贪心)
- hdu 1789 Doing Homework again 贪心算法
- HDU 1789 Doing Homework again(贪心~!)
- HDU 1789 Doing Homework Again( 贪心 )
- hdu 1789 doing homework again 贪心
- 贪心-hdu-1789-Doing Homework again
- hdu 1789 Doing Homework again (贪心)
- HDU 1789 Doing Homework again 贪心
- HDU 1789 Doing Homework again(贪心)
- hdu 1789 Doing Homework again (贪心)
- HDU 1789 Doing Homework again (贪心)
- HDU 1789 Doing Homework again(贪心)
- HDU 1789 Doing Homework again(贪心)
- HDU 1789 Doing Homework again(贪心)
- Boerner's theorem
- require.js的用法
- 天线设计(中)
- dubbo学习之dubbo管理控制台装配及集成zookeeper集群部署(1)
- A Note on GEM5 - 0 Installation
- hdu 1789 Doing Homework again 贪心
- MySQL中的存储引擎讲解(InnoDB,MyISAM,Memory等各存储引擎对比)
- [leetcode] Reverse Linked List II 链表反转
- 【cas】常用的cas登录验证规则
- 带你从零了解mysql
- 如果子结果编号为i,求其父节点编号
- Hibernate开发之数据检索方式
- 【Dubbo实战】 Dubbo+Zookeeper+Spring整合应用篇-Dubbo基于Zookeeper实现分布式服务(二)
- 深夜支持现场解决软件问题纪实