1001 Monitor the Alpacas

1002 The Relationship in Club

1003 Difference of Clustering

两边离散化。暴力扫C就过了。

 #include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define maxn 1000010
bool vis1[maxn],vis2[maxn];
int Hash[maxn],h[][maxn];
int tt[],num[],c1[maxn],c2[maxn];
int sz[][maxn]; struct node
{
int to,pre;
} edge[][maxn]; void add(int op,int from,int to)
{
tt[op]++;
edge[op][tt[op]].pre=h[op][from];
edge[op][tt[op]].to=to;
h[op][from]=tt[op];
} int id(int op,int x)
{
return lower_bound(Hash,Hash+num[op],x)-Hash;
} int main(void)
{
int T; cin>>T;
for(int kase=;kase<=T;kase++)
{
memset(tt,,sizeof(tt));
memset(h,,sizeof(h));
memset(sz,,sizeof(sz));
memset(Hash,,sizeof(Hash));
int n; scanf("%d",&n);
for(int i=;i<n;i++) scanf("%d%d",c1+i,c2+i);
for(int i=;i<n;i++) Hash[i]=c1[i];
sort(Hash,Hash+n);
num[]=unique(Hash,Hash+n)-Hash;
for(int i=;i<n;i++)
{
add(,c1[i]=id(,c1[i]),i);
sz[][c1[i]]++;
}
for(int i=;i<n;i++) Hash[i]=c2[i];
sort(Hash,Hash+n);
num[]=unique(Hash,Hash+n)-Hash;
for(int i=;i<n;i++)
{
add(,c2[i]=id(,c2[i]),i);
sz[][c2[i]]++;
}
int S=,M=,O=;
memset(vis1,,sizeof(vis1));
memset(vis2,,sizeof(vis2));
for(int i=;i<num[];i++)
{
if(!sz[][i]) continue;
int ok=,tot=,cnt=;
for(int j=h[][i];j;j=edge[][j].pre)
{
int cur=c2[edge[][j].to];
if(vis1[cur]) {ok=;break;}
if(!vis2[cur])
{
cnt++;
tot+=sz[][cur];
vis2[cur]=;
}
}
if(sz[][i]!=tot) ok=;
if(ok)
{
if(cnt==) O++;
else S++;
}
for(int j=h[][i];j;j=edge[][j].pre) vis1[c2[edge[][j].to]]=;
}
memset(vis1,,sizeof(vis1));
memset(vis2,,sizeof(vis2));
for(int i=;i<num[];i++)
{
if(!sz[][i]) continue;
int ok=,tot=,cnt=;
for(int j=h[][i];j;j=edge[][j].pre)
{
int cur=c1[edge[][j].to];
if(vis1[cur]) {ok=;break;}
if(!vis2[cur])
{
cnt++;
tot+=sz[][cur];
vis2[cur]=;
}
}
if(ok&&sz[][i]==tot&&cnt>) M++;
for(int j=h[][i];j;j=edge[][j].pre) vis1[c1[edge[][j].to]]=;
}
printf("Case #%d: %d %d %d\n",kase,S,M,O);
}
return ;
}

Aguin

1004 Difference of Languages

1005 Shape

1006 Removed Interval

1007 Simple Matrix

1008 The Next

1009 Find a path

1010 Queue

