字符串模拟赛T2】的更多相关文章

// source code from laekov for c0x17 #define PRID "fkqh" #include <cstdio> #include <cstring> #include <algorithm> using namespace std; ; int n, l[maxn], q[maxn], vx[maxn], vy[maxn]; char a[maxn]; void manacher() { l[] = ; , j…
模拟赛T2 交换 解题报告 题目大意: 给定一个序列和若干个区间,每次从区间中选择两个数修改使字典序最小. \(n,m\) 同阶 \(10^6\) 2.1 算法 1 按照题意模拟,枚举交换位置并比较. 时间复杂度\(O(mn3)\). 期望得分20分. 2.2 算法 2 不难发现给定区间之外的位置对每个询问的答案无影响,所以每次的问题就是取出一个子段,问这个子段怎样交换一次字典序最小. 根据字典序定义,我们需要找到最小的位置满足通过交换可以使这个位置变小,也就是说这个位置不是后缀最小值,因此从后…
Task 2.回文串计数 (calc.pas/calc.c/calc.cpp) [题目描述] 虽然是一名理科生,Mcx常常声称自己是一名真正的文科生.不知为何,他对于背诵总有一种莫名的热爱,这也促使他走向了以记忆量大而闻名的生物竞赛.然而,他很快发现这并不能满足他热爱背诵的心,但是作为一名强大的Boer,他找到了这么一条自虐的方式——背诵基因序列.不过这实在是太虐心了,就连Mcx也有些招架不住.不过他发现,如果他能事先知道这个序列里有多少对互不相交的回文串,他或许可以找到记忆的妙法.为了进一步验…
Weed duyege的电脑上面已经长草了,经过辨认上面有金坷垃的痕迹. 为了查出真相,duyege 准备修好电脑之后再进行一次金坷垃的模拟实验. 电脑上面有若干层金坷垃,每次只能在上面撒上一层高度为 vi 的金坷垃,或者除掉最 新 vi 层(不是量)撒的金坷垃.如果上面只留有不足 vi 层金坷垃,那么就相当于电脑上 面没有金坷垃了. duyege 非常严谨,一开始先给你 m 个上述操作要你依次完成.然后又对实验步骤进行 了 q 次更改,每次更改都会改变其中一个操作为另外一个操作.每次修改之后都…
小澳的坐标系 (coordinate.cpp/c/pas) [题目描述] 小澳者表也,数学者景也,表动则景随矣. 小澳不喜欢数学,可数学却待小澳如初恋,小澳睡觉的时候也不放过. 小澳的梦境中出现了一个平面直角坐标系,自原点,向四方无限延伸. 小澳在坐标系的原点,他可以向上.向左或者向右走.他可以走n步,但不能经过相同的点. 小澳想知道他有多少种走法. [输入格式] 输入文件名为coordinate.in. 输入文件仅第一行一个正整数n,表示小澳可以走的步数.   [输出格式] 输出文件名为coo…
题目背景 qiancl 得到了一张藏宝图,上面写了一道谜题. 题目描述 定义\(F(n)\)为 n 在十进制下各个数位的平方和,求区间\([a,b]\)中有多少\(n\)满足\(k\times F(n) = n\). 输入描述 一行三个正整数\(k,a,b\). 输出描述 一行一个整数表示满足条件的\(n\)的个数. 样例输入 51 5000 10000 样例输出 3 数据范围及提示 测试数据 对应数据范围 其中12个测试点 \(1\le k,a,b\le 105\) 其中6个测试点 \(233…
[问题描述] 小美今天对于数列很有兴趣.小美打算找出一些漂亮的序列.一个漂亮的序列的限制如下: 长度为 n ,而且数列里只包含 [1,n] 的整数. 要不是不降的序列就是不升的序列. 小美想知道有多少个合法的序列满足要求. [输入格式] 从文件 pretty.in 中读入数据. 第一行一个正整数 n 表示数列的大小. [输出格式] 输出到文件 pretty.out 中. 第一行输出一个数字表示答案.由于这个数字会很大,你需要输出他 模 1000000007 . [样例] [样例输入] 2 [样例…
题解 对于一个字符串A,我们只能把其首字符取出,故如果我们想让A串与B串相等,能重复利用的部分只能是A串结尾与B串开头相等的部分.对于取出的字符,我们可以把'o'放在一个容器中,把'x'放在另一个容器中,要用时取出对应的即可. 由于不重复利用的字符最少是取出一次.放回一次,而我们构造出的方法仅需花费这样的代价,故此为最优解. 代码 #include <cstdio> #include <cstring> #include <algorithm> using namesp…
昨天 ych 的膜你赛,这道题我 O ( n4 ) 暴力拿了 60 pts. 这道题的做法还挺妙的,我搞了将近一天呢qwq 题解 60 pts 根据题目给出的式子,四层 for 循环暴力枚举统计答案即可: #include<iostream> #include<cstdio> using namespace std; int read() { char ch=getchar(); ,x=; ') { if(ch=='-') x=-x; ch=getchar(); } ') { a=…
LINK:T2 这题感觉很套路 但是不会写. 区间操作 显然直接使用dp不太行 直接爆搜也不太行复杂度太高. 容易想到差分 由于使得整个序列都为0 那么第一个数也要i差分前一个数 强行加一个0 然后 显然让差分序列变成0即可. 每次可以单点修改两个位置的值 也可以当前和最后一个数后面那个数做 其实相当于单独做 表示后缀全体的事情. 0显然没有任何贡献了 考虑怎么做才是最优的. 当时没有证明 直接猜了一个结论是 每次操作比然会使一个位置上的值变成0. (当时以为假了 结果时当时没有想清楚 自闭..…
beautiful 2.1 题目描述 一个长度为 n 的序列,对于每个位置 i 的数 ai 都有一个优美值,其定义是:找到序列中最 长的一段 [l, r],满足 l ≤ i ≤ r,且 [l, r] 中位数为 ai(我们比较序列中两个位置的数的大小时, 以数值为第一关键字,下标为第二关键字比较.这样的话 [l, r] 的长度只有可能是奇数),r - l + 1 就是 i 的优美值. 接下来有 Q 个询问,每个询问 [l, r] 表示查询区间 [l, r] 内优美值的最大值.2.2 输入 第一行输…
只看我的做法就够了 #include<iostream> #include<cstdio> #include<string> #include<cstring> #include<algorithm> #include<vector> #include<queue> #include<stack> using namespace std; ; int n,m,ans; char a[maxn],b[maxn];…
// source code from laekov for c0x17 #define PRID "bxjl" #include <cstdio> #include <cstring> #include <algorithm> using namespace std; typedef long long dint; ; ; char a[maxn]; int n, m, ne[maxn], sz[maxn]; void preNext() { ne…
LGTB 学分块 LGTB 最近在学分块,但是他太菜了,分的块数量太多他就混乱了,所以只能分成3 块今天他得到了一个数组,他突然也想把它分块,他想知道,把这个数组分成3 块,块可以为空.假设3 块各自的和中的最大值最小请输出分完之后3 块中的最大值 输入 输入第一行包含一个整数n 代表数组大小接下来n 个整数a1, a2, ..., an,代表数组对于40% 的数据,1 n 10对于70% 的数据,1 n 103对于100% 的数据,1 n 105, 1 ai 107 输出 输出包含1 个整数,…
Description 将1到n任意排列,然后在排列的每两个数之间根据他们的大小关系插入">"和"<".问在所有排列中,有多少个排列恰好有k个"<".答案对2015取模. 注:1~n的排列指的是1~n这n个数各出现且仅出现一次的数列. Input 第一行2个整数n,k. Output 一个整数表示答案. Range 对于30%的数据:n <= 10 对于100%的数据:k < n <= 1000 Solutio…
Description Hzwer神犇最近又征服了一个国家,然后接下来却也遇见了一个难题. Hzwer的国家有n个点,m条边,而作为国王,他十分喜欢游览自己的国家.他一般 会从任意一个点出发,随便找边走,沿途欣赏路上的美景.但是我们的 Hzwer 是一个奇怪 的人,他不喜欢走到自己以前走过的地方,他的国家本来有p1条有向边,p2条无向边,由 于国王奇怪的爱好,他觉得整改所有无向边,使得他们变成有向边,要求整改完以后保证他 的国家不可能出现从某个地点出发顺着路走一圈又回来的情况.(注:m=p1+p…
Description Solution 比赛时找到了规律,但是没有证出来……(当然最后还是AC了……) 显然没有被操作的数在排好序的序列中一定是连续的一段. 所以,没有被操作的数一定从左到右连续地递增(例如23456). 而题目要求被操作的数尽量少,就是没有被操作的数尽可能多,找到满足条件的最长的一段就可以了. 例如,对于数据1 4 5 3 2 6 7 9 8,最长的一段为45678,所以最少操作次数为4. 附方法: 3放前=>314526798 2放前=>231456798 1放前=>…
题面 [题目描述]你需要构造一个长度为 n 的数列 X,当中的数字范围从 0 到 2^30-1.除此之外你需要满足 m 个条件,第 i 个条件为 X[li]|X[li+1]|……|X[ri]=pi.|为按位或运算.[输入描述]第一行输入两个整数 n,m接下来的 m 行每行输入三个整数 li,ri,pi[输出描述]如果存在这样的序列,第一行输出 Yes,否则输出 No.如果存在这样的序列,第二行输出 n 个数,为数列 X.[样例]输入2 11 2 1 输出Yes1 1[数据范围]对于 30%的数据…
二兵的赌注 Description游戏中,二兵要进入了一家奇怪的赌场.赌场中有n个庄家,每个庄家都可以猜大猜小,猜一次一元钱.每一次开彩前,你都可以到任意个庄家那里下赌注.如果开彩结果是大,你就可以得到你之前猜大的庄家相应的ai元钱.如果开彩结果是小,你就可以得到你之前猜小的庄家相应的bi元钱.你可以在同一个庄家那里既猜大又猜小,(这样是两块钱),也可以什么都不猜(这样不用钱).问怎么样下注,才能赢得最多的有保障的钱.有保障的钱指不管开彩结果是大是小,你都能够赢得相应的钱.你能帮助他计算这个值吗…
题目 题解 做法1: 直接暴力枚举每个数是否被选出,计算平均数-中位数,并与当前答案进行比较.复杂度O(2^n),能过60%的数据. 做法2: 将每个数排序后枚举中位数. 首先,取奇数个数一定更优.容易证明,如果取偶数个数,中位数与平均数相距一定更小. 其次,除中位数以外,数一定尽量往后取,这样中位数不变,平均数增大,才能使答案最大.所以,中位数确定以后,枚举中位数两边数的个数(数都靠后取),计算答案.计算过程可以用前缀和把复杂度降到O(1). 总的复杂度O(n^2+nlogn+n)=O(n^2…
题目: [题目描述] 跳跳虎在外面出去玩忘了时间,现在他需要在最短的时间内赶回家. 跳跳虎所在的世界可以抽象成一个含有 n 个点的图(点编号从 1 到 n ),跳跳虎现在在 1 号点,跳跳虎的家在 n 号点. 图上一共有 m 条单向边,通过每条边有固定的时间花费. 同时,还存在若干个单向传送通道,传送通道也有其时间花费. 传送通道一般来说比普通的道路更快,但是跳跳虎最多只能使用 k 次. 跳跳虎想知道他回到家的最小时间消耗是多少. [输入格式] 第一行输入 4 个整数 n,m,q,k .( n…
链接: https://www.luogu.org/problemnew/show/U46611 思路: 这道题告你n-1条边就是骗你的 部分分也是骗你的 这道题连对边5分钟的事 一个点对另一个点有影响当且仅当这个点在另一个点的前一时刻被查 且这两个点之间有边相连 我们加上超级根节点后可以建一棵树 跑树形DP即可 代码: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm…
思路: 这道题是个图论抽象的题目…… 考场上想到了没写对…… 我们发现,f函数转移的方式有两种,要么是代价10的+1,要么是代价1的乘一个质因数 那么我们就可以将这个抽象为一张图 每个i向每个i+1连一条边权为10的边 每个i向每个i*质因子[j]连一条边权为1的边 跑最短路即可 跑完最短路就是状压搜索 加上最优化剪枝和记忆化剪枝即可 代码: #include<iostream> #include<cstdio> #include<cstdlib> #include&l…
WYT的刷子 WYT有一把巨大的刷子,刷子的宽度为M米,现在WYT要使用这把大刷子去粉刷有N列的栅栏(每列宽度都为1米:每列的高度单位也为米,由输入数据给出). 使用刷子的规则是: 1.与地面垂直,从栅栏的底部向上刷 2.每次刷的宽度为M米(当剩余栅栏宽度不够M米的话,刷子也可以使用,具体看样例2) 3.对于连续的M列栅栏,刷子从底向上,刷到的高度只能到这M列栅栏的最低高度. WYT请你回答两个问题: 1.最少有多少个单位面积不能刷到(单位面积为1平米) 2.在满足第一问的条件下,最少刷几次?…
2.追捕 [题目背景] Duan2baka:“jmsyzsfq天下第一蠢!” jmsyzsfq:“你说什么?!” [题目描述] 于是Duan2baka开始了逃亡的旅程,而jmsyzsfq也开始追捕Duan2baka.  他们来到了一个有n个节点的有向图,迅速逃跑的Duan2baka会首先降落在有向图的某个节点T上,因为怕发出声音,他会永远静止不动.而随后跟来的jmsyzsfq会降落在图上随机一个节点S上(可以与T相同),并可以沿着图中的有向边随意走动.因为jmsyzsfq有着敏锐的嗅觉而且绝顶聪…
https://www.luogu.org/blog/a23333/post-xing-xuan-mu-ni-sai-path-ji-wang-zui-duan-lu 如果设f[i]表示从i到n的期望 那么转移方程比较好列. 但是取min的环形转移? 反过来想, 如果我们知道了f[x]的大小关系, 其实,可以化简成 其实就是,我们把一些min变成f[x]然后再消一消. 其实转移貌似没有环了? 但是我们不知道大小关系. 一些边没有用,度数减少一些. 只有比f[x]小的f[y]会转移到x,感觉和最短…
[题目描述] 小 H 是个善于思考的学生,现在她又在思考一个有关序列的问题.        她的面前浮现出一个长度为 n 的序列{ai},她想找出一段区间[L, R](1 <= L <= R <= n).        这个特殊区间满足,存在一个 k(L <= k <= R),并且对于任意的 i(L <= i <= R),ai 都能被 ak 整除.这样的一个特殊区间 [L, R]价值为 R - L.        小 H 想知道序列中所有特殊区间的最大价值是多少,…
题目链接: 矩阵分组 分析: 这道题求的是两部分极差当中大的那个的最小值.对于这种求最值的问题,我们很自然(其实并没有)地想到二分答案. 这个题有两个结论: (好像当时看出来了第一个?然后发现下面都不会了,果断弃疗滚去写T3) 第一个结论: 对于划分的每个区域,为了保证只拐一次弯,它每一行的长度是单调且连续的 这样任意两个元素之间拐个直角弯就能到了(x) 参见下图(从发的solution里面扒的): 这个结论可以感性得到(--),因为如果它每一行的长度不单调,就会有 凸 ←这种形状的东西出来,从…
题目大意: 已知三个$n$位二进制数$A$,$B$,$C$. 满足: $A+B=C$ 它们二进制位中$1$的个数分别为$a$,$b$,$c$. 求满足条件的最小的$C$. Solution 唉,又是一道随缘猜结论的题,可惜极限数据卡掉了我一个点,开大数组就A了..... 通过$n \leq 10$的打表,我们发现所有的最优解中都有一种情况是$A$的二进制位的$1$是连续一段. 事实上,真的就是这样的! 设$t=a+b-c$,显然,$t$表示加法过程中进位的次数. 我们设$A$的$a$个$1$是连…
找规律 设\(p_i=a_{i+1}-a_i\),则答案就是\(\sum_{i=1}^{n-1}p_i\). 考虑若将\(a_i\)加上\(x\)(边界情况特殊考虑),就相当于是将\(p_{i-1}\)加\(x\),\(p_i\)减\(x\). 先考虑\(p_{i-1}\)加\(x\)所造成的影响: 当\(p_{i-1}\ge0\)时,就相当于将答案加上\(x\). 当\(-x\le p_{i-1}<0\)时,原先的答案是\(-p_{i-1}\),新的答案是\(x+p_{i-1}\),所以答案加…