首页 > 代码库 > hdu--1789--贪心||优先队列
hdu--1789--贪心||优先队列
虽然标题名上挂着 优先队列 我懒得去写遍了 因为感觉没太大意义啊=-=
就是将for i 1->n变成了qe.top() qe.pop() qe.empty().........
这题 不难 它的另外一题 doing homework难啊 我至今不会 状态压缩DP =学会了的时候 再写那题
touch me
看下 代码 大概就能明白意思了 不清楚 或者 我写错了的地方 和我互动起来
最近多寂寞啊
还好 亲爱的步行街jrs最近 制造了太多欢乐
不幸中的万幸 香蕉还是蛮好吃的=-= 萌萌哒
家有百万富可敌国
1 #include <iostream> 2 #include <algorithm> 3 #include <cstring> 4 using namespace std; 5 6 const int size = 1010; 7 struct data 8 { 9 int day , cost;10 }work[size];11 bool vis[size];12 bool cmp( const data p , const data q )13 {14 if( p.cost == q.cost )15 return p.day < q.day;16 return p.cost > q.cost;17 }18 19 int main()20 {21 cin.sync_with_stdio(false);22 int i , j , n , t , sum;23 bool flag;24 while( cin >> t )25 {26 while( t-- )27 {28 sum = 0;29 cin >> n;30 for( i = 1 ; i<=n ; i++ )31 {32 cin >> work[i].day;33 }34 for( i = 1 ; i<=n ; i++ )35 {36 cin >> work[i].cost;37 }38 memset( vis , false , sizeof(vis) );39 sort( work+1 , work+n+1 , cmp);40 for( i = 1 ; i<=n ; i++ )41 {42 flag = false;43 for( j = work[i].day ; j>=1 ; j-- )44 {45 if( !vis[j] )46 {47 vis[j] = true;48 flag = true;49 break;50 }51 }52 if(!flag)53 sum += work[i].cost;54 }55 cout << sum << endl;56 }57 }58 return 0;59 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。