随笔分类 - vp
摘要:Codeforces Round 861 (Div. 2) C题直接数位dp即可 #include<cstdio> #include<algorithm> #include<cstring> #include<map> #include<queue> #include<bitset> #includ
阅读全文
摘要:https://codeforces.com/contest/1455 很久没有vp了,感觉思维又僵化了 A题直接看样例,直接猜是长度。 B题首先如果是 ,那么就是n 否则如果 ,分成两类 y=n,ans=n+
阅读全文
摘要:https://codeforces.com/contest/1853 C题感觉很不好写的样子,首先通过打表发现最后答案每次都是+n,那么我们考虑前i个,假如当前的ans+i仍然小于a[i+1],则没有影响,我们依然可以直接往后跳,否则,我们越过了a[i+1],那么我们应当加上i+1,注意,这有可能
阅读全文
摘要:https://codeforces.com/contest/1661/ B题数据很小,直接bfs预处理就行 C题随便猜了一下,设mx= 最后的值应该是 mx,mx+1这两个值,二分一下,就行 D题刚开始从前面考虑,陷入僵局,一度非常的困,学习凯库勒睡了一会,就突然想到了,
阅读全文
摘要:https://codeforces.com/contest/1842 C题很像leetcode上买股票那几题的套路,直接dp就行 ,g[j]表示以i结尾的最大值,很显然可以将跟j有关的项分离出来,然后对于每种ai维护最大值
阅读全文
摘要:添加链接描述 B题直接前缀后缀预处理一下没了 C 首先题目保证有解,那么我们可以确定"("和")"的数量,显然前面全部填(后面的全部填)肯定是合法的,然后交换两个最近的,影响最小,判断一下即可。 D题首先根据%k余数判断是否有解, 然后肯定是直接往下走到最大,然后走过去,rmq预处理即可。
阅读全文
摘要:添加链接描述 C题显然二分0的数量,然后双指针,算一下前缀和后缀1的数量即可。 #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> #include<map> #include<vector> #include
阅读全文
摘要:这场D被切穿了。 A题 答案为 x 或者 x-1 1 B题 答案就是最长的连续一段的长度+1 证明的话大概可以将它看成是几段连续上升和下降的段,然后在峰谷、峰顶分别填上最小、最大,剩下的就依次递增或递减就行。 C题 将一段连续的0/1视作一个块,那么我们最小化这个块的数量就行。 D题如果猜到如果有解
阅读全文
摘要:A题直接拆成 1 1 n-2 <=4时bob,否则alice B题直接模拟一下就行 C题开始想复杂了,我们直接枚举是哪个字符转成哪个字符即可,如果是变大,一定是放在最左,如果是变小,一定是放在最右,爆算即可。 D题,显然N^2dp,但是还是想错一些细节,假设按右端点排序后,当前考虑第i个区间,假设我
阅读全文
摘要:赛后四题 B题直接枚举不存在的元素即可 C题的trick有点像之前abc的某道题,对于奇数位置它一定可以贡献,对于偶数位置,如果它有数选了,那么它就能够贡献。 表示到前i个且至少选了一个的最大答案。 #include<cstdio> #include<algorithm> #incl
阅读全文
摘要:依然是四题,但是感觉太久没打,好像变得迟钝了。 B题大概就是令 C的话直接暴力维护每种颜色的第一个位置就行,反正只有50个 D的话刚开始没什么想法,构造题什么的真的不会啊 打表之后发现,对于k,在cost为0的情况下,最多能造出长度为\(
阅读全文
摘要:稳定发挥4题 A题文件输出没去掉WA了一发 B题特殊情况没判到,WA了好几发,中间还交到D题去了 C题简单判断一下无解,然后组合数求一下就行 D题其实也挺简单的,考虑严格夹在两条竖线之间的点(不包括边界),如果它们不是在同一水平线上,则必然大于Manhattan距离,而且两个点对之间要么是x方向走多
阅读全文
摘要:今天的D题有点惊险了,属于是,还剩9分钟搞出来。 B题开始猜到了结论,只要在最大值和最小值之间都是可以的,证明的话,可以先考虑从数量大的开始填,然后反证法一下(口胡) C题选择attack肯定是尽量跟,dragon的defence越接近越好 如果有相等就直接选,否则就选前面的或者后面的 本来写的是b
阅读全文
摘要:昨天只有3题,D题太难写了呜呜呜 A题上来写错WA了一发 B题开始写的二分,但是一直WA,前几天写二分写傻了,后面发现直接模拟不就完了吗? C题直接秒了,从低位往高位放,看看能不能够到下一个位置。 ```cpp #include #include #include #include #include
阅读全文
摘要:今天终于是4题了 这场似乎是手速场 A直接枚举一下就行,懒得想了 B暴力放 C怎么又是二分 D刚开始没什么思路,想着写个暴力,发现还挺快的 但是遇到相差很大就会寄 但是中间都是大的减小的 a-bk=x 只要检查这些是否成立即可 复杂度跟求gcd一样 ```cpp #include #include
阅读全文
摘要:好烦,又是只有三题,讲课的老师实在是太吵了,没法思考细节 A题开始还搞麻烦了 B题纯诈骗,找最小的做y即可 C题直接二分判断即可 D题其实没看多久我就秒了, 对于当前的数x来说无非就是 mex=x-1 mex=x mex=x+1 表示mex=x,后面没有数 表示mex=x,后
阅读全文
摘要:今天只有3题,有点遗憾,D题几乎一眼切,但是时间不够,分类讨论没写完,vp结束几分钟后写出来。 A题开始还以为要并查集,后面发现只有一个N不行 B题漏写括号WA一发 C题感觉不好写啊,因为直接计算可能会爆,所以要先从后往前,确定边界,然后就是跟普通的填数差不多,二分一下。 又是找串,还得特别小心会不
阅读全文
摘要:[传送门](https://codeforces.com/contest/1622) 今天依然是4题 B题就是猜结论,其实证明应该也不难,分类讨论一下就行 C题肯定是让最小的减,然后从大到小用set操作 那么我们枚举set了多少个数,算一下至少要减多少, 需要注意的是,如果要减到的数x大于a1,那么
阅读全文
摘要:B题没想到被坑了两次,极端情况明明也很好想,硬是WA了两发。 C题很想之前做过的经典蚂蚁题,但是又不太一样, 但分析之后,发现之后奇偶性相同才可能碰撞,那么分开处理, 假如已经有相向而行,肯定是最快碰撞的,用一个栈维护即可,最后就是剩下的肯定是 L L L ... R R R将它们配对即可。 ```
阅读全文