Selecting courses HDU - 3697 贪心 思维
2017-04-28 16:59
399 查看
题目: 学生只能每隔5分钟选一次课,并且每次只能选一次课,求最多选多少次课。
分析: 对 0 1 2 3 4 这五个时间段进行枚举, 对于每一个时间,一定要选课程结束时间最早的,这样使得该课程占用可选的的时间点最少。
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int N = 1e3+10;
struct node {
int l,r;
};
node data
;
bool cmp( node a,node b )
{
if ( a.r==b.r ) return a.l<b.l;
return a.r<b.r;
}
int vis
;
int main()
{
int t;
int ans,now,tans;
while ( scanf("%d",&t)!=EOF )
{
if ( !t ) break;
for ( int i=0; i<t;i++ ) scanf("%d%d",&data[i].l,&data[i].r);
sort( data,data+t,cmp );
ans = 0 ;
for ( int s =0; s<5; s++ ) {
memset( vis,0,sizeof vis );
tans = 0 ;
for ( int index = s; index <=data[t-1].r; index+=5 ) {
for ( int i=0;i<t; i++ ) {
if ( vis[i] ) continue;
if ( index>=data[i].l && index<data[i].r) {
vis[i] = 1;
tans++;
break;
}
}
}
ans = max( ans,tans ) ;
}
cout<<ans<<endl;
}
return 0;
}
分析: 对 0 1 2 3 4 这五个时间段进行枚举, 对于每一个时间,一定要选课程结束时间最早的,这样使得该课程占用可选的的时间点最少。
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int N = 1e3+10;
struct node {
int l,r;
};
node data
;
bool cmp( node a,node b )
{
if ( a.r==b.r ) return a.l<b.l;
return a.r<b.r;
}
int vis
;
int main()
{
int t;
int ans,now,tans;
while ( scanf("%d",&t)!=EOF )
{
if ( !t ) break;
for ( int i=0; i<t;i++ ) scanf("%d%d",&data[i].l,&data[i].r);
sort( data,data+t,cmp );
ans = 0 ;
for ( int s =0; s<5; s++ ) {
memset( vis,0,sizeof vis );
tans = 0 ;
for ( int index = s; index <=data[t-1].r; index+=5 ) {
for ( int i=0;i<t; i++ ) {
if ( vis[i] ) continue;
if ( index>=data[i].l && index<data[i].r) {
vis[i] = 1;
tans++;
break;
}
}
}
ans = max( ans,tans ) ;
}
cout<<ans<<endl;
}
return 0;
}
相关文章推荐
- H - Selecting courses HDU - 3697 (暴力,枚举,贪心)
- hdu5969-贪心&思维&证明-最大的异或
- HDU-3697 贪心
- hdu 3697 Selecting courses(贪心)
- hdu 4803 贪心/思维题
- Too Rich HDU - 5527 (思维题+贪心)
- HDU 3697 Selecting courses 选课(贪心)
- HDU 3697 暴力贪心
- hdu 5802 Windows 10 (贪心 + 思维)
- HDU-3697-Selecting courses(贪心+优先队列)
- HDU 5969 最大的位或 (思维题 贪心)
- hdu 4550 贪心 思维题 不错
- HDU 4268 AliceBob大牌覆盖小牌-思维(贪心+multiset)
- hdu 5073 Galaxy【思维+贪心】好题
- HDU 3697 Selecting courses(贪心)
- hdu 5281 Senior's Gun(贪心)(思维)
- hdu 3697 贪心
- HDU 3697--贪心+暴力
- HDU 3697 Selecting courses(贪心)
- HDU 3697贪心