bzoj2083
来源:互联网 发布:东至75网络雇凶杀人案 编辑:程序博客网 时间:2024/05/22 13:04
2083: [Poi2010]Intelligence test
Time Limit: 10 Sec Memory Limit:259 MBSubmit: 545 Solved: 279
[Submit][Status][Discuss]
Description
霸中智力测试机构的一项工作就是按照一定的规则删除一个序列的数字,得到一个确定的数列。Lyx很渴望成为霸中智力测试机构的主管,但是他在这个工作上做的并不好,俗话说熟能生巧,他打算做很多练习,所以他希望你写一个程序来快速判断他的答案是否正确。
Input
第一行为一个整数m(1<=m<=1000000)第二行包括m个用空格分开的整数ai(1<=ai<=1000000),组成了最初的序列,第三行为一个整数n(1<=n<=1000000),表示n个Lyx经过一系列删除得到的序列,每个序列两行,第一行给出长度L(1<=L<=m),然后下一行为L个由空格分开的整数bi(1<=bi<=1000000)。
Output
共n行,如果Lyx的序列确实是由最初的序列删除一些数得到,就输出TAK,否则输出NIE。
Sample Input
7
1 5 4 5 7 8 6
4
5
1 5 5 8 6
3
2 2 2
3
5 7 8
4
1 5 7 4
1 5 4 5 7 8 6
4
5
1 5 5 8 6
3
2 2 2
3
5 7 8
4
1 5 7 4
Sample Output
TAK
NIE
TAK
NIE
NIE
TAK
NIE
#include<iostream>#include<cstdlib>#include<cstdio>#include<vector>using namespace std;const int N=1000005;vector<int>wz[N];int num[N],len[N],a[N],n,m,x,l,r,q,mid;inline int ef(int key){ l=0;r=len[key]-1;q=-1; while (l<=r){ mid=(l+r)>>1; if (wz[key][mid]>x){q=wz[key][mid];r=mid-1;} else l=mid+1; } return q;}inline bool judge(){ x=0; for (int i=1;i<=n;++i){ x=ef(a[i]); if (x==-1)return false; } return true;}int main (){ scanf ("%d",&n); for (int i=1;i<=n;++i){ scanf ("%d",&num[i]); wz[num[i]].push_back(i); len[num[i]]++; } scanf ("%d",&m); for (int i=1;i<=m;++i){ scanf ("%d",&n); for (int j=1;j<=n;++j) scanf ("%d",&a[j]); if (judge())puts("TAK"); else puts("NIE"); } return 0;}
阅读全文
0 0
- bzoj2083
- 【bzoj2083】 POI2010Intelligence test 乱搞
- BZOJ2083: [Poi2010]Intelligence test
- BZOJ2083: [Poi2010]Intelligence test
- bzoj2083 POI2010 Intelligence Test
- 【bzoj2083】[Poi2010]Intelligence test
- BZOJ2083:[POI] TES-Intelligence Test
- bzoj2083 [POI2004]PRZ 状压DP
- [BZOJ2083][Poi2010]Intelligence test(sort+二分)
- [bzoj2083][Poi2010]Intelligence test(二分)
- 【USACO4.2】草地排水Drainage Ditches(最大流)
- MySQL存储过程的使用
- 应用商务化之道
- Python xlwt,xlrd语法
- svn clean up 失败
- bzoj2083
- 51nod1058---N的阶乘的长度(51nod基础:最简单的写法)
- 如何成为优秀的远程开发者
- cmd命令cd无法切换盘符
- bzoj2276
- Tomcat手动启动/部署[非安装版]
- Web漏洞常见类型
- bzoj1644
- java日志框架--logback