hdu-----2491Priest John's Busiest Day(2008 北京现场赛G)
Priest John's Busiest Day
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1420 Accepted Submission(s): 415
Please note that:
John can not hold two ceremonies at the same time. John can only join or leave the weddings at integral time. John can show up at another ceremony immediately after he finishes the previous one.
In each test case, the first line contains a integer N ( 1 ≤ N ≤ 100,000) indicating the total number of the weddings.
In the next N lines, each line contains two integers Si and Ti. (0 <= Si < Ti <= 2147483647)
4
- #include<iostream>
- #include<cstdio>
- #include<cstring>
- #include<algorithm>
- using namespace std;
- const int maxn = ;
- struct tnode
- {
- int s,e;
- int ms,me;
- int keyinterval;
- int id;
- }c[maxn];
- bool operator < (const tnode &a , const tnode &b)
- {
- return (a.ms <b.ms ||(a.ms==b.ms&&a.me<b.me));
- }
- int n , i;
- void init()
- {
- for(i= ; i<n ;i++ ){
- scanf("%d%d",&c[i].s,&c[i].e);
- c[i].id=i;
- c[i].keyinterval = (c[i].e - c[i].s +)/ ;
- c[i].ms=c[i].s+(c[i].e - c[i].s -)/;
- c[i].me=c[i].s+;
- if((c[i].e-c[i].s)%==)
- ++c[i].me;
- }
- sort(c,c+n);
- }
- bool work()
- {
- int now_s , now_e ,last_e;
- last_e=;
- for(int i= ; i<n ;i++)
- {
- now_s =c[i].s;
- if(now_s<last_e) now_s=last_e;
- now_e=now_s+c[i].keyinterval;
- if(now_e>c[i].e) return false;
- last_e = now_e;
- }
- return true ;
- }
- int main()
- {
- while(scanf("%d",&n),n!=)
- {
- init();
- if(work())
- printf("YES\n");
- else
- printf("NO\n");
- }
- return ;
- }
运用STL之后,速度更搓,空间开销也增大了不少....
代码:
- #include<iostream>
- #include<cstdio>
- #include<cstring>
- #include<vector>
- #include<algorithm>
- using namespace std;
- const int maxn = ;
- struct tnode
- {
- int s,e;
- int ms,me;
- int keyinterval;
- int id;
- bool operator < (const tnode &b) const
- {
- return (ms <b.ms ||(ms==b.ms&&me<b.me));
- }
- };
- int n , i;
- tnode cc;
- vector<tnode>c;
- void init()
- {
- c.clear();
- for(i= ; i<n ;i++ ){
- scanf("%d%d",&cc.s,&cc.e);
- cc.id=i;
- cc.keyinterval = (cc.e - cc.s +)/ ;
- cc.ms=cc.s+(cc.e - cc.s -)/;
- cc.me=cc.s+;
- if((cc.e-cc.s)%==)
- ++cc.me;
- c.push_back(cc);
- }
- sort(c.begin(),c.end());
- }
- bool work()
- {
- int now_s , now_e ,last_e;
- last_e=;
- for(int i= ; i<n ;i++)
- {
- now_s =c[i].s;
- if(now_s<last_e) now_s=last_e;
- now_e=now_s+c[i].keyinterval;
- if(now_e>c[i].e) return false;
- last_e = now_e;
- }
- return true ;
- }
- int main()
- {
- while(scanf("%d",&n),n!=)
- {
- init();
- if(work())
- printf("YES\n");
- else
- printf("NO\n");
- }
- return ;
- }
然后自己有写了一次..........!
代码:
手动的扩栈....
#program comment (linker ,"/STACK :102400000 102400000")
- #include<cstdio>
- #include<cstring>
- #include<cstdlib>
- #include<iostream>
- #include<algorithm>
- #pragma comment(linker, "/STACK:102400000,102400000") //由于用内分装之后会出现溢栈的情况,所以手动扩栈
- using namespace std;
- const int maxn = ;
- struct tnode
- {
- int s,e;
- int ms,me;
- int mid;
- bool operator < (const tnode b) const
- {
- return (ms<b.ms||(ms==b.ms)&&me<b.me);
- }
- };
- class node
- {
- private:
- tnode str[maxn];
- int i;
- public :
- int n;
- void init();
- bool work();
- };
- void node::init()
- {
- for(i=;i<n;i++)
- {
- scanf("%d%d",&str[i].s,&str[i].e) ;
- str[i].mid=(str[i].e-str[i].s)/ + ;
- str[i].ms= str[i].s+(str[i].e-str[i].s-)/ ;
- str[i].me=str[i].s+ ;
- if((str[i].e-str[i].s)%==) str[i].me++;
- }
- sort(str,str+n);
- }
- bool node::work()
- {
- int temp_s,temp_e,last_e=;
- for( i= ; i<n ; i++ )
- {
- temp_s=str[i].s;
- if(temp_s<last_e) temp_s=last_e;
- temp_e = temp_s+str[i].mid;
- if(temp_e>str[i].e) return false;
- last_e=temp_e;
- }
- return true ;
- }
- int main()
- {
- node a;
- while(scanf("%d",&a.n)!=EOF&&a.n)
- {
- a.init();
- if(a.work())printf("YES\n");
- else printf("NO\n");
- }
- return ;
- }
hdu-----2491Priest John's Busiest Day(2008 北京现场赛G)的更多相关文章
- HDUOJ-------2493Timer(数学 2008北京现场赛H题)
Timer Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- HDUOJ--------A simple stone game(尼姆博弈扩展)(2008北京现场赛A题)
A simple stone game ...
- HDUOJ----2485 Destroying the bus stations(2008北京现场赛A题)
Destroying the bus stations ...
- HDU 5122 K.Bro Sorting(2014北京区域赛现场赛K题 模拟)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5122 解题报告:定义一种排序算法,每一轮可以随机找一个数,把这个数与后面的比这个数小的交换,一直往后判 ...
- HDU 5119 Happy Matt Friends(2014北京区域赛现场赛H题 裸背包DP)
虽然是一道还是算简单的DP,甚至不用滚动数组也能AC,数据量不算很大. 对于N个数,每个数只存在两个状态,取 和 不取. 容易得出状态转移方程: dp[i][j] = dp[i - 1][j ^ a[ ...
- hdu 5038 (2014北京网络赛G 排序水题)
题意:有n个数字,带入10000 - (100 - ai) ^ 2公式得到n个数,输出n个数中频率最大的数,如果有并列就按值从小到大都输出输出,如果频率相同的数字是全部的n个数,就输出Bad....题 ...
- hdu 5120(求两个圆环相交的面积 2014北京现场赛 I题)
两个圆环的内外径相同 给出内外径 和 两个圆心 求两个圆环相交的面积 画下图可以知道 就是两个大圆交-2*小圆与大圆交+2小圆交 Sample Input22 30 00 02 30 05 0 Sam ...
- hdu 5122 (2014北京现场赛 K题)
把一个序列按从小到大排序 要执行多少次操作 只需要从右往左统计,并且不断更新最小值,若当前数为最小值,则将最小值更新为当前数,否则sum+1 Sample Input255 4 3 2 155 1 2 ...
- hdu 5112 (2014北京现场赛 A题)
给出某个时刻对应的速度 求出相邻时刻的平均速度 输出最大值 Sample Input23 // n2 2 //t v1 13 430 31 52 0 Sample OutputCase #1: 2.0 ...
随机推荐
- Java_GC详解
Java -- GC 标签(空格分隔): Java 要想深入了解Java的GC(Garbage Collection),我们应该先探寻如下三个问题: What? -- 哪些内存需要回收? When? ...
- Java代码规范性
---------------------------------------------------------------------------------------------------- ...
- Servlet技术
Java Applet和Java Servlet都有一个共同特点: 它们都不是独立的应用程序,都没有main( )方法: 它们都不是由用户或者程序员直接调用,而是生存在容器中,由容器管理,Applet ...
- servlet&jsp高级:第三部分
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- Servlet&jsp基础:第四部分
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- 使用escape编码地址栏中的中文字符
在通过地址栏传递参数的时候,有时候会遇到中文参数,在获取这种中文参数值得时候, 往往会出现乱码, 解决办法如下: 在传递参数的使用 escape 函数进行编码,获取的时候再进行解码即可. 例如: va ...
- iOS - UIRefreshControl 刷新数据
前言 NS_CLASS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED @interface UIRefreshControl : UIControl 1.UIRefresh ...
- Linux_常用命令_04_挂载
1. mount [-t vfstype] [-o options] device dir ZC: -o 后面跟多个option的话,用逗号隔开.(例如:"mount -o rw,remou ...
- Android listview和ListAdapter搭配使用
ListView时Android中自带的数据显示控件,要使用ListView填充数据,必须要通过适配器来填充,这里给大家介绍一下ListAdapter适配器,效果图如下: java源码: packag ...
- OpenGL的glPushMatrix和glPopMatrix矩阵栈顶操作函数详解
OpenGL中图形绘制后,往往需要一系列的变换来达到用户的目的,而这种变换实现的原理是又通过矩阵进行操作的.opengl中的变换一般包括视图变换.模型变换.投影变换等,在每次变换后,opengl将会呈 ...