hdu 2600 War
来源:互联网 发布:中国网络十大禁书 编辑:程序博客网 时间:2024/06/08 11:36
http://acm.hdu.edu.cn/showproblem.php?pid=2600
题意:要求找出不发生战争的最后一年
分析:按照x,y都最大排序,即:从最大的区间开始查找战争年间是否有断层
注意:每一年是独立的,即离散的,不连续;其他细节见代码
如下图:1)第一种情况,区间长度不变
2)第二种情况,出现断层,即最后不发生战争的时间是Xn - 1
3)第三种情况,改变区间长度
#include <iostream>#include <cstdio>#include <algorithm>using namespace std;struct War{ int x,y;}war[105];bool comp(struct War A,struct War B){ if(A.y>B.y) return 1; else { if(A.y==B.y) { if(A.x>B.x) return 1; else return 0; } else return 0; }}int main(){ char str[105]; int n,t1,t2,i,x,y; while(scanf("%d",&n)!=EOF) { scanf("%d%d",&t1,&t2); for(i=0;i<n;i++) { scanf("%d%d",&x,&y); gets(str); if(x>y) swap(x,y); war[i].x=x,war[i].y=y; } sort(war,war+n,comp); //从较晚的战争年开始查找 x=war[0].x,y=war[0].y; if(y<t2) { printf("%d\n",t2); //printf("%d\n",y+1); //直接输出最后一年 continue; } for(i=1;i<n;i++) //是否能覆盖整个区间 { if(war[i].y+1>=x&&war[i].x<x) x=war[i].x; else if(war[i].y+1<x) { printf("%d\n",x-1); //区间有断层 break; } } if(x==t1&&y==t2) printf("Badly!\n"); } return 0;}
- HDU 2600 War
- War hdu 2600
- hdu 2600 War
- hdu 2600 War
- hdu 2600 war
- HDU 2600 war
- HDU acm 2600 war
- HDU 2600 War
- HDU 2600 War
- HDU 2600 War 哈希
- HDU 2600 War 贪心水
- HDU - 2600 War 解题报告
- hdu -War
- War 2600HDU 一道简单题
- HDU 4070 Phage War
- Hdu 3599 War
- hdu 3345 War Chess
- hdu 4070 Phage War
- visual stdio 项目文件解释
- 对httpSession,servletContext生命周期的理解
- 在MDK中如何生成*.bin格式的文件
- SQL比较日期
- WPF的资源
- hdu 2600 War
- C#中从数据库导出至txt
- 即时通讯系统架构
- C++程序内存分配详解
- 最好的图像质量可以在任何大小的图像
- 【转载百度经验】DropDownList控件赋值
- IM服务器的架构
- 面向对象编程概念理解
- 字符串分割(C++)