【CF1443F】Identify the Operations 题解
题意简介
建议去原题看。这题意我表达不清楚。
大概就是给你一个 n 的排列,现在要求你进行 m 次操作。
每次操作,你会在现有的排列中删去一个数,然后选择其左边或右边的一个与之相邻的数加入 b 数组中。
然后将变成两截的数组重新连在一起,更新下标。
现在问有多少种操作方案,可以使 b 数组中恰好按顺序排列着它给定的那几个数字。
只要两个方案中任一轮删数的下标不同,就视为不同的方案。
思路分析
这道题显然是道水题。不明白为什么扔在 F。或许出题人是用脚编排题目。
其实这道题是同场 div1 的 B 题,之前写的 CF1443 D 则是 div1 的 A 题。
感觉E题更难一点。
由数字不会重复这一点上看,想要加入一个数字,就需要删去其中一个与之相邻的数字。
如果某个数字两端都是需要在其之后加入的数字,那么显然无解。
另外,在删数过后,后面的数字的下标会往前推一格。判断方案不同的依据就是被删除的下标的顺序。
如果某个数字原本另一边就有一个需要保留的数字,那么前面的所有操作都不可能改变这一点。
而如果数字的两边都可以删除,那么前面的操作依然不可能改变这一点。
每次操作实质上改变的有且只有下标和加入顺序都在它之后的数字的操作对应的 ti 。
在保证不会删掉还没加入 b 的需要的数字的前提下,记每个需要的数字可以删去的与之相邻的数的个数 c 。
不难发现答案应该是: \(\prod_{i=1}^m c_i\)
代码库
说起来这是我第一次在 memset 上吃瘪。
里头有一组数据 t=1e5 里头全是 n=2 m=1
然后我就 TLE 了。
这个故事告诉我们 t 比较大时 memset 不要乱用。
或者试一下 memset(p,0,(n+1)*sizeof(int)) 。
#include <cstdio>
#include <cstring>
typedef long long ll;
#define REG register
#define rep(i,a,b) for(REG int i=a;i<=b;i++)
const ll N=2e5+5,mod=998244353;
int n,m,A[N],B[N],p[N]; ll ans; bool vis[N];
int main(){
REG int t; scanf("%d",&t);
while(t--){
scanf("%d%d",&n,&m);
//memset(p,0,sizeof(p));
//memset(vis,0,sizeof(vis));
rep(i,1,n) p[i]=vis[i]=0;
rep(i,1,n) scanf("%d",A+i),p[A[i]]=i;
rep(i,1,m) scanf("%d",B+i),vis[B[i]]=1;
ans=1;
rep(i,1,m){
REG int pos=p[B[i]],c=0;
if(pos-1>=1&&!vis[A[pos-1]]) c++;
if(pos+1<=n&&!vis[A[pos+1]]) c++;
ans=ans*c%mod; vis[B[i]]=0;
}
printf("%lld\n",ans);
}
return 0;
}
【CF1443F】Identify the Operations 题解的更多相关文章
- codechef Row and Column Operations 题解
版权声明:本文作者靖心,靖空间地址:http://blog.csdn.net/kenden23/,未经本作者同意不得转载. https://blog.csdn.net/kenden23/article ...
- Codeforces Round #681 (Div. 1, based on VK Cup 2019-2020 - Final) B. Identify the Operations (模拟,双向链表)
题意:给你一组不重复的序列\(a\),每次可以选择一个数删除它左边或右边的一个数,并将选择的数append到数组\(b\)中,现在给你数组\(b\),问有多少种方案数得到\(b\). 题解:我们可以记 ...
- Codeforces Round #681 (Div. 2, based on VK Cup 2019-2020 - Final)【ABCDF】
比赛链接:https://codeforces.com/contest/1443 A. Kids Seating 题意 构造一个大小为 \(n\) 的数组使得任意两个数既不互质也不相互整除,要求所有数 ...
- Leetcode-283 Move Zeroes
#283. Move Zeroes Given an array nums, write a function to move all 0's to the end of it while mai ...
- Cheatsheet: 2013 10.09 ~ 10.23
Other 10 Basic Linux Networking and Monitoring Commands You Should Know A simple, portable yet effic ...
- 6.4 操作契约 Operation Contracts
4.操作契约 Operation Contracts “用例描述”的补充 强调: 用例中重要的动作,其开始与结束是需要一些约束 4.5 操作契约的后置条件 定义Definition 后 ...
- Oracle ASM 相关的 视图(V$) 和 数据字典(X$)
本文转自: http://blog.csdn.net/tianlesoftware/article/details/6733039 ASM由于其高度的封装性,使得我们很难知道窥探其内部的原理.可以通过 ...
- Snoop resynchronization mechanism to preserve read ordering
A processor employing a post-cache (LS2) buffer. Loads are stored into the LS2buffer after probing t ...
- UML期末绘图及细节总结
往届期末绘图的题目例如以下所看到的: Read the providing materials carefully, and then do tasks. 2.1: Use Case Diagram ...
随机推荐
- Android作业0930
1.使用ListView和Adapter实现购物商城 Android 布局文件 <?xml version="1.0" encoding="utf-8"? ...
- 041 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 03 案例演示while循环的使用——求1到5的累加和
041 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 03 案例演示while循环的使用--求1到5的累加和 本文知识点:案例演示while循环的使用1 ...
- 【题解】[USACO19DEC]Milk Visits G
题目戳我 \(\text{Solution:}\) 这题不要把思想局限到线段树上--这题大意就是求路径经过的值中\(x\)的出现性问题. 最开始的想法是值域线段树--看了题解发现直接\(vector\ ...
- 【题解】SP1812 【LCS2 - Longest Common Substring II 】
\(\text{Suffix Tree:}\)我来啦我来啦 \(\text{Solution:}\) 题目要求求好几个串串的\(\text{LCS.}\) 由于串串的数量并不多,所以我们把它们塞到一个 ...
- Java安全之Commons Collections1分析(二)
Java安全之Commons Collections1分析(二) 0x00 前言 续上篇文,继续调试cc链.在上篇文章调试的cc链其实并不是一个完整的链.只是使用了几个方法的的互相调用弹出一个计算器. ...
- 把python文件打包成可执行文件(win10实验成功)
总是有人来找我帮看下工单状态,又懒得写页面展示出来,干脆打包成exe文件好啦 打包很简单,难点在于安装pyinstaller这个依赖包,主要是网络问题~ 我也是参考别人的博文,别人的文章写得很详细,我 ...
- linux 虚拟机下 安装redis
虚拟机安装linux,打开,挂起就好: 使用ssh连接,这里使用的是Moba Xterm 可以ssh 可以ftp 满足你的日常开发所需,开发必备.每个人都有自己顺手的工具,你喜欢就好 虚拟机挂一边就 ...
- 多测师讲解html _无序列表006_高级讲师肖sir
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>无 ...
- 多测师讲解pthon_002字符,列表,元组,字段等
# # # 索引:# # # 正向索引: 0 1 2 3 4 5 6# # # l= a b c d e f g# # # 反向索引: -7 -6 -5 -4 ...
- Spring Boot使用Mybatis实现增删改查
java.com.wms.model.Admin.java 1 package com.wms.model; 2 3 import java.sql.Timestamp; 4 5 public cla ...