CF
binggui2
这个作者很懒,什么都没留下…
展开
-
CF 700 (Div.2) C 二分
Searching Local Minimum非常有意思的一个二分题#include <cstdio>#include <cstring>#include <iostream>using namespace std;const int N = 100010;int n;int a[N];void er(){ int ml, mL; int l = 1, r = n; while(l < r) { int原创 2021-11-02 15:49:05 · 78 阅读 · 0 评论 -
CF Global Round 13 D
二进制永远的神题干题解:如果 u 到 u + v 中有一条边,那么 u & v = v,那么证明二进制 v 为 1 的位 u 也为 1。u + v 的时候, 如果两位全为 1 的话,高位进位,该位变0。不全为1的时候,该位为1。总结一下: u中1的位置 一定比 u+v中1的位置 低或相等,照着这个规律去判断两个数字之间有没有边即可。还有就是别忘了 只能向比自己大的值连边。#include <cstdio>#include <cstring>#includ原创 2021-03-01 16:33:37 · 160 阅读 · 0 评论 -
CF Global Round 13 C
题干模拟这个过程,对于每个点来说记录他的入度。入度数组为 in高度为 d如果 in[i] >= (d - 1) 该点能由之前点来转化,而且多的可以更新下一个值 in[i + 1] += in[i] - (d - 1)如果 in[i] < (d - 1) 那么他无法完全有之前的转换,得从该点开始, ans += (d - 1) - in[i]然后对于该点来说更新他后面的点 j = (i + 2 ~ min(n, i + d[i])) 这个区间内的 in[j] ++#include &原创 2021-03-01 14:32:32 · 138 阅读 · 0 评论 -
CF 704 (Div. 2) D
Codeforces Round #704 (Div. 2) D题意:a个0,b个1,组成两个数字。两个数进行相减后二进制1的个数为k。题解:二进制加法,细节还是得多想。k!=0k!=0k!=0时,如果 k≤(a+b−2),2≤b,1≤ak≤(a+b-2),2≤b,1≤ak≤(a+b−2),2≤b,1≤a 即有答案,#include <bits/stdc++.h>using namespace std;#define ll long long const int N = 2原创 2021-02-28 18:40:46 · 108 阅读 · 1 评论 -
CF 704 (Div. 2) E
Codeforces Round #704 (Div. 2) E题解:把第一个数组当成初始序列,查看其它序列,进行修改,最终求出答案先分析直接有答案的:如果初始序列和其他序列进行对比不同项 不超过2个,初始序列即为答案。如果初始序列和其他序列进行对比不同项 超过4个,不可能有答案。然后分析如何进行修改,对于 除了初始序列剩下的序列 与 初始序列进行对比:不同项有四个,那么必然得修改其中的任意两个,共6中情况,修改后查看其他序列是否符合要求。不同项最大为三个,任意选出不同项为三个的序列进原创 2021-02-28 18:40:16 · 86 阅读 · 0 评论 -
CF代码出错点
600 div2A for(int i = 0;i < n;i ++){ if(b[i] < 0) ans = 1; else if(b[i] > 0 && t == 0){ t = b[i]; while(b[i] == t && i < n) i ++; i --;//外层每次就++,这里得减一次 } else if(b[i] > 0) a原创 2021-01-01 21:29:18 · 212 阅读 · 1 评论 -
Codeforces Round #685 (Div. 2)
A. Subtract or Divide题意就是给一个数n,通过两种操作把他变成 1, 问最少操作的次数操作一,n 除以 除自己以外的因子操作二,n 减一上来以为和素数有关系,想的是n - > (n的最小质因子)|| (n - 1)然后交了两发wa,发现和质数没关系12 -> 13 -> 2 -> 1剩下的偶数 -> 2 -> 1剩下的奇数 -> 该奇数减一(偶数) -> 2 -> 1就这几种情况,就没了,还是得从题目本身去开原创 2020-11-22 08:03:08 · 217 阅读 · 0 评论 -
Educational Codeforces Round 98 (Rated for Div. 2)
Educational Codeforces Round 98 (Rated for Div. 2)B. Toy Blocks题意就不说了目标状态是一个最大值,剩下的值都相等,我们把最大值设为max,剩下的值设为min要满足一下的条件找到答案min / (n-2) = max - min && max % (n-1) == 0如果拿出min,那么min能弥补剩下的min和max之间的差距如果拿出max, 那么max补min后得让所有的min都相等比赛的时候到这步就结束了,原创 2020-11-20 16:33:18 · 217 阅读 · 0 评论 -
Codeforces Round #672 (Div. 2)
C1最后要的 ans 是争取 加的多,减的少上来找规律是找到山峰相加,找到山谷相减如果最后一个位置是山谷的话就不用在减去该值了,因为后面不可能在加上一个值用差分数组去找到山峰和山谷的位置一个贪心,昨天最后没力气打代码了,#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#define LL long longconst int N = 300原创 2020-09-25 11:35:40 · 292 阅读 · 0 评论 -
Educational Codeforces Round 95 [Rated for Div. 2]
Educational Codeforces Round 95 (Rated for Div. 2)A数学题输入 a b k题目上来只给你 一个s两个操作一个 s 可以换成 a 个 sb 个 s 可以换 一个 c一个 t = 一个 s + 一个 c(该步骤不算操作)问要 k 个 t 需要 多少 次操作有点像进制转化,昨天一直wa是因为 k * b 个 s 变成 k 个 c 是 k 步,而不是 b 步,还有就是不是每次 + a, 是每次 + (a - 1),最后虽然说看出来了,可是太慢了原创 2020-09-15 18:24:08 · 129 阅读 · 0 评论 -
Codeforces Round #665 (Div. 2)
A找规律,上来差点找吐了#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>#define inf 0x3f3f3f3f#define debug(x) cerr << #x << x << '\n'using namespace std; int main(){ int l; int n,k;原创 2020-08-22 08:45:34 · 106 阅读 · 0 评论 -
Educational Codeforces Round 93 (Rated for Div. 2) D
传送门昨天写的时候直接找每一个矩阵的最大值,然后相加在一起,然后就Wrong answer on test 7今天看了发现是三维dp原创 2020-08-15 10:31:52 · 189 阅读 · 0 评论