随笔分类 -  cf

摘要:Link 首先我们研究全是0的情况,显然的,每次操作2最多可以得到1分。 那么显然的,不如直接一次操作一一次操作二,这样是最优的。 然后再研究初始数组,很难用很快的方式得到应该从什么时候开始第一次操作二。 不过可以注意到,第一次操作2最多可以得到n分,那么我们再2n+1天以后进行第一次操作二 阅读全文
posted @ 2023-12-25 23:06 Simex 阅读(46) 评论(0) 推荐(0) 编辑
摘要:Easy Version Hard Version Hard Version的做法可以从Easy Version 用数据结构优化得到。 首先我们想一下,什么情况需要进行操作?显然是ai!=bi的时候,并且当ai>bi的时候将会无解。 那么当ai<bi的时候,应该怎 阅读全文
posted @ 2023-12-14 23:32 Simex 阅读(72) 评论(0) 推荐(0) 编辑
摘要:Link 这是一个需要欧拉反演的题目 首先,可以知道只和数字之间的大小有关,数列的顺序无关,那么就可以首先排一个序方便解决该问题。 根据欧拉函数的性质,知道n=d|nϕ(n) 那么我们每次先确定中间的数aj,然后根据公式,得他它得贡献是\(\sum_{i=1 阅读全文
posted @ 2023-12-12 23:24 Simex 阅读(12) 评论(0) 推荐(0) 编辑
摘要:Link 此题目可以从两个方向考虑,正着和倒着,倒着考虑比较容易,首先把所有的数放到一块,如果是'<'或者'>',就是去掉最左边或者最右边的数,这样显然只有一种可能,答案不变。 如果是'?',那么显然可以去掉中间的任意一个,所以答案就是×l2,那么对于sni位置的\ 阅读全文
posted @ 2023-10-22 23:14 Simex 阅读(11) 评论(0) 推荐(0) 编辑
摘要:Link 首先我们想这样的问题,为什么强调是2x 呢?我们记平均值是 avg,然后可以注意到,应该有一下式子被满足 ai2xi+2yi=avg,移项,可以得到aiavg=2yi2xi,而这个式子中xi和\(y_i\ 阅读全文
posted @ 2023-09-25 19:52 Simex 阅读(11) 评论(0) 推荐(0) 编辑
摘要:Link 首先想一下,如果又一列的 MEXn 会有什么样的要求?需要这一样有 0 n1 的所有数字并且没有n 当我们知道这一点以后问题就很好解决了. 我们应该构造数列的时候,满足第一行的MEX0 ,第 i 行的 MEX 为\ 阅读全文
posted @ 2023-09-20 15:50 Simex 阅读(20) 评论(0) 推荐(0) 编辑
摘要:Link 简单版本的结论还是很容易猜到的。 首先很容易想到的第一步就是尽可能地不覆盖地取尽可能多地区间,最后剩下了一小块。 然后在接着原来的指针一个一个地往右问,直到不能问了为止。 为什么这样是正确的呢?首先,在这样一步一步地往右查询的过程中,我们会发现总是前$k-1个数加上后面的一个数。 然后题面 阅读全文
posted @ 2023-09-18 19:54 Simex 阅读(22) 评论(0) 推荐(0) 编辑
摘要:事实上我们可以发现,如果bi=x最后,那么我们可以连一条边,从ix 这样我们就得到了一个有向图,在这张有向图呢,可以证明的是 如果k=1,那么必须全部都是自环。 若不成立,则必须每个环的大小恰好为k 这样就可以解决了。 #include<cstdio> # 阅读全文
posted @ 2023-09-18 09:47 Simex 阅读(17) 评论(0) 推荐(0) 编辑
摘要:Link A Two Vessels 十分甚至九分地简单 #include<bits/stdc++.h> using namespace std; int t; int a,b,c; int main(){ scanf("%d",&t); while(t--){ scanf("%d%d%d",&a, 阅读全文
posted @ 2023-09-09 11:00 Simex 阅读(3) 评论(0) 推荐(0) 编辑
摘要:[link](https://codeforces.com/contest/1855/problem/C1) 像这种构造题可以先分类讨论一波 比如说全是正数或者全是负数,那么显然的就是可以用前缀和和后缀和来解决。 而如果有正有负呢?可以注意到的是数字非常小,而25=32>20了,那么我们就可以 阅读全文
posted @ 2023-08-08 17:19 Simex 阅读(104) 评论(0) 推荐(0) 编辑
摘要:[link](https://codeforces.com/contest/1855/problem/B) 需要思考一下 如果这个题能做,那么肯定有一种比较可行的做法。 如果[l,r]是可行的,那么就意味着[1,rl+1]是可行的 这是显然的,显然后者的每一个数在前者中必然有对应的倍数,所 阅读全文
posted @ 2023-08-08 17:16 Simex 阅读(23) 评论(0) 推荐(0) 编辑
摘要:[Link](https://codeforces.com/contest/1849/problem/C) 我们想一下,什么时候两种变换是相同的 或者说,这意味着什么。 本题目有特殊性,特殊性就在于只有0和1 对于每一个被改变的区间[Li,rI],从li开始的那一堆0,和从ri阅读全文
posted @ 2023-07-29 19:47 Simex 阅读(12) 评论(0) 推荐(0) 编辑
摘要:[link](https://codeforces.com/contest/1851) #### A 非常简单的比较大小问题 ```cpp #include #include #include #include #include #include #include #include #include 阅读全文
posted @ 2023-07-28 18:02 Simex 阅读(21) 评论(0) 推荐(0) 编辑
摘要:[Miku](https://codeforces.com/contest/1853/problem/C) 一道逆向思维的题目。 我们假设最后的最小的数是个1,放在第一个位置上,然后我们往数列开头按照规则插入0,其中应该插在这个1后面的,我们视为无效插入,插在这个1前面的,我们视为有效插入。 显然随 阅读全文
posted @ 2023-07-25 21:52 Simex 阅读(47) 评论(0) 推荐(0) 编辑
摘要:Jisoo 什么时候两个点中间夹得那个点不会被走?当他不在最短路上的时候。 按照这个思想进行检查就行了。 #include<cstdio> #include<iostream> #include<cstring> #include<iomanip> #include<cmath> #include< 阅读全文
posted @ 2021-11-08 17:22 Simex 阅读(25) 评论(0) 推荐(0) 编辑
摘要:Jisoo 通常来讲这种题可以按照边来考虑 当然也可以按照点对。 对于任意一个点对,在新图上的距离是在原图上的一半上取整,这样,我们可以先把原来的距离都求出来,奇数点和偶数点求出来并且化简一波式子。 #include<cstdio> #include<iostream> #include<cstri 阅读全文
posted @ 2021-11-07 19:12 Simex 阅读(22) 评论(0) 推荐(0) 编辑
摘要:Jisoo 观察样例,知道肯定和六有关系 并且gcd(a,b)=gcd(b,ab) 就可以构造了 #include<cstdio> #include<iostream> #include<cstring> #include<iomanip> #include<cmath> #include<s 阅读全文
posted @ 2021-11-06 07:36 Simex 阅读(33) 评论(0) 推荐(0) 编辑
摘要:Rose 非常有趣的构造题 看到这奇怪的数据范围就只要要依据这个搞事情 f(x+1018)=f(x)+1推而广之 ap1018+ap1(moda) 且有$\sum_{i=1}{10{18}-1}f(i)\equiv p(mod 阅读全文
posted @ 2021-11-05 12:57 Simex 阅读(60) 评论(0) 推荐(0) 编辑
摘要:Jinnie 看到莫名其妙的异或题,应该考虑按照位数处理。 这样我们分别考虑每一位的答案,需要先取模。 排序,让序列有了单调性,并且可以观察到,对于第k位只有两个数的和属于 [2k,2k+11][2k+1+2k,2k+22]才行 最后的右边界是什么东西?我们取模了啊. 阅读全文
posted @ 2021-11-05 06:48 Simex 阅读(26) 评论(0) 推荐(0) 编辑
摘要:Jennie 因为要记录余数的问题,不能单纯追求最大 那么就加上一维来记录维数 再开一个数组记录是怎么转移的 #include<cstdio> #include<iostream> #include<cstring> #include<iomanip> #include<cmath> #includ 阅读全文
posted @ 2021-10-21 23:00 Simex 阅读(33) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示