HDU-3697 贪心
2016-08-04 21:01
246 查看
题意:给出n门课的选课起止时间,每五分钟选择一门,最多能选择几门课。
贪心,截止时间早的课程优先选,但是优先级低的课程选的时间可以放在优先级高的前面,然后从0到4枚举开始时间。讲结果存放在一个时间轴上,最后统计什么时候开始选选的课最多。
贪心,截止时间早的课程优先选,但是优先级低的课程选的时间可以放在优先级高的前面,然后从0到4枚举开始时间。讲结果存放在一个时间轴上,最后统计什么时候开始选选的课最多。
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; struct node { int b, e; }id[300]; bool cmp(node a, node b) { if(a.e != b.e) return a.e < b.e; return a.b < b.b; } int cn[1111]; int main(){ int n, i, j, k; while(~scanf("%d", &n) && n) { memset(cn, 0, sizeof(cn)); for(i = 0; i < n; i++) { scanf("%d%d", &id[i].b, &id[i].e); } sort(id, id + n, cmp); int ans = 0, pre = -1; for(i = 0; i < 5; i++) { for(j = 0; j < n; j++){ for(k = id[j].b; k % 5 != i; k++); for(; k < id[j].e; k += 5) { if(!cn[k]) { cn[k] = 1; break; } } } } for(i = 5; i <= 1000; i++) cn[i] += cn[i - 5]; // for(i = 996; i <= 1000; i++) // printf("%d ", cn[i]); // printf("\n"); for(i = 996; i <= 1000; i++) if(ans < cn[i]) ans = cn[i]; printf("%d\n", ans); } return 0; }
相关文章推荐
- HDU 3697 Selecting courses(贪心)
- hdu 3697 Selecting courses (暴力+贪心)
- Hdu 3697 Selecting courses(贪心+暴力)
- hdu 3697 Selecting courses(贪心)
- HDU 3697贪心
- hdu 3697 Selecting courses (暴力+贪心)
- HDU 3697 Selecting courses(贪心)
- hdu 3697 贪心
- HDU 3697 Selecting courses 选课(贪心)
- HDU 3697 暴力贪心
- hdu 3697 Selecting courses (暴力+贪心)
- HDU 3697--贪心+暴力
- HDU 3697 Selecting courses (贪心)
- HDU-3697-Selecting courses(贪心+优先队列)
- HDU 3697(H) ——Selecting courses(暴力枚举,贪心)
- HDU 3697 Selecting courses (贪心)
- HDU 3697 Selecting courses(贪心+暴力)(2010 Asia Fuzhou Regional Contest)
- HDU 3697 Selecting courses(贪心)
- Selecting courses HDU - 3697 贪心 思维
- 简单贪心-hdu-3697-Selecting courses