CF 997E 解题报告】的更多相关文章

CF997E Good Subsegments 给你一个长度为\(n\)的排列 \(P\),定义一段子区间是好的,当且仅当这个子区间内的值构成了连续的一段.例如对于排列\(\{1,3,2\}\),\([1,1],[2,2],[3,3],[2,3],[1,3]\)是好的区间. 共\(q\)次询问,每次询问\(L,R\), 求有多少\(L≤l≤r≤R\),满足\([l,r]\)是好的区间.\(1≤n,q≤1.2×10^5\). 积累一个套路:对于询问区间子序列的信息,可以离线移动右指针,类似扫描线一…
12.27 cf div3 解题报告 wxy.wxy,带上分拉,全场做了个无脑小白 比赛场地 A: T1,跟着模拟就好了 B: sort一遍之后 去除的数一定是a[1]或者a[n] 比较去除谁小就输出谁 C: 他的二进制有多少个1 如果>k说明无解 他的二进制位都放优先队列里 每次取出top,分成两半,再放回去,如果取出1或者为空,无解 直到size==k 输出就好了 wrong 1 re 3 : 数组开小了 D: 假设为a,b,c 则a的两个数一定包含一个b b中一定包含一个c 所以从1开始挨…
cf解题报告 记录一下吧 做出:T1 rating :-97 想起几个月前做不出T1还是有点小搞笑呀2333 T1 双指针+特判 T2 发现k特别小,枚举剩余系 还要判断是否是能被n整除 移项发现可以算出整除是多少 然后\(整除*k+剩余数=n\)算出答案,复杂度\(O(k)\) T3 大力贪心 先算出A.B之间的路径,由于路径不唯一 每次抉择最多有两种,变x或者变y 我们优先选靠近C的点 然后选出的点最多有\(abs(a.x-b.x)+abs(a.y-b.y)\)个 也就是O(n)的级别 分别…
T1 偶数输出n/2 奇数输出(n-1)/2即可 T2 判断是不是回文 不是直接输出子串 是回文继续判断 如果他前(len+1)/2内没有相同 输出-1 其他的 交换不同字符,输出子串 T3 贪心+二分 因为要满足\(b_i=a_i+a_{n−i+1}\) 也就是两边向中间,还要保证单调递增 那如果要让满足的结果最优 一定是左边尽量小,右边尽量大 每次二分答案就可以 复杂度\(nlogn\) T4 每一个联通块分别二分图判断一下 染色判断就可以 ans就是每个块的乘积 每个块可以分成两部分 贡献…
题1  素数 [问题描述] 给定一个正整数N,询问1到N中有多少个素数. [输入格式]primenum.in 一个正整数N. [输出格式]primenum.out 一个数Ans,表示1到N中有多少个素数. [输入样例] [输出样例] [数据规模] % N<= % N<= % N<= 题目 tag:数学  思路:裸欧拉筛,注意漏判断条件导致数组越界. #include<cstdio> #include<iostream> #include<cstring>…
CF Round #600 (Div 2) 解题报告(A~E) A:Single Push 采用差分的思想,让\(b-a=c\),然后观察\(c\)序列是不是一个满足要求的序列 #include<bits/stdc++.h> using namespace std; const int maxn = 1e5 + 10; int T, n; int a[maxn], b[maxn]; int c[maxn]; int main() { cin >> T; while(T--) { s…
CF一如既往在深夜举行,我也一如既往在周三上午的C++课上进行了virtual participation.这次div2的题目除了E题都水的一塌糊涂,参赛时的E题最后也没有几个参赛者AC,排名又成为了手速与精准的竞争--(遗憾,如果参加了一定可以上分的吧orz) A题: 先判断起点和终点的距离是否被每次跳的距离整除,如果不整除就到不了.再检验跳跃过程中的落点是否均合法即可. #include<stdio.h> #include<bits/stdc++.h> #include <…
---恢复内容开始--- q神等人组织的vjudge上的多校训练,题目基本上都来自于CF,#1是上周进行的,参加后感觉收获很多,因为上周准备期中比较忙,解题报告现在补上. 比赛地址(兼题目地址) A题 DFS搜索所有路径,需要注意的是走的顺序,先向前走一步,再向上或向下或静止不动,由于车一直在走,可以认为是相对运动,即人再向右侧走两个格子.遇到当前位置是车就说明走不通,可以走出的条件是已经在此行所有车的后面. 注意,一定要写visited记录走没走过格子(也就我这种搜索初学者会犯这么傻的错误吧,…
题目地址 先简单的总结一下这次CF,前两道题非常的水,可是第一题又是因为自己想的不够周到而被Hack了一次(或许也应该感谢这个hack我的人,使我没有最后在赛后测试中WA).做到C题时看到题目情况非常复杂,明显超出自己现在水平,卡了很久也没有好好做题.等了很长时间才开始看D题,而这时信心已经严重不足.赛后再看D题才发现自己比赛时理解错了题意,致使误以为题目非常复杂.而实际上,这个过程分析起来是非常容易的. 对于三种棱长度分别为a,b,c的石头,r最大为min(a,b,c)/2;. 如果两个石头要…
又熬夜刷了cf,今天比正常多一题.比赛还没完但我知道F过不了了,一个半小时贡献给F还是没过--应该也没人Hack.写写解题报告吧= =. 解题报告例如以下: A题:选择排序直接搞,由于不要求最优交换次数,代码: #include <iostream> #include <algorithm> #include <cstdio> #include <memory.h> #include <vector> #include <stack>…