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. Android使用 startActivityForResult 、 onActivityResult 时的注意事项

    今天使用 startActivityForResult 时遇到两个问题,应该是常见问题了吧,浪费了些时间才搞定,做个记录. 1. onActivityResult 的触发顺序问题 这个问题很郁闷,我一 ...

  2. hdu1029

    #include<iostream>#include<string.h>using namespace std;int main(){ int n,i; int t; int ...

  3. 使用 Git 报错 error: src refspec master matches more than one.

    今天在使用 Git push 代码时遇到一个报错: error: src refspec master matches more than one. error: failed to push som ...

  4. 为何没有.aspx.designer.cs文件?

    designer.cs 是窗体设计器生成的代码文件,作用是对窗体上的控件做初始化工作(在函数InitializeComponent()中)VS2003以前都把这部分代码放到窗体的cs文件中,由于这部分 ...

  5. 从后台调用前台js

    引用: using System.Web.UI; ScriptManager.RegisterClientScriptBlock(this, GetType(), "Js", &q ...

  6. Angular JS Scope(作用域)

    Scope(作用域) 是应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带. Scope 是一个对象,有可用的方法和属性. Scope 可应用在视图和控制器上. 当你在 Ang ...

  7. IE678进入混杂模式

    <!-- 加载公共头部 --> <include file="Public/header" /> 当你在模板页的最上方加注释的说明时,在IE低版本中打开会进 ...

  8. vsftp 虚拟用户

    首先安装vsftp db-4wiki mkdir -p /opt/ftp 创建用户 sudo useradd virtual -d /opt/ftp -s /bin/false sudo chown ...

  9. Hibernate HQL查询语句总结

    Hibernate HQL查询语句总结 1. 实体查询:有关实体查询技术,其实我们在先前已经有多次涉及,比如下面的例子:String hql="from User user ";L ...

  10. Openlayer 3 删除上一次绘制的图

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...