11729 - Commando War
2016-03-21 18:25
381 查看
题目
Time limit: 1.000 seconds
解题思路
1.分别给每个士兵交代这件事是串行的,士兵们各自的战斗是并行的,所以接下来的目标就是尽可能早地结束战争,怎么办呢?2.把战斗时间长的士兵排在前面,然后算出最晚结束战斗的时间,这个时间就是答案
3.算法的正确性显而易见
4.这里的排序用的是冒泡排序,时间复杂度是O(N^2)。另外,空间复杂度是O(N)
通过代码
#include<stdio.h> #define NUM 1005 int 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; }
运行截图
相关文章推荐
- 分层设计原则
- iOS数据 - Core Data使用
- php初探
- Linux-进程间通信(三): 共享内存
- ubunt安装mysql
- 面试中遇到的IO调度
- 浅谈java字节流和字符流对文件的操作
- git 使用简易指南
- Oracle学习笔记(4)——约束
- BroadcastReceive 系统广播 短信广播
- 002
- jquery获取自身元素的html
- [LeetCode]-DataBase-Customers Who Never Order
- linux(ubuntu)eclipse for hadoop开发环境搭建
- 扣丁学堂笔记第05天高级UI组件(一)
- IOS 关键字self,super,copy, retain, assign , readonly , readwrite, nonatomic、@synthesize、@property、@dyna
- 两篇图文并茂,兼有汇编解释的函数调用
- 动态载入Layout 与 论Activity、 Window、View的关系
- Android自定义控件之自定义TextView,实现drawableLeft可以和文字一起居中
- 使用 HttpClient 和 HtmlParser 实现简易爬虫