HDU1789Doing Homework again(贪心)
2016-05-19 17:44
337 查看
Problem Description
Ignatius has just come back school from the 30th ACM/ICPC. Now he has a lot of homework to do. Every teacher gives him a deadline of handing in the homework. If Ignatius hands in the homework after the deadline, the teacher will reduce his score of the final test. And now we assume that doing everyone homework always takes one day. So Ignatius wants you to help him to arrange the order of doing homework to minimize the reduced score.Input
The input contains several test cases. The first line of the input is a single integer T that is the number of test cases. T test cases follow.Each test case start with a positive integer N(1<=N<=1000)
which indicate the number of homework.. Then 2 lines follow. The first line
contains N integers that indicate the deadlines of the subjects, and the next
line contains N integers that indicate the reduced scores.
Output
For each test case, you should output the smallest totalreduced score, one line per test case.
Sample Input
3 3 3 3 3 10 5 1 3 1 3 1 6 2 3 7 1 4 6 4 2 4 3 3 2 1 7 6 5 4
Sample Output
0 3 5
Author
lcySource
2007省赛集训队练习赛(10)_以此感谢DOOMIII#include<stdio.h> #include<math.h> #include<stdlib.h> #include<string.h> #include<algorithm> using namespace std; const int maxn=1000+10; struct node{ int dl,sco; bool flag;//flag表示可以完成 }a[maxn]; bool cmp(node a1,node a2){ if(a1.dl!=a2.dl)return a1.dl<a2.dl; else return a1.sco>a2.sco; } int main() { int N,n,i; scanf("%d",&N); while(N--) { scanf("%d",&n); for(i=0;i<n;i++)scanf("%d",&a[i].dl); for(i=0;i<n;i++)scanf("%d",&a[i].sco); for(i=0;i<n;i++)a[i].flag=true; sort(a,a+n,cmp); int day=1,res=0; for(i=0;i<n;i++) { if(a[i].dl>=day){ day++; continue; } int p=a[i].sco,pos=i; for(int j=0;j<i;j++) { if(a[j].sco<p&&a[j].flag==1) { p=a[j].sco; pos=j; } } res+=p; a[pos].flag=0; } printf("%d\n",res); } return 0; }
相关文章推荐
- AIDL 进程间通信
- Principles of training multi-layer neural network using backpropagation
- main函数参数的用法
- 使用AIDL实现进程间的通信之复杂类型传递
- 使用AIDL实现进程间的通信
- JetBrains重大安全升级!
- 70. Climbing Stairs
- 127_AIDL的使用
- c 语言模块接口函数在main之前注册
- Given a binary tree containing digits from0-9only, each root-to-leaf path could represent a number. An example is the root-to-leaf path1->2->3which represents the number123. Find the total sum of a
- xcode7 解决NSURLConnection/CFURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9843)
- maven打好的jar包如何在运行时指定main-class
- 【leetcode】11. Container With Most Water
- [Ogre][地形][原创]基于OgreTerrain的地形实现
- 人工智能基础01--绪论
- LeetCode 11. Container With Most Water(容器装水)
- RAD Studio 10 安装失败 提示错误 License status check failure解决办法
- leetcode 11. Container With Most Water
- 使用 SDL 过程中遇到的两个问题: 找不到main函数 和 链接错误
- ansible 报错 FAILED | rc=0 >> MODULE FAILURE 解决方法