博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVa11729 - Commando War
阅读量:5069 次
发布时间:2019-06-12

本文共 983 字,大约阅读时间需要 3 分钟。

解题思路:很明显,执行时间较长的任务应该先交代。按照j从大到小的顺序,

      如果j相同,b的大小是不影响的。

1 #include
2 #include
3 #include
4 using namespace std; 5 const int maxn = 1005; 6 #define inf 0x3f3f3f3f 7 8 struct node{ 9 int b, j;10 }p[maxn];11 12 int cmp(node A, node B)13 {14 return A.j > B.j; //j从大到小排序15 }16 17 int main()18 {19 int n, sum, kase = 1;20 while(~scanf("%d", &n) && n)21 {22 sum = 0;23 for(int i = 0; i < n; i++)24 {25 scanf("%d %d", &p[i].b, &p[i].j);26 sum += p[i].b; //累加所有交代任务所需要的时间27 }28 sort(p, p+n, cmp); //结构体排序29 int max1 = -inf;30 //求出最后一次任务交代完了之后,还需要执行多长的时间。31 for(int i = 0; i < n; i ++) max1 = max(p[i].j, max1-p[i].b);32 sum += max1; //加上最后一次任务交代完了之后还需要执行的时间就是总时间33 printf("Case %d: %d\n", kase++, sum); //输出格式注意一下就可以了。34 }35 }
View Code

 

转载于:https://www.cnblogs.com/loveprincess/p/4820578.html

你可能感兴趣的文章
React文档翻译 (快速入门)
查看>>
nodejs fs路径
查看>>
动态规划算法之最大子段和
查看>>
linux c:关联变量的双for循环
查看>>
深入浅出理解zend framework(三)
查看>>
python语句----->if语句,while语句,for循环
查看>>
javascript之数组操作
查看>>
一张图看懂开源许可协议,开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别...
查看>>
C#6新特性,让你的代码更干净
查看>>
LinkedList源码分析
查看>>
TF-IDF原理
查看>>
用JS制作博客页面背景随滚动渐变的效果
查看>>
JavaScript的迭代函数与迭代函数的实现
查看>>
一步步教你学会browserify
查看>>
Jmeter入门实例
查看>>
亲近用户—回归本质
查看>>
中文脏话识别的解决方案
查看>>
CSS之不常用但重要的样式总结
查看>>
Python编译错误总结
查看>>
URL编码与解码
查看>>