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. extjs+amcharts生成3D柱状图和数据表格使用总结

    废话不多说,使用extjs+amcharts创建3d柱状图和数据表实例,如下: 1.首先定义一个数据模型 Ext.define("cacheHijack", { extend : ...

  2. AsyncHttpClient 中的重定向和 setEnableRedirects 方法异常解决

    今天使用 AsyncHttpClient  开源库,遇到个很崩溃的问题: 方法  setEnableRedirects(false); 从名称上看应该是重定向开关的方法,设置为 false 后则普通请 ...

  3. CodeForces 670D Magic Powder

    二分. 二分一下答案,然后验证一下. #pragma comment(linker, "/STACK:1024000000,1024000000") #include<cst ...

  4. 推荐几个在线PDF转化成Word网站

    不想安装专业的pdf转换成word软件,希望大家喜欢!昨天用的https://www.pdftoword.com/# 成功搞定! 1.Free-PDFtoWord 在线转换工具: 地址:http:// ...

  5. 正确的IP地址正则表达式

    ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)

  6. Java基础第3章

  7. 初始go语言

    一.创建第一个go语言程序:打印hello world! package main import "fmt" func main() { fmt.Println("Hel ...

  8. curl 命令使用总结

    curl 查看网页源码 curl www.sina.com 保存页面 -o curl -o [文件名] www.sina.com 直接在curl命令后加上网址,就可以看到网页源码. 如果要把这个网页保 ...

  9. Restaurant & Cooking Starter Kit v1.2.1

    项目: using UnityEngine; using System.Collections; namespace VoidGame { public class Constant : MonoBe ...

  10. 关于reportng生成的测试报告不按测试执行顺序的解决办法

    需要修改TestResultComparator类的源码,源码自己去reportng官网http://reportng.uncommons.org/下载,因为reportng默认是按字母先后顺序进行排 ...