2015 ACM/ICPC Asia Regional Hefei Online的更多相关文章

  1. 【二分】【最长上升子序列】HDU 5489 Removed Interval (2015 ACM/ICPC Asia Regional Hefei Online)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5489 题目大意: 一个N(N<=100000)个数的序列,要从中去掉相邻的L个数(去掉整个区间 ...

  2. 【线段树】HDU 5493 Queue (2015 ACM/ICPC Asia Regional Hefei Online)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5493 题目大意: N个人,每个人有一个唯一的高度h,还有一个排名r,表示它前面或后面比它高的人的个数 ...

  3. 【动态规划】HDU 5492 Find a path (2015 ACM/ICPC Asia Regional Hefei Online)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5492 题目大意: 一个N*M的矩阵,一个人从(1,1)走到(N,M),每次只能向下或向右走.求(N+ ...

  4. 【贪心】【模拟】HDU 5491 The Next (2015 ACM/ICPC Asia Regional Hefei Online)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5491 题目大意: 一个数D(0<=D<231),求比D大的第一个满足:二进制下1个个数在 ...

  5. hdu 5492 Find a path(dp+少量数学)2015 ACM/ICPC Asia Regional Hefei Online

    题意: 给出一个n*m的地图,要求从左上角(0, 0)走到右下角(n-1, m-1). 地图中每个格子中有一个值.然后根据这些值求出一个最小值. 这个最小值要这么求—— 这是我们从起点走到终点的路径, ...

  6. HDU - 5493 Queue 2015 ACM/ICPC Asia Regional Hefei Online(线段树)

    按身高排序,每个人前面最高的人数有上限,如果超出上限说明impossible, 每次考虑最小的人,把他放在在当前的从左往右第k+1个空位 因为要求字典序最小,所以每次k和(上限-k)取min值. 没有 ...

  7. HDU 5489 Removed Interval 2015 ACM/ICPC Asia Regional Hefei Online (LIS变形)

    定义f[i]表示以i为开头往后的最长上升子序列,d[i]表示以i为结尾的最长上升子序列. 先nlogn算出f[i], 从i-L开始枚举f[i],表示假设i在最终的LIS中,往[0,i-L)里找到满足a ...

  8. HDU - 5491 The Next 2015 ACM/ICPC Asia Regional Hefei Online

    从D+1开始,对于一个数x,区间[x,x+lowbit(x))内的数字的二进制位上1的数量整体来说是单调不减的,因此可快速得出1在这个区间的取值范围. 每次判断一下有没有和[s1,s2]有没有交集,一 ...

  9. hdu 5444 Elven Postman(二叉树)——2015 ACM/ICPC Asia Regional Changchun Online

    Problem Description Elves are very peculiar creatures. As we all know, they can live for a very long ...

随机推荐

  1. 第 2 章 Node.js 中的交互式运行环境 —— REPL

    本章内容包括: 如何使用REPL运行环境以及如何在该运行环境中测试各种JavaScript表达式. 如何定义并启动REPL运行环境. Node.js 框架中为REPL运行环境提供了哪些命令以及这些命令 ...

  2. strut2配置文件属性介绍

    mystruts.xml配置文件属性介绍 1.package标签的中的namespace属性 <package name="default" extends="st ...

  3. Objective-C Runtime 运行时之二:成员变量与属性(转载)

    在前面一篇文章中,我们介绍了Runtime中与类和对象相关的内容,从这章开始,我们将讨论类实现细节相关的内容,主要包括类中成员变量,属性,方法,协议与分类的实现. 本章的主要内容将聚集在Runtime ...

  4. BAPI_GOODSMVT_CREATE 移动类型201 CODE = '03' 代码

    DATA: MAT_DOC LIKE BAPI2017_GM_HEAD_RET-MAT_DOC.      "物料凭证编号   DATA: GMHEAD LIKE BAPI2017_GM_H ...

  5. Modules和Autolinking

    Modules和Autolinking OC自从Apple接手后,一直在不断改进.随着移动开发带来的OC开发者井喷式增加,客观上也要求Apple需要提供各种良好特性来支持这样一个庞大的开发者社区.iO ...

  6. 批量安装XP补丁的命令

    方法一: 新建一个bat文件,把这个文件和所有补丁文件放在同一个目录下,双击运行. BAT代码如下 @echo offfor %%i in (*.exe) do %%i /passive /nores ...

  7. Jmeter组件介绍

    测试计划:一次性能测试的相关功能用例集. 测试计划--线程组添加:

  8. hdu 1384 Intervals

    差分约束系统. 求最小值,用最长路来解决. #include<cstdio> #include<cstring> #include<cmath> #include& ...

  9. 第八十节,CSS3边框图片效果

    CSS3边框图片效果 学习要点: 1.属性初探 2.属性解释 3.简写和版本 本章主要探讨HTML5中CSS3中边框图片背景的效果,通过这个新属性让边框更加的丰富多彩. 一.属性解释     CSS3 ...

  10. JUnit test case 执行顺序

    转自:JUnit中按照顺序执行测试方式 很多情况下,写了一堆的test case,希望某一些test case必须在某个test case之后执行.比如,测试某一个Dao代码,希望添加的case在最前 ...