BZOJ 2083 [Poi2010]Intelligence test
来源:互联网 发布:wampserver sql密码 编辑:程序博客网 时间:2024/05/16 11:57
链表
子序列匹配,以为是什么高级的数据结构之类的,然而并不是。。。
如果只有一个串,我们一定是贪心地遍历a,如果b的第一个数字是a[i],那么我们就直接把b的第一个元素去掉,继续匹配。
那么多个匹配也是一样的,对于每一个a[i],我们只需要把所有开头是a[i]的b全部去掉头元素即可。可以链表维护。
#include<cstdio>#include<vector>#define N 1000005using namespace std;int a[N], b[N];struct seq{ vector<int> arr; seq *next; int id;}*head[N];bool flag[N];int in(){ register int r = 0; register char c = getchar(); while(c<'0'||c>'9')c=getchar(); while(c>='0'&&c<='9')r=r*10+c-'0',c=getchar(); return r;}int main(){ int n, m; n=in(); for(int i = 1; i <= n; i++) a[i]=in(); m=in(); for(int i = 1; i <= m; i++) { int len=in();; seq *temp = new seq; for(int j = 1; j <= len; j++) b[j]=in(); for(int j = len; j; j--) temp->arr.push_back(b[j]); temp->next=head[temp->arr.back()]; temp->id=i; head[temp->arr.back()]=temp; } for(int i = 1; i <= n; i++) { seq *next, *pos = head[a[i]]; head[a[i]]=NULL; for(; pos; pos=next) { next = pos->next; pos->arr.pop_back(); if(pos->arr.empty()) { flag[pos->id]=1; continue; } pos->next=head[pos->arr.back()]; head[pos->arr.back()]=pos; } } for(int i = 1; i <= m; i++) puts(flag[i]?"TAK":"NIE"); }
0 0
- BZOJ 2083 [Poi2010]Intelligence test
- BZOJ 2083 Poi2010 Intelligence test 链表
- BZOJ 2083 [Poi2010]Intelligence test 二分查找
- bzoj 2083: [Poi2010]Intelligence test (二分)
- 2083: [Poi2010]Intelligence test
- 【BZOJ】【P2083】【Poi2010】【Intelligence test】【题解】【二分】
- BZOJ2083: [Poi2010]Intelligence test
- BZOJ2083: [Poi2010]Intelligence test
- POI2010 Intelligence Test
- bzoj2083 POI2010 Intelligence Test
- 【bzoj2083】[Poi2010]Intelligence test
- bzoj-2083 Intelligence test
- 【vector】【bzoj 2083】Intelligence test
- [BZOJ2083][Poi2010]Intelligence test(sort+二分)
- [POI2010]TES-Intelligence Test 洛谷3500 二分
- [bzoj2083][Poi2010]Intelligence test(二分)
- [BZOJ 2083] Poi 2010 Intelligence test · 二分
- 题解 BZOJ-2083 || POI 2010 intelligence test 三种解法
- Ubuntu安装Eclipse,maven
- 经典算法学习——求二叉树节点和为sum的路径
- 三重积分先二后一和先一后二的碎碎念
- 对指针的理解
- Android 应用最小化代码
- BZOJ 2083 [Poi2010]Intelligence test
- Ubuntu锐捷校园网上网和修改页面分辨率
- 在MFC中使用Cstring
- MFC 添加文件路径 遍历文件
- 使用CImage类 显示图片
- Python的包导入机制
- 何凯明 Single Image Haze Removal Using Dark Channel Prior
- 多开 MFC线程
- 在Xcode项目里使用自定义字体的方法