11729 - Commando War
来源:互联网 发布:刘项原来不读书 知乎 编辑:程序博客网 时间:2024/05/01 02:12
题目
Time limit: 1.000 seconds
解题思路
1.分别给每个士兵交代这件事是串行的,士兵们各自的战斗是并行的,所以接下来的目标就是尽可能早地结束战争,怎么办呢?
2.把战斗时间长的士兵排在前面,然后算出最晚结束战斗的时间,这个时间就是答案
3.算法的正确性显而易见
4.这里的排序用的是冒泡排序,时间复杂度是O(N^2)。另外,空间复杂度是O(N)
通过代码
#include<stdio.h>#define NUM 1005int B[NUM];int J[NUM];int main(){int N;int i,j;int time;int n=0;while(true){scanf("%d",&N);if(N==0)break;for(i=0;i<N;++i)scanf("%d%d",&B[i],&J[i]);for(i=N-1;i>0;--i)for(j=0;j<i;++j)if(J[j]<J[j+1]){int tmp=J[j];J[j]=J[j+1];J[j+1]=tmp;tmp=B[j];B[j]=B[j+1];B[j+1]=tmp;}time=B[0]+J[0];for(i=1;i<N;++i){B[i]+=B[i-1];int tmp=B[i]+J[i];if(tmp>time)time=tmp;//printf("debug:tmp=%d\n",tmp);}printf("Case %d: %d\n",++n,time);}return 0;}
运行截图
0 0
- uva --11729-- Commando War
- UVa 11729 Commando War
- uva - 11729 - Commando War
- UVA 11729 - Commando War
- uva 11729 - Commando War
- Uva-11729-Commando War
- UVA 11729 - Commando War
- UVA 11729 Commando War
- UVA 11729 - Commando War
- 11729 - Commando War
- UVA 11729 Commando War
- UVA 11729 - Commando War
- Commando War, UVa 11729
- UVa 11729 - Commando War
- UVA 11729 Commando War
- uva 11729 Commando War
- Uva 11729 Commando War
- uva 11729 Commando War
- 开始找工作了 !!!
- 网易互娱2017实习生招聘在线笔试第一场 题目1 : 电子数字
- 算法学习之最小生成树prim算法
- 如何部署hadoop分布式集群
- 拼图响应式前端框架版响应式后台正式发布
- 11729 - Commando War
- Android:可滑动展开的侧边栏在功能区中切换有EditText的布局时自动展开的问题解决
- arraycopy()java的用法
- java编程中遇到的时区与时间问题总结
- hql语句分批读取数据
- 深入理解AQS同步器
- 树莓派使用VNC连接和FileZilla传文件
- 哈理工oj 1079 I can do it【贪心】
- hdu 1160 FatMouse's Speed 贪心