HDU_1050 1051 [贪心]_水
2014-12-23 11:07
267 查看
传送门:1050
代码:
传送门:1051
思路:主要是熟悉一下STL的链表,数组一样能模拟。
代码:
/************************************************
* Author: Ac_sorry
* File:
* Create Date:
* Motto: One heart One life
* CSDN: http://blog.csdn.net/code_or_code *************************************************/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<cstdlib>
#include<vector>
#include<string>
#include<utility>
#include<map>
#include<set>
#include<queue>
#include<list>
#include<stack>
#define INF 0x3f3f3f3f
#define MOD 1000000007
#define seed_ 131
#define eps 1e-8
#define mem(a,b) memset(a,b,sizeof a)
#define w(i) tree[i].w
#define ls(i) tree[i].ls
#define rs(i) tree[i].rs
using namespace std;
typedef long long LL;
const int N=5010;
struct node{
int len,wei;
node(int x,int y):len(x),wei(y){}
bool operator<(const node t) const
{
return len<t.len;
}
};
int vis[222];
list<node> li;
bool cmp(node a,node b)
{
return a.len<b.len;
}
int main()
{
int T;scanf("%d",&T);
while(T--)
{
mem(vis,0);
int n;scanf("%d",&n);
int l,w;
for(int i=0;i<n;i++)
{
scanf("%d%d",&l,&w);
li.push_back(node(l,w));
}
li.sort();
int time=0;
while(!li.empty())
{
//cout<<"---\n";
list<node>::iterator p=li.begin();
list<node>::iterator pre;
int clen=(*p).len,cwei=(*p).wei;
pre=p;
p++;time++;
li.erase(pre);
while(p!=li.end())
{
if((*p).len>=clen&&(*p).wei>=cwei)
{
clen=(*p).len;
cwei=(*p).wei;
pre=p;
p++;
li.erase(pre);
}
else
p++;
}
//cout<<time<<"--\n";
}
printf("%d\n",time);
}
return 0;
}
代码:
/************************************************ * Author: Ac_sorry * File: * Create Date: * Motto: One heart One life * CSDN: http://blog.csdn.net/code_or_code *************************************************/ #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<cstdlib> #include<vector> #include<string> #include<utility> #include<map> #include<set> #include<queue> #include<stack> #define INF 0x3f3f3f3f #define MOD 1000000007 #define seed_ 131 #define eps 1e-8 #define mem(a,b) memset(a,b,sizeof a) #define w(i) tree[i].w #define ls(i) tree[i].ls #define rs(i) tree[i].rs using namespace std; typedef long long LL; const int N=50010; struct node{ int l,r; }a[222]; int vis[222]; int cmp(node a,node b) { return a.l<b.l; } int main() { int T;scanf("%d",&T); while(T--) { mem(vis,0); int n;scanf("%d",&n); int l,r; for(int i=0;i<n;i++) { scanf("%d%d",&l,&r); if(r<l) swap(l,r); a[i].l=(l%2?l:l-1); a[i].r=(r%2?r+1:r); } sort(a,a+n,cmp); int cnt=0,time=0; int cr,flag; while(cnt<n) { flag=0; for(int i=0;i<n;i++) if(!vis[i]) { if(!flag) { flag=1; cr=a[i].r; vis[i]=1; cnt++; } else { if(a[i].l>cr) { cr=a[i].r; vis[i]=1; cnt++; } } } time++; } printf("%d\n",10*time); } return 0; }
传送门:1051
思路:主要是熟悉一下STL的链表,数组一样能模拟。
代码:
/************************************************
* Author: Ac_sorry
* File:
* Create Date:
* Motto: One heart One life
* CSDN: http://blog.csdn.net/code_or_code *************************************************/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<cstdlib>
#include<vector>
#include<string>
#include<utility>
#include<map>
#include<set>
#include<queue>
#include<list>
#include<stack>
#define INF 0x3f3f3f3f
#define MOD 1000000007
#define seed_ 131
#define eps 1e-8
#define mem(a,b) memset(a,b,sizeof a)
#define w(i) tree[i].w
#define ls(i) tree[i].ls
#define rs(i) tree[i].rs
using namespace std;
typedef long long LL;
const int N=5010;
struct node{
int len,wei;
node(int x,int y):len(x),wei(y){}
bool operator<(const node t) const
{
return len<t.len;
}
};
int vis[222];
list<node> li;
bool cmp(node a,node b)
{
return a.len<b.len;
}
int main()
{
int T;scanf("%d",&T);
while(T--)
{
mem(vis,0);
int n;scanf("%d",&n);
int l,w;
for(int i=0;i<n;i++)
{
scanf("%d%d",&l,&w);
li.push_back(node(l,w));
}
li.sort();
int time=0;
while(!li.empty())
{
//cout<<"---\n";
list<node>::iterator p=li.begin();
list<node>::iterator pre;
int clen=(*p).len,cwei=(*p).wei;
pre=p;
p++;time++;
li.erase(pre);
while(p!=li.end())
{
if((*p).len>=clen&&(*p).wei>=cwei)
{
clen=(*p).len;
cwei=(*p).wei;
pre=p;
p++;
li.erase(pre);
}
else
p++;
}
//cout<<time<<"--\n";
}
printf("%d\n",time);
}
return 0;
}
相关文章推荐
- hdu 贪心(hdu 2037,hdu 1051,hdu 1050)
- HDU 1051 Wooden Sticks (贪心)
- hdu 1051 Wooden Sticks(贪心)
- HDU 1051 Wooden Sticks (贪心)
- HDU 1050 Moving Tables (贪心)
- hdu 1051 //多次贪心 (水题)
- hdu 1051 贪心
- hdu 1051_贪心
- HDU 1051(贪心)
- HDU 1050 Moving Tables 贪心
- hdu 1050 Moving Tables(贪心)
- POJ 1083 && HDU 1050 Moving Tables (贪心)
- hdu 1050 Moving Tables(排序方法小结。贪心)
- HDU--1050:Moving Tables (贪心)
- hdu 1051 Wooden Sticks(贪心)
- hdu 1050 Moving Tables (贪心)
- HDU 1050 Moving Tables (贪心)
- HDU 1051 Wooden Sticks (简单贪心)
- 贪心专题 HDU 1050
- hdu 1050 moving tables 贪心