CFgym:Of Zorcs and Axes(贪心)
2017-05-08 23:04
225 查看
题意:有N个人,M件物品,每个人和物品都有x,y两个值,将这M件物品分配给这N个人,要求物品的x,y值均要大于等于人的x,y值才可以分给这个人,输出分配的方案,不行就输出-1。
思路:将人按x值由大到小处理,每次将剩余的thing[x]>=human[x]的物品扔进set,二分找出thing[y] >= human[y]的物品分配给他,就可以保证最优解了。
//reference pjh714332048
# include <bits/stdc++.h>
using namespace std;
const int N = 2e5+3;
struct node
{
int x, y, id;
bool operator <(const node&a)const
{
return x > a.x;
}
}u
, v
;
set<pair<int,int> >s;
int ans
;
int main()
{
int n, m, x, y;
scanf("%d",&n);
for(int i=0; i<n; ++i)
scanf("%d%d",&u[i].x,&u[i].y),u[i].id = i;
scanf("%d",&m);
for(int i=0; i<m; ++i)
scanf("%d%d",&v[i].x,&v[i].y),v[i].id = i;
sort(v, v+m);
sort(u, u+n);
int j=0;
for(int i=0; i<n; ++i)
{
for(;v[j].x >= u[i].x; ++j)
s.insert(make_pair(v[j].y, v[j].id));
auto p = s.lower_bound(make_pair(u[i].y,0));
if(p == s.end())
return 0*puts("-1");
ans[u[i].id] = p->second;
s.erase(p);
}
for(int i=0; i<n; ++i)
printf("%d%c",ans[i]+1,i==n-1?'\n':' ');
return 0;
}
相关文章推荐
- G. Of Zorcs and Axes 二分 + 贪心 —— STL的用法
- G. Of Zorcs and Axes----贪心+STL
- GYM 101149 G.Of Zorcs and Axes(set)
- codeforces489 C. Given Length and Sum of Digits...【贪心】
- Codeforces Round #277.5 (Div. 2)——C贪心—— Given Length and Sum of Digits
- Codeforces Round #277.5 (Div. 2)C. Given Length and Sum of Digits...(贪心)
- CodeForces 489C (贪心) Given Length and Sum of Digits...
- Codeforces Round #277.5 (Div. 2)C. Given Length and Sum of Digits...(贪心)
- codeforces 680D D. Bear and Tower of Cubes(dfs+贪心)
- Codeforces #277.5 (Div. 2) C. Given Length and Sum of Digits...(简单贪心)
- CFgym:Bonuses and Teleports(贪心)
- codeforces 680D D. Bear and Tower of Cubes(dfs+贪心)
- 找规律/贪心 Codeforces Round #310 (Div. 2) A. Case of the Zeros and Ones
- Codeforces Round #277.5(Div. 2) C. Given Length and Sum of Digits...【贪心】
- Codeforces 489C - Given Length and Sum of Digits...(贪心)
- CF 518 E Arthur and Questions(贪心,模拟乱搞)
- hdu 5338 ZZX and Permutations (贪心+线段树+二分)
- ICM Technex 2017 and Codeforces Round #400 (Div. 1 + Div. 2, combined) A map B贪心 C思路前缀
- Comparing Object-Oriented Features of Delphi, C++, C# and Java
- tomcat 大并发报错 Maximum number of threads (200) created for connector with address null and port 8080