HDU 3697 Selecting courses 选课(贪心)
题意:
一个学生要选课,给出一系列课程的可选时间(按分钟计),在同一时刻只能选一门课程(精确的),每隔5分钟才能选一次课,也就是说,从你第一次开始选课起,每过5分钟,要么选课,要么不选,不能隔6分钟再选。在给出的课程的事件Ai~Bi内,Bi起的那分钟是不能够选的了,就是说截止到(Bi-1)分钟59秒还能选,Bi就不能选了。
思路:
由于n最大才300,那就可以使用暴力解法。开始时刻可以从0~4分钟这5个时刻开始,因为每5分钟是个周期,比如0分没选,而5分才选了,这和从5分才开始选是一样的。每隔5分钟就检测一下有没有课可以选,如果有的话就立刻选,这么做有个前提,就是得按课程的截止时间来排序,然后往升序的方向开始扫。由于不能重复选课,所以需要一个数组来标记他们是否已经被选过了。每一时刻只能选一门,所以当选到了一门就可以跳到5分钟后了。
代码:
#include <iostream>
#include <algorithm>
#define N 305
using namespace std;
struct course
{
int a,b;
}courses[N];
bool cmp(course temp1,course temp2)
{
if(temp1.b==temp2.b)
return temp1.a<temp2.a;
return temp1.b<temp2.b;
}
int main()
{
int n,i,j,num,max,cur;
bool vis[N];
while(cin>>n,n)
{
max = ;
for(i=;i<n;i++)
cin>>courses[i].a>>courses[i].b;
sort(courses,courses+n,cmp); for(i=;i<;i++) //穷举5个时间
{
num = ;
memset(vis,,sizeof(vis));
for(j=i; j<courses[n-].b; j+=)
{
for(int k=;k<n;k++)
{
if(!vis[k] && j<courses[k].b && j>=courses[k].a )
{
num++;
vis[k] = true;
break;
}
}
}
if(max<num)
max=num;
}
cout<<max<<endl;
}
return ;
}
3697
HDU 3697 Selecting courses 选课(贪心)的更多相关文章
- HDU 3697 Selecting courses(贪心)
题目链接:pid=3697" target="_blank">http://acm.hdu.edu.cn/showproblem.php?pid=3697 Prob ...
- HDU 3697 Selecting courses(贪心+暴力)(2010 Asia Fuzhou Regional Contest)
Description A new Semester is coming and students are troubling for selecting courses. Students ...
- hdu 3697 Selecting courses (暴力+贪心)
Selecting courses Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 62768/32768 K (Java/Others ...
- Hdoj 3697 Selecting courses 【贪心】
Selecting courses Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 62768/32768 K (Java/Others ...
- HDU - 3697 Selecting courses
题目链接:https://vjudge.net/problem/HDU-3697 题目大意:选课,给出每门课可以的选课时间.自开始选课开始每过五分钟可以选一门课,开始 时间必须小于等于四,问最多可以选 ...
- POJ 2239:Selecting Courses 选课
Selecting Courses Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9380 Accepted: 4177 ...
- hdu 3697 10 福州 现场 H - Selecting courses 贪心 难度:0
Description A new Semester is coming and students are troubling for selecting courses. Students ...
- poj 2239 Selecting Courses (二分匹配)
Selecting Courses Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 8316 Accepted: 3687 ...
- hdu 4825 Xor Sum(trie+贪心)
hdu 4825 Xor Sum(trie+贪心) 刚刚补了前天的CF的D题再做这题感觉轻松了许多.简直一个模子啊...跑树上异或x最大值.贪心地让某位的值与x对应位的值不同即可. #include ...
随机推荐
- synchronized关键字的作用域
转自:http://www.cnblogs.com/devinzhang/archive/2011/12/14/2287675.html 1.synchronized关键字的作用域有二种: 1)是某个 ...
- Instruments10 分析某个类中方法的执行时间
此步骤也可用户内存分配.内存泄漏的检测 最新操作步骤参考: https://www.jianshu.com/p/e499ce63ed72
- jQuery插件AjaxFileUpload可以实现ajax文件上传
http://blog.sina.com.cn/s/blog_55e42da60100ocvh.html
- 【spring容器bean的作用域+spring容器是否是单例的一些问题】
Spring容器中Bean的作用域 当通过Spring容器创建一个Bean实例时,不仅可以完成Bean实例的实例化,还可以为Bean指定特定的作用域.Spring支持如下5种作用域: singleto ...
- rxjs入门6之合并数据流
一 concat,merge,zip,combineLatest等合并类操作符 以上操作符在版本6中已经只存在静态方法,不能在pipe中使用. import {concat,merge,zip,com ...
- 开发php接口注意点
1.制定规范 开发前一定要定好一个规范,比如要定好数据返回的通用参数和格式.关于数据格式,用的比较多的有xml和json,我建议用json,因为json比xml的好处更多. 2.精简的返回数据 接口数 ...
- .NET ToString() format格式化字符串(常用)
前言 我们平常会用到货币数据类型,尤其当我们计算金钱或者算数的时候经常会遇到保留几位小数,而且碰到日期格式问题的时候,经常不知道选择什么样的格式比较合适,下面我找了一部分常用的.NET ToStrin ...
- 洛谷P2055 [ZJOI2009]假期的宿舍
P2055 [ZJOI2009]假期的宿舍 题目描述 学校放假了 · · · · · · 有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题.比如 A 和 B 都是学校的学生,A ...
- iOS开发 - CocoaPods远程私有库从0到1
1. 创建主工程 路径:/Users/Funky/Desktop/CocoaPodRemoteLib/MyMainProject/MyMainProject.xcodeproj 2. 在码云(htt ...
- Anywhere 随启随用的静态文件服务器
三江建材官网项目 写nodeJs系列的文章都是因为这一个项目 第一天,搭建项目环境 记录心情: 首先,在写这个项目的时候,我很无助,只是拿到了设计稿,还有一个指导人,平常会很忙,只有在休闲的时候才能动 ...