题目链接:

C - CodeCoder vs TopForces

Gym - 101142C

题目大意:给你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 (连通块+思维)的更多相关文章

  1. Artwork (Gym - 102346A)【DFS、连通块】

    Artwork (Gym - 102346A) 题目链接 算法 DFS,连通块 时间复杂度:O(k*n + k * k) 1.这道题就是让你判断从(0,0)到(m,n),避开中途所有的传感器(传感器的 ...

  2. DFS序+线段树 hihoCoder 1381 Little Y's Tree(树的连通块的直径和)

    题目链接 #1381 : Little Y's Tree 时间限制:24000ms 单点时限:4000ms 内存限制:512MB 描述 小Y有一棵n个节点的树,每条边都有正的边权. 小J有q个询问,每 ...

  3. UVA 572 油田连通块-并查集解决

    题意:8个方向如果能够连成一块就算是一个连通块,求一共有几个连通块. 分析:网上的题解一般都是dfs,但是今天发现并查集也可以解决,为了方便我自己理解大神的模板,便尝试解这道题目,没想到过了... # ...

  4. HD1269迷宫城堡(有向图 && 划分连通块)

    迷宫城堡 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  5. DFS(连通块) ZOJ 2743 Bubble Shooter

    题目传送门 题意:从炮台射出一个球,三个及以上颜色相同的会掉落,问最后会掉落多少个球 分析:先从炮台找一个连通块,然后与顶部连接的连通块都不会掉落,剩下的就是炮台射出后跟随掉落的. #include ...

  6. 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 ...

  7. 图-用DFS求连通块- UVa 1103和用BFS求最短路-UVa816。

    这道题目甚长, 代码也是甚长, 但是思路却不是太难.然而有好多代码实现的细节, 确是十分的巧妙. 对代码阅读能力, 代码理解能力, 代码实现能力, 代码实现技巧, DFS方法都大有裨益, 敬请有兴趣者 ...

  8. UVa 572 油田(DFS求连通块)

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  9. DFS入门之二---DFS求连通块

    用DFS求连通块也是比较典型的问题, 求多维数组连通块的过程也称为--“种子填充”. 我们给每次遍历过的连通块加上编号, 这样就可以避免一个格子访问多次.比较典型的问题是”八连块问题“.即任意两格子所 ...

随机推荐

  1. mybatis的一种批量更新方法【我】

    接手一个项目,项目主要架构用的 servlet 3.0 + spring + mybatis 其中发现一个问题: 操作数据时,批量插入可以,批量更新,使用各种写法都无法成功,直接报 mybatis转换 ...

  2. Spring3 (事务管理)

    简介: 1.事务管理.2.整合Junit.3.整和Web 1       事务管理 1.1   回顾事务 l  事务:一组业务操作ABCD,要么全部成功,要么全部不成功. l  特性:ACID 原子性 ...

  3. 苹果电脑自带python安装tensorflow一直有问题

    对于有些程序是不支持python3而支持python2的,为了在苹果电脑安装tensorflow, 首先sudo su到管理员权限 export TF_BINARY_URL=https://stora ...

  4. TODO maven学习笔记

    maven是什么? 我的体会 我理解得maven就是一个构建工具,可以做一些项目得整合操作,我们把一些常见得操作,封装在maven里面,并给它命名成 clean,test,compile,这些步骤都是 ...

  5. Windows下MySQL下载安装、配置与使用

    用过MySQL之后,不论容量的话,发现比其他两个(sql server .oracle)好用的多,一下子就喜欢上了.下面给那些还不知道怎么弄的童鞋们写下具体的方法步骤. (我这个写得有点太详细了,甚至 ...

  6. (JAVA对进制的运算)A + B Again hdu2057 要复习

    (置顶,复习)A + B Again 链接:http://acm.hdu.edu.cn/showproblem.php?pid=2057 Time Limit: 1000/1000 MS (Java/ ...

  7. 7.Django

    1.遍历数据 2.正则表达式匹配数字 ##url超链接 ##配置url ##POST请求需要设置csrf_token

  8. javaWeb中使用ajax上传文件

    javaWeb上传图片 上传文件所必要的两个jar包:commons-fileupload.jar.commons-io.jar. jar包下载:github路径 核心代码: String withP ...

  9. IE缓存查看的方法

    选择设置中的Internet选项中, 然后点击查看文件: 最终缓存目录:

  10. Nginx+Keeplived双机热备(主从模式)

    Nginx+Keeplived双机热备(主从模式) 参考资料: http://www.cnblogs.com/kevingrace/p/6138185.html 双机高可用一般是通过虚拟IP(漂移IP ...