Codeforces Round #693 (Div. 3) E. Correct Placement 思维
传送门
题意:
思路: 对于每个人都有个二元组(x,y)(x,y)(x,y),从题意中提取有效信息就是:当(x1,y1)(x_1,y_1)(x1,y1)的最大值大于(x2,y2)(x_2,y_2)(x2,y2)的最大值,(x1,y1)(x_1,y_1)(x1,y1)的最小值大于(x2,y2)(x_2,y_2)(x2,y2)的最小值,那么(x2,y2)(x_2,y_2)(x2,y2)就是符合条件的。这样我们可以对于hhh和www,如果h<wh<wh<w,那么就交换hhh和www。让后按照hhh排序,从头维护一个www的最小值和对应的ididid,让后在hhh不相等的时候更新就好啦。
//#pragma GCC optimize(2)
#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
#include<map>
#include<cmath>
#include<cctype>
#include<vector>
#include<set>
#include<queue>
#include<algorithm>
#include<sstream>
#include<ctime>
#include<cstdlib>
#define X first
#define Y second
#define L (u<<1)
#define R (u<<1|1)
#define pb push_back
#define mk make_pair
#define Mid (tr[u].l+tr[u].r>>1)
#define Len(u) (tr[u].r-tr[u].l+1)
#define random(a,b) ((a)+rand()%((b)-(a)+1))
#define db puts("---")
using namespace std;//void rd_cre() { freopen("d://dp//data.txt","w",stdout); srand(time(NULL)); }
//void rd_ac() { freopen("d://dp//data.txt","r",stdin); freopen("d://dp//AC.txt","w",stdout); }
//void rd_wa() { freopen("d://dp//data.txt","r",stdin); freopen("d://dp//WA.txt","w",stdout); }typedef long long LL;
typedef unsigned long long ULL;
typedef pair<int,int> PII;const int N=1000010,mod=1e9+7,INF=0x3f3f3f3f;
const double eps=1e-6;int n;
int ans[N];
struct Node
{int x,y;int id;bool operator < (const Node &W) const{if(x!=W.x) return x<W.x;else return y<W.y;}
}q[N];int main()
{// ios::sync_with_stdio(false);
// cin.tie(0);int _; scanf("%d",&_);while(_--){scanf("%d",&n);for(int i=1;i<=n;i++){ans[i]=-1;scanf("%d%d",&q[i].x,&q[i].y); q[i].id=i;if(q[i].x<q[i].y) swap(q[i].x,q[i].y);}sort(q+1,q+1+n);int mi=INF,id=-1;for(int i=1;i<=n;i++){int x=q[i].x,now=i;while(i<=n&&x==q[i].x){if(mi!=INF&&mi<q[i].y) ans[q[i].id]=id;i++;}i--;if(mi>q[now].y) mi=q[now].y,id=q[now].id;}for(int i=1;i<=n;i++) printf("%d ",ans[i]);puts("");}return 0;
}
/**/
Codeforces Round #693 (Div. 3) E. Correct Placement 思维相关推荐
- Codeforces Round #693 (Div. 3)A~G解题报告
Codeforces Round #693 (Div. 3)A~G解题报告 A Cards for Friends 原题信息 http://codeforces.com/contest/1472/pr ...
- Codeforces Round #693 (Div. 3)部分题解
Codeforces Round #693 (Div. 3) 部分题解 D. Even-Odd Game 思路: 贪心:田忌赛马 (1)先将数组从大到小排序,取数时从大到小取,用一个ans变量记录取数 ...
- Codeforces Round #587 (Div. 3) C. White Sheet 思维
传送门 文章目录 题意: 思路: 题意: 给你一个白色的矩形和俩个黑色的矩形,问白色被黑色覆盖后还能不能看到. 思路: 经典被简单题卡. 一开始写了个自我感觉很对的做法,结果wa41wa41wa41, ...
- Codeforces Round #636 (Div. 3) E. Weights Distributing 思维 + bfs
传送门 文章目录 题意: 思路: 题意: n≤2e5,m≤2e5n\le2e5,m\le2e5n≤2e5,m≤2e5 思路: 怎么感觉每场div3div3div3都有一个巧妙的图论题. 首先如果只有两 ...
- Codeforces Round #617 (Div. 3) F. Berland Beauty 思维
传送门 文章目录 题意: 思路: 题意: 给定一棵树,再给定若干两点最短路之间边权的最小值,让你给树的边权赋值,使得满足给定的条件,如果不存在输出−1-1−1. 思路: 观察一个性质,加入经过这条边的 ...
- Codeforces Round #350 (Div. 2) E. Correct Bracket Sequence Editor 栈 链表
E. Correct Bracket Sequence Editor 题目连接: http://www.codeforces.com/contest/670/problem/E Description ...
- Codeforces Round #693 (Div. 3)G. Moving to the Capital
题目链接:Problem - G - Codeforces 题目大意:给定一张n个节点m条边的图,定义d数组为每个结点到结点1的距离. 每次可以选择两个操作:1,跳到结点x,dx>d当前 2.跳 ...
- Codeforces Round #693 (Div. 3) G. Moving to the Capital dp + 思维
传送门 题意: 给一个图,111号点为中心点,定义dis[i]dis[i]dis[i]表示111号点到iii的距离.现在有三种移动方式 (1)(1)(1)从iii移动到jjj且dis[i]<di ...
- Codeforces Round #548 (Div. 2) C. Edgy Trees(思维+dfs)
题目链接:https://codeforces.com/contest/1139/problem/C 题意是给了一棵树,n个点,m条边.让从中选k个点,使得从a1到a2,a2到a3,ak ...
最新文章
- Java枚举意义在哪_java – 多个if-else或枚举 – 哪一个更好,为什么?
- python代码创建数据库_python创建数据库代码
- “chaos”的算法--之Floyd算法详解(求最短路径)
- Java线程中关于Synchronized的用法
- c语言生成迷宫算法,[原创]递归随机迷宫生成算法详解
- 合作︱2018CCF青年精英大会首设科技创业竞赛,快来报名吧!
- java Iterator的next()、previous()、set()究竟指向哪里?
- android webkit js脚本注入(js内部对象由java层构建)
- 某网站前端页面性能测试
- 拓端tecdat:已迁离北京外来人口的数据画像
- oracle表级附加日志视图,Oracle附加日志
- 如何使用工具切换设备ip 电脑和手机怎么如何换ip?
- linux shc shell脚本_用shc加密shell脚本
- 单片机的串口实验 串口介绍 串口原理
- 如何去除图片背景颜色?怎样将背景色变透明?
- 社会力模型SFM详解 在人群异常检测上的应用
- 马云的顿悟:阿里巴巴在维基经济学中成长
- 【转】现代c++开发利器folly教程系列之:future/promise
- 7-2 海盗分赃 (25 分)(PTA)
- CentOS7 export命令
热门文章
- 橡皮筋还能发动载人飞行器?
- 两点之间直线只有一条,曲线却有无数条,哪条才是最短的?
- 超形象!著名的三角不等式演示动图!
- 看见到洞见之引子(二)机器学习算法
- 华为nova6计算机在哪,华为nova6开发者选项在哪
- 二叉排序树与文件操作的设计与实现_堆排序就这么简单
- linux系统管理命令使用,Linux系统管理使用之基本命令(1)
- oracle中文加密算法,Oracle数据库替代加密算法
- vscode 快速调到定义处_vim技巧:在程序代码中快速跳转,在文件内跳转到变量定义处...
- java web编写计算器_javaWeb 使用 jsp 和 javaBean 实现计算器功能