C - CodeCoder vs TopForces Gym - 101142C (连通块+思维)
题目链接:
C - CodeCoder vs TopForces
题目大意:给你n个人的信息,每一个人的信息包括两个。t1和t2.A>B的前提是A的t1和t2至少有一个是大于B的t1和t2的。还要注意有一种情况当A>B,B>C的时候,A也是大于C的(虽然有可能A和C直接比,有可能A是小于C的)。
打个比方:
A 4 10
B 3 13
C 5 12
这个时候A是大于B的,但是A是小于C的,但是B是大于C的,所以就可以认为A是大于C的。
具体思路:首先按照x进行排序,建图,保证当前的点连向的边是比他大的。然后按照y来排序,同样建图的时候保证当前的点连向的边是比他大的。然后从第一个点开始,看一下当前的点能连向哪些边,那么这些点肯定是比他大的。当前的点找完之后,下一个点可以直接累加上上一个点找到的答案,因为下一个点肯定大于第一个点。
AC代码:
#include<bits/stdc++.h>
using namespace std;
# define ll long long
# define inf 0x3f3f3f3f
const int maxn = 2e5+;
struct node
{
int x,y;
int id;
node()
{
x=,y=,id=;
}
} q[maxn];
vector<int>edge[maxn];
int vis[maxn];
bool cmp1(node t1,node t2)
{
return t1.x<t2.x;
}
bool cmp2(node t1,node t2)
{
return t1.y<t2.y;
}
int cnt=;
int ans[maxn];
void dfs(int u)
{
cnt++;
vis[u]=;
for(int i=; i<edge[u].size(); i++)
{
if(vis[edge[u][i]])
continue;
dfs(edge[u][i]);
}
}
int main()
{
freopen("codecoder.in","r",stdin);
freopen("codecoder.out","w",stdout);
int n;
scanf("%d",&n);
int l,r;
for(int i=; i<=n; i++)
{
scanf("%d %d",&q[i].x,&q[i].y);
q[i].id=i;
}
sort(q+,q+n+,cmp1);
for(int i=; i<=n; i++)
{
edge[q[i].id].push_back(q[i-].id);
}
sort(q+,q+n+,cmp2);
for(int i=; i<=n; i++)
{
edge[q[i].id].push_back(q[i-].id);
}
for(int i=; i<=n; i++)
{
if(!vis[q[i].id])
{
dfs(q[i].id);
}
ans[q[i].id]=cnt-;
}
for(int i=; i<=n; i++)
{
printf("%d\n",ans[i]);
}
return ;
}
C - CodeCoder vs TopForces Gym - 101142C (连通块+思维)的更多相关文章
- Artwork (Gym - 102346A)【DFS、连通块】
Artwork (Gym - 102346A) 题目链接 算法 DFS,连通块 时间复杂度:O(k*n + k * k) 1.这道题就是让你判断从(0,0)到(m,n),避开中途所有的传感器(传感器的 ...
- DFS序+线段树 hihoCoder 1381 Little Y's Tree(树的连通块的直径和)
题目链接 #1381 : Little Y's Tree 时间限制:24000ms 单点时限:4000ms 内存限制:512MB 描述 小Y有一棵n个节点的树,每条边都有正的边权. 小J有q个询问,每 ...
- UVA 572 油田连通块-并查集解决
题意:8个方向如果能够连成一块就算是一个连通块,求一共有几个连通块. 分析:网上的题解一般都是dfs,但是今天发现并查集也可以解决,为了方便我自己理解大神的模板,便尝试解这道题目,没想到过了... # ...
- HD1269迷宫城堡(有向图 && 划分连通块)
迷宫城堡 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- DFS(连通块) ZOJ 2743 Bubble Shooter
题目传送门 题意:从炮台射出一个球,三个及以上颜色相同的会掉落,问最后会掉落多少个球 分析:先从炮台找一个连通块,然后与顶部连接的连通块都不会掉落,剩下的就是炮台射出后跟随掉落的. #include ...
- Codeforces Round #375 (Div. 2)——D. Lakes in Berland(DFS连通块)
D. Lakes in Berland time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- 图-用DFS求连通块- UVa 1103和用BFS求最短路-UVa816。
这道题目甚长, 代码也是甚长, 但是思路却不是太难.然而有好多代码实现的细节, 确是十分的巧妙. 对代码阅读能力, 代码理解能力, 代码实现能力, 代码实现技巧, DFS方法都大有裨益, 敬请有兴趣者 ...
- UVa 572 油田(DFS求连通块)
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- DFS入门之二---DFS求连通块
用DFS求连通块也是比较典型的问题, 求多维数组连通块的过程也称为--“种子填充”. 我们给每次遍历过的连通块加上编号, 这样就可以避免一个格子访问多次.比较典型的问题是”八连块问题“.即任意两格子所 ...
随机推荐
- Docker下安装Influxdb-1.6.1和Grafana5.2.2
第一步.安装Influxdb 首先启动docker systemctl start docker 然后安装Influxdb(这里解释一下为啥用docker,因为官网下载的话需要FQ[fan-qiang ...
- app软件遵循的规范
http://www.jianshu.com/p/a2a4c18c1900 https://wenku.baidu.com/view/ecb09b07a4e9856a561252d380eb6294d ...
- (Dijkstra) POJ2387 Til the Cows Come Home
Til the Cows Come Home Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 81024 Accepted ...
- MySQL三层结构、用户权限、索引设计原则
一.守护进程是什么? Linux Daemon(守护进程)是运行在后台的一种特殊进程.它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件.它不需要用户输入就能运行而且提供某种服务,不是对 ...
- 2.Diango学习
##创建应用 python manage.py startapp blog !!创建应用后要添加应用,名称不允许与模块名称相同 ##应用目录结构 ##文件介绍 1. 2. 3. 4. 5. 6. ## ...
- qml: 截图(单窗口);
Item提供了grabToImage方法,能够对窗口内指定区域进行截图: Rectangle { id: source width: 100 height: 100 gradient: Gradien ...
- 被顶级学术期刊枪毙的p.Value到底是个什么鬼
总结一下,在我看来,p.Value仅仅是在,假设检验,这理论框架下,对于证据力度的一个测量.而且,我们不大可能推翻假设检验这个框架,似乎也不必要,因为,这个框架非常合理,有广泛的应用场景,有强大的生命 ...
- nginx中间件
Nginx简介 Nginx是一个开源且高性能.可靠的HTTP中间件.代理服务.其特点是占有内存少,并发能力强. Nginx优势:IO多路复用epoll 1.什么是IO复用 它是内核提供的一种同时监控多 ...
- Event Recommendation Engine Challenge分步解析第四步
一.请知晓 本文是基于: Event Recommendation Engine Challenge分步解析第一步 Event Recommendation Engine Challenge分步解析第 ...
- css3 rotate(1turn)的用法
1turn:一圈,一个圆共一圈. 90deg = 0.25turn.