2016"百度之星" - 资格赛(Astar Round1) Problem E
简单模拟题,耐心写就能过。
#include <stdio.h>
#include <math.h>
#include<cstring>
#include<cmath>
#include<map>
#include<string>
#include<algorithm>
#include<vector>
using namespace std; const int INF=;
int n;
struct X
{
char s[];
int L[],R[];
} h[+]; map<string,int>m;
int cnt;
char tmp[]; char Na[];
int op,num;
int L,R; void get()
{
memset(Na,,sizeof Na);
int i;
for(i=; tmp[i]; i++)
{
if(tmp[i]==' ') continue;
else break;
} int g=;
for(; tmp[i]; i++)
{
if(tmp[i]>='a'&&tmp[i]<='z') Na[g++]=tmp[i];
else break;
} for(; tmp[i]; i++)
{
if(tmp[i]==' ') continue;
else break;
} if(tmp[i]=='<')
{
if(tmp[i+]=='=') op=;
else op=;
}
if(tmp[i]=='=') op=;
if(tmp[i]=='>')
{
if(tmp[i+]=='=') op=;
else op=;
} num=;
int u=;
for(; tmp[i]; i++)
{
if(tmp[i]=='-') u=-;
if(tmp[i]>=''&&tmp[i]<='') num=num*+tmp[i]-'';
}
num=num*u; if(op==) L=R=num;
else if(op==) L=-INF,R=num-,op=;
else if(op==) L=-INF,R=num;
else if(op==) L=num,R=INF;
else if(op==) L=num+,R=INF,op=;
} bool check(int a,int b)
{
for(int i=; i<=; i++)
{
if(h[a].L[i]==-) return ;
if(h[b].L[i]==-) return ;
} for(int i=; i<=; i++)
{
if(h[a].R[i]<h[b].L[i]) return ;
if(h[a].L[i]>h[b].R[i]) return ;
}
return ;
} int main()
{
while(~scanf("%d",&n))
{
getchar();
m.clear();
cnt=;
for(int i=; i<=n; i++) gets(h[i].s);
for(int i=; i<=n; i++)
{
int len=strlen(h[i].s);
char name[];
int tot=;
memset(name,,sizeof name);
for(int j=; j<len; j++)
{
if(h[i].s[j]>='a'&&h[i].s[j]<='z') name[tot++]=h[i].s[j];
else
{
if(name[]==) continue;
if(m[name]==) m[name]=++cnt;
tot=;
memset(name,,sizeof name);
}
}
} for(int i=; i<=n; i++)
{
int len=strlen(h[i].s);
int pos=;
memset(tmp,,sizeof tmp);
int f=; for(int j=; j<=; j++) h[i].L[j]=-INF,h[i].R[j]=INF; while(pos<=len)
{
if(h[i].s[pos]==','||h[i].s[pos]==)
{
get(); if(h[i].L[m[Na]]!=-)
{
if(op==)
{
if(R<h[i].L[m[Na]]) h[i].L[m[Na]]=h[i].R[m[Na]]=-;
else h[i].R[m[Na]]=min(h[i].R[m[Na]],R);
}
if(op==)
{
if(h[i].L[m[Na]]<=L&&L<=h[i].R[m[Na]]) h[i].L[m[Na]]=h[i].R[m[Na]]=L;
else h[i].L[m[Na]]=h[i].R[m[Na]]=-;
}
if(op==)
{
if(L>h[i].R[m[Na]]) h[i].L[m[Na]]=h[i].R[m[Na]]=-;
else h[i].L[m[Na]]=max(h[i].L[m[Na]],L);
}
}
memset(tmp,,sizeof tmp);
f=;
}
else tmp[f++]=h[i].s[pos];
pos++;
}
} for(int i=; i<=n; i++)
{
bool fail=;
vector<int>v; for(int j=; j<i; j++)
if(check(j,i))
{
fail=;
v.push_back(j);
} if(fail==) printf("unique\n");
else
{
for(int j=; j<v.size(); j++)
{
printf("%d",v[j]);
if(j<v.size()-) printf(" ");
else printf("\n");
}
}
}
}
return ;
}
2016"百度之星" - 资格赛(Astar Round1) Problem E的更多相关文章
- HDU 5688:2016"百度之星" - 资格赛 Problem D
原文链接:https://www.dreamwings.cn/hdu5688/2650.html Problem D Time Limit: 2000/1000 MS (Java/Others) ...
- HDU 5686:2016"百度之星" - 资格赛 Problem B
原文链接:https://www.dreamwings.cn/hdu5686/2645.html Problem B Time Limit: 2000/1000 MS (Java/Others) ...
- HDU 5685:2016"百度之星" - 资格赛 Problem A
原文链接:https://www.dreamwings.cn/hdu5685/2637.html Problem A Time Limit: 2000/1000 MS (Java/Others) ...
- 2016百度之星 资格赛ABCDE
看题:http://bestcoder.hdu.edu.cn/contests/contest_show.php?cid=690 交题:http://acm.hdu.edu.cn/search.php ...
- 2016"百度之星" - 资格赛(Astar Round1) Problem C
字典树. 插入的时候update一下节点出现的次数. delete的时候,先把前缀之后的全删了.然后看前缀最后一个节点出现了几次,然后前缀上每个节点的次数都减去这个次数. 前缀从上到下再检查一遍,如果 ...
- 2016"百度之星" - 资格赛(Astar Round1) Problem D
排个序,map直接搞. #include <stdio.h> #include <math.h> #include<cstring> #include<cma ...
- 2016"百度之星" - 资格赛(Astar Round1) Problem B
规律题,斐波那契数列,数据有毒,0的时候输出换行.会爆longlong,写个大数模板或者Java搞. import java.io.BufferedInputStream; import java.m ...
- 2016"百度之星" - 资格赛(Astar Round1) Problem A
保存前缀乘,询问的时候输出c[ri]/c[li-1]即可,因为是除法,所以计算一下c[li-1]的逆元. #include <stdio.h> #include <math.h> ...
- 2016"百度之星" - 资格赛(Astar Round1)
逆元 1001 Problem A 求前缀哈希和逆元 #include <bits/stdc++.h> typedef long long ll; const int MOD = 9973 ...
随机推荐
- 天津工业大学CST专业培养方案
第二学期 网页设计基础 计算机前沿技术 大学生心理健康与人生发展 高级语言程序设计II 思想道德修养与法律基础 职业生涯规划 大学英语二级(A) 大学物理(理三1) 线性代数 高等数学(理一2) 体育 ...
- KMP算法中的next数组求解示意图
- auto_ash
#!/usr/bin/ksh ##############paramter######################startdate=$1' 00:00:01'enddate=$2' 23:59: ...
- Anton and School
Anton and School time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...
- html dom模型一
DOM 节点 包含的节点内容: 根据 W3C 的 HTML DOM 标准,HTML 文档中的所有内容都是节点: 整个文档是一个文档节点 每个 HTML 元素是元素节点 HTML 元素内的文本是文本节点 ...
- HDU - 2502 Subway
题目链接:http://poj.org/problem?id=2502 分析: 告诉一些地铁线路,从起点到终点,中途可以步行,可以坐地铁,找一条最短的路 主要是把图建立好,然后直接dijkstra或者 ...
- Oracle Sql优化之lead,lag分析函数
1.表中有四个字段:人员编号,开始时间,结束时间,类型,数据ID,需要实现如下需求 a.当类型为-1时,丢弃该记录 b.当类型为-1时,且前一行结束时间为null,当前行的开始时间-1作为前一行的结束 ...
- Mybatis学习(5)高级映射
需求: 一.一对一查询 查询订单信息,关联查询创建订单的用户信息: orders--->user:一个订单只由一个用户创建,一对一 orders表 和 user表: 1)使用resultType ...
- 关于MyEclipse 半天打不开的问题(工作区间损坏)--转
删掉 {workspace}/.metadata/.plugins\**\*.snap 所有的 .snap文件 一般可以解决问题 如果上面一步解决不了问题, 那么删掉 {workspace}/.met ...
- jQuery笔记(1)
jQuery 是一个类库 拥有众多js函数的类库 jQuery 大大简化了js的书写代码,看的舒服,用的爽. jQuery 是一个数组,它能够隐性的遍历. 比如 ${"button" ...