简单贪心-hdu-3697-Selecting courses
来源:互联网 发布:喝咖啡会难怀孕吗 知乎 编辑:程序博客网 时间:2024/06/05 11:40
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=3697
题目大意:
有n门课程(n<=300),每门课程有个选课的时间段s,e,只能在s之后,在e之前选择该门课程。每位同学可以选择任意一个开始时间,然后每5分钟有一次选课机会,问每位同学最多可以选多少门课。
解题思路:
由于课程的选课时间是整数,对于整数开始点b,b+eps开始点更优。而且对于b~b+1之间的所有开始点,都与b+eps能选的最多课程数量相同。
贪心策略:对于截止时间早的先选。直接暴力枚举开始点,枚举每个能选的时刻就行了。
代码:
#include<iostream>#include<cmath>#include<cstdio>#include<sstream>#include<cstdlib>#include<string>#include<cstring>#include<algorithm>#include<vector>#include<map>#include<set>#include<stack>#include<list>#include<queue>#include<ctime>#include<bitset>#define eps 1e-6#define INF 0x3f3f3f3f#define PI acos(-1.0)#define ll __int64#define LL long long#define lson l,m,(rt<<1)#define rson m+1,r,(rt<<1)|1#pragma comment(linker, "/STACK:1024000000,1024000000")using namespace std;#define Maxn 330struct Inf{ int s,e;}inf[Maxn];bool cmp(struct Inf a,struct Inf b){ if(a.e!=b.e) return a.e<b.e; return a.s<b.s;}bool vis[Maxn];int main(){ int n; while(scanf("%d",&n)&&n) { for(int i=1;i<=n;i++) scanf("%d%d",&inf[i].s,&inf[i].e); sort(inf+1,inf+n+1,cmp); int ans=0; for(int i=0;i<5;i++) { int res=0,pos=1; memset(vis,false,sizeof(vis)); for(int j=i;j<inf[n].e;j+=5) { for(int k=1;k<=n;k++) { if(vis[k]) continue; if(inf[k].s<=j&&inf[k].e>j) { vis[k]=true,res++; break; } } } ans=max(ans,res); } printf("%d\n",ans); } return 0;}
- 简单贪心-hdu-3697-Selecting courses
- HDU 3697 Selecting courses (贪心)
- hdu 3697 Selecting courses (暴力+贪心)
- HDU 3697 Selecting courses(贪心)
- Hdu 3697 Selecting courses(贪心+暴力)
- hdu 3697 Selecting courses(贪心)
- HDU 3697 Selecting courses(贪心)
- HDU 3697 Selecting courses
- HDU 3697 Selecting courses
- HDU 3697 Selecting courses
- Hdoj 3697 Selecting courses 【贪心】
- HDU 3697 Selecting courses 选课(AC代码)贪心
- HDU-3697-Selecting courses(贪心+优先队列)
- HDOJ3697 Selecting courses[贪心]
- Selecting courses HDU
- Selecting courses HDU
- HDU 3697(H) ——Selecting courses(暴力枚举,贪心)
- hdu3697 Selecting courses (贪心+暴力)
- Oracle DB启动
- php拓展开发之模块全局变量
- Java基础加强<二>_内省、注解、泛型
- stack of flapjacks uva 120
- CUDA常见问题之无法在c文件中调用cu文件中定义的函数
- 简单贪心-hdu-3697-Selecting courses
- TOOLS
- Java多线程之syncronized(一)
- HDU 3035 War (dijstra+最小割建图,4级)
- 字典树入门及实现_JAVA
- Linux编程 报错 找不到 term.h和curses.h
- ACM中Java使用总结
- 计算机组成原理-存储器
- 说说家乡的互联网-湖北麻城--美丽的杜鹃花城