当前位置:网站首页>2022杭电多校第三场
2022杭电多校第三场
2022-07-29 13:55:00 【fslse】
f[i][0]表示序列S前i个元素已完成匹配且第i个元素来自序列P的方案数
f[i][1]表示序列S前i个元素已完成匹配且第i个元素来自序列Q的方案数
#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0),cin.tie(0)
#define endl '\n'
typedef long long ll;
const ll mod = 998244353;
const int N = 2e6 + 10;
int n;
int a[N], b[N], c[N], cnt[N], pos[N][2];
ll f[N][2];
void solve(){
cin >> n;
for (int i = 1;i <= n;++i)cin >> a[i], pos[a[i]][0] = i;
for (int i = 1;i <= n;++i)cin >> b[i], pos[b[i]][1] = i;
memset(cnt + 1, 0, n * 4);
for (int i = 1;i <= n * 2;++i)cin >> c[i], ++cnt[c[i]];
if (*max_element(cnt + 1, cnt + 1 + n) > 2){
cout << 0 << endl;
return;
}
for (int i = 1;i <= n * 2;++i)
f[i][0] = f[i][1] = 0;
f[1][!(a[1] == c[1])] = 1, f[1][b[1] == c[1]] = 1;
for (int i = 2, j;i <= n * 2;++i){
if (pos[c[i - 1]][0] + 1 == pos[c[i]][0])f[i][0] = (f[i][0] + f[i - 1][0]) % mod;
if (pos[c[i - 1]][1] + 1 == pos[c[i]][1])f[i][1] = (f[i][1] + f[i - 1][1]) % mod;
j = i - pos[c[i - 1]][0];
if (b[j] == c[i])f[i][1] = (f[i][1] + f[i - 1][0]) % mod;
j = i - pos[c[i - 1]][1];
if (a[j] == c[i])f[i][0] = (f[i][0] + f[i - 1][1]) % mod;
}
cout << (f[n * 2][0] + f[n * 2][1]) % mod << endl;
}
int main(){
IOS;
int T;
cin >> T;
while (T--){
solve();
}
return 0;
}
边栏推荐
- Alibaba CTO Cheng Li: open source is the source of basic software!
- Sqoop导入导出时数据内存溢出
- Bika LIMS 开源LIMS集—— SENAITE的使用(用户、角色、部门)
- 第二轮Okaleido Tiger热卖的背后,是背后生态机构战略支持
- 性能优化竟白屏,难道真是我的锅?
- How to Improve Embedded Programming with MISRA
- 阿里巴巴 CTO 程立:开源是基础软件的源头!
- BOM系列之Location对象
- 【论文阅读】异常检测的视频通过Self-Supervised和多任务学习
- zabbix一键部署脚本----亲测可用
猜你喜欢

工作效率-十五分钟让你快速学习Markdown语法到精通排版实践备忘

How to set the explosion rate of legendary humanoid?Humanoid increase tutorial

kubernetes cks strace etcd

已解决SyntaxError: invalid character in identifier

【Postman】下载与安装(新手图文教程)

中国电信首发全新加密通话产品!有效防止网络监听

日志打印不规范,被CTO骂了一顿~

分布式事务方案

EA&UML日拱一卒-活动图::CallOperationAction(续)

了解 AQS 底层原理
随机推荐
你真的会用Console.log吗?
2022年了!还在用定时器实现动画?赶紧试试requestAnimationFrame吧!
iMedicalLIS监听程序(1)
如何返回一个数字的所有质因数?
Redis-NoSql
1184. 欧拉回路
kubernetes cks strace etcd
为什么字符串使用final关键字
Still developing SMS verification code login?Try it (one-click login with your phone number)
Gee engine modification UI interface graphic tutorial
唯物辩证法-矛盾论(普遍性+特殊性+斗争性+同一性)
进程间通信 --- system V三种通信方式(图文案例讲解)
leetcode linked list topic
【微信小程序】全局配置
Bika LIMS 开源LIMS集—— SENAITE的使用(分析/测试、方法)
grid的使用
【JS面试题】面试官问我:遍历一个数组用 for 和 forEach 哪个更快?
The 10,000-character long article reveals the secrets of Huawei's data governance system!
EA&UML日拱一卒-活动图::Variable Actions(续)
torchvison里面的数据增强