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 total reduced 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
0 3 5
Author lcy
Source 2007省赛集训队练习赛(10)_以此感谢DOOMIII 贪呀贪心。=。==。= 对完不成后的处罚排序(由大到小),依次遍历求解。 这样可以保证最优,因为小于规定时间且处罚大的总是先遍历到。
#include#include #include #include #include using namespace std; int t,n; struct node{ int a,b; }s[1100]; int hash[1100]; int cmp(node l1,node l2) { if(l1.b!=l2.b) return l1.b>l2.b; return l1.a>l2.a; } int main() { int t,i,j; cin>>t; while(t--) { cin>>n; memset(hash,0,sizeof(hash)); for(i=0;i >s[i].a; for(i=0;i >s[i].b; sort(s,s+n,cmp); int sum=0; for(i=0;i 0;j--) { if(!hash[j]) { hash[j]=1; break; } } if(j==0) sum+=s[i].b; } cout<