【题解】\(TES-Intelligence\) \(Test\)

逼自己每天一道模拟题

传送:\(TES-Intelligence\) \(Test\) \([POI2010]\) \([P3500]\)

【题目描述】

\(Byteotian\) 智力测试机构的一项工作是按照一定的规则删除一个序列的数字,得到一个确定的数列。\(Byteasar\) 很渴望成为 \(Byteotian\) 智力测试机构的主管,但是他在这个工作上做的并不好,但毕竟熟能生巧,他打算做大量的练习,所以他希望你写一个程序来快速判断是否正确。

【输入】

第一行一个整数 \(n\),第二行 \(n\) 个整数\(a_i\),表示最初的序列,第三行一个整数 \(T\),表示 \(T\) 个 \(Byteasar\) 经过一系列删除得到的序列,每个序列两行,第一行给出长度 \(m\),然后下一行为 \(m\) 个整数 \(b_i\)。

【输出】

共 \(m\) 行,如果 \(Byteasar\) 的序列是由最初的序列删除一些数后得到的,那么输出 \(TAK\),否则输出 \(NIE\)。

【样例】

样例输入:
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 样例输出:
TAK
NIE
TAK
NIE

【数据范围】

\(100\%\) \(1 \leqslant n,T \leqslant 1e6\) \(,\) \(1 \leqslant a_i,b_i​ \leqslant 1e6\) \(,\) \(1 \leqslant m_i \leqslant n\)


【分析】

首先用一个 \(vector\) 将原数列中出现了的各数值所在的位置记录下来,然后每读一个序列进来,就扫一遍,对于每一个扫到的数,都在 \(vector\) 中进行一次二分,找到最靠前的那一个和它相同的数,然后将这个位置作为下一次二分查找的起点。

【Code】

#include<vector>
#include<cstdio>
#define Re register int
#define F(a,b) for(Re i=a;i<=b;++i)
const int N=1e6+5;
std::vector<int>a[N];
int n,m,T,x,st,b[N];
inline void in(Re &x){
int fu=0;x=0;char c=getchar();
while(c<'0'||c>'9')fu|=c=='-',c=getchar();
while(c>='0'&&c<='9')x=(x<<1)+(x<<3)+(c^48),c=getchar();
x=fu?-x:x;
}
inline void sakura(Re &flag,Re now,Re l,Re r){//二分查找
while(l<r){
Re mid=l+r>>1;
if(a[now][mid]>st)r=mid;
else l=mid+1;
}
flag|=a[now][l]>st,st=a[now][l];//最终判断。更新st。
}
inline int judge(){//判断这个序列是否合格
F(1,m){
Re flag=0,now=b[i],l=0,r=a[now].size();
if(!r)return 0;//原序列中没有这个数
--r;
sakura(flag,now,l,r);//二分
if(!flag)return 0;//二分的结果,看st后面是否存在当前扫到的这个数
}
return 1;
}
int main(){
in(n);F(1,n)in(x),a[x].push_back(i);
in(T);
while(T--){
in(m);st=0;
F(1,m)in(b[i]);
puts(judge()?"TAK":"NIE");
}
}

【题解】TES-Intelligence Test的更多相关文章

  1. hdoj 3072 Intelligence System【求scc&&缩点】【求连通所有scc的最小花费】

    Intelligence System Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  2. BZOJ2083: [Poi2010]Intelligence test

    2083: [Poi2010]Intelligence test Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 241  Solved: 96[Sub ...

  3. POI2010题解

    POI2010题解 我也不知道我为什么就开始刷POI了 有些题目咕掉了所以不完整(我都不知道POI到底有多少题) [BZOJ2079][Poi2010]Guilds (貌似bz跟洛谷上的不是一个题?) ...

  4. Tarjan & LCA 套题题目题解

    刷题之前来几套LCA的末班 对于题目 HDU 2586 How far away 2份在线模板第一份倍增,倍增还是比较好理解的 #include <map> #include <se ...

  5. 【BZOJ2083】[Poi2010]Intelligence test 二分

    [BZOJ2083][Poi2010]Intelligence test Description 霸中智力测试机构的一项工作就是按照一定的规则删除一个序列的数字,得到一个确定的数列.Lyx很渴望成为霸 ...

  6. 遗传编程(GA,genetic programming)算法初探,以及用遗传编程自动生成符合题解的正则表达式的实践

    1. 遗传编程简介 0x1:什么是遗传编程算法,和传统机器学习算法有什么区别 传统上,我们接触的机器学习算法,都是被设计为解决某一个某一类问题的确定性算法.对于这些机器学习算法来说,唯一的灵活性体现在 ...

  7. 简单数论 | Day3 部分题解

    A - The Euler function 来源:HDU 2824 计算[a,b]区间内的整数的欧拉函数值,需要掌握单个欧拉函数和函数表的使用. #include <iostream> ...

  8. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  9. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  10. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

随机推荐

  1. [luoguP1043] 数字游戏(DP)

    传送门 搞个前缀和随便DP一下 代码 #include <cstdio> #include <cstring> #include <iostream> #defin ...

  2. [K/3Cloud] 理解BOS关于Enabled属性的表决器原理

    通常的编程中,我们习惯: btnOK.Enabled = true; 这个样子就会将按钮变成有效,反之亦然.但在ERP的表单中,其某个按钮或字段其有效性及其复杂,例如一个表格中某个数量单元格其有效性是 ...

  3. 2018/4/7 Mybatis源码结构概览

    在观看Mybatis源码的过程中,有一点疑惑,就是Mybatis的缓存设计明显有问题,首先,Mybatis缓存分为两级,先说一级,生命周期为一个sqlsession,只有在查询相同方法时才会命中缓存, ...

  4. CentOS虚拟机与本机同步时间

    接着之前的任务,还是为了在VMWare上搭建分布式hadoop集群.搭着搭着注意到虚拟机上的时间和本机是不同步的,而且可以说是乱七八糟,3台虚拟机时间都与本机差了8个小时以上.首先确认不是时区的问题, ...

  5. 在子线程中更新UI,只能使用Handler

    package com.pingyijinren.test; import android.os.Handler; import android.os.Message; import android. ...

  6. SOJ 3531_Number Pyramids

    [题意]给定一个数top及最底层元素个数n,构成一个以给top为塔尖,层数为n的如杨辉三角的金字塔,求有多少种 [分析]最终种数其实只与最底层的n个数的组合数有关,上层的每个都数是由最底层数相加得来 ...

  7. 选择器的使用(first-child和last-child选择器)

    <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><meta ...

  8. Java利用jacob实现文档格式转换

    实现文档格式之间的转换,我使用的是jacob-1.7版本,需要jacob.jar来调用activex控件,本机需安装WPS/office,还需要jacob.jar以及jacob.dll 其中:    ...

  9. spring mvc随便接收list<objeect>参数

    在后台设定一个类,PersonList类: public class PersonList {private List<User> user; public List<User> ...

  10. vsftpd.conf案例

    1. 匿名服务器的连接(独立的服务器) 在/etc/vsftpd/vsftpd.conf配置文件中添加如下几项:Anonymous_enable=yes (允许匿名登陆)Dirmessage_enab ...