Codeforces Round #545 (Div. 2) 掉分记

每次CF后,我的rating下降,掉分让我悲痛欲绝

                    ——题记



### 前言

这次 CF 时间可谓是极好的,17:05 开始,时长 2h 30min。

4:40 回到家,开电脑。

在看了一会书后,比赛开始了。



### 正文

首先,第一个掉分的 flag 出现了!

卡,卡,卡!

CF 又双叒叕卡了!

1分钟过去了……

2分钟过去了……

3分钟过去了……

Dashboard 一直打不开。。

当时间已经接近 17:10 分的时候,我终于打开了 A 题。。

然而,这还并不是我掉分的所有原因。

先迅速浏览了一遍 A~C 题,然后?

“woc这 B 和 C 是题?”

于是就~~愉快地~~开 A 题去了。

A 题链接:https://codeforces.com/contest/1138/problem/A

先看数据范围,

$ n \le 1e5 $,$ O(n) \ or \ O(nlogn) $?”

然后莫名想到 $ NOIP2018D1T1 $,心里很恐慌。。

题目大意就是给你一段只含有 1 和 2 的序列,让你求出一段长度为偶数的序列,使其平均分成两段后,每一段只含有一种数字。求序列最长是多少。

先想到的是 $ O(n^3) $ 的暴力,于是就有了对拍的程序。

然后开始大力猜正解:

“欸,设这段序列中最长连续的 1 为 len1,最长连续的 2 为 len2,好像 $ ans = min(len1, len2) \times 2 $!”

三个样例都是这样,于是,在我尚未做出证明的情况下,我便直接打起了代码!

这,就是我掉分的第二个 flag。

劈里啪啦打完代码,测样例,发现一个小错误,改掉,于是就过了三个样例。

SUBMIT CODE->cc->cv->Submit->Wrong answer on pretest 7

心态彻底爆炸

“啥啥啥 WA 了?”

“不会吧,有可能是细节问题,再打一遍”

于是又重新按照思路敲了一遍,过了样例,提交

Wrong answer on pretest 7

这是个假算法?

???

看来是假算法了,凉了

此时,比赛已经进行了 43min 了,我一共提交了 2 次,全部 WA #7,也就是说,我已经承担着 1h 的罚时了。

这,是我掉分的第三个 flag。如果我只罚时一次,那我也不会掉分。

无奈之下,我只能用起对拍,随机生成 $ n \le 10 $ 的数据,拍 10w 组。

没过一会,我就发现了一组 hack 数据!

input:

7

2 2 2 1 2 1 1 1

答案应为 2,但是我的程序却输出了 6!

hack!

此时我已经大概猜出了正解了,不是什么规律题,直接 $ O(n) $ 模拟!

可是,在慌乱之下,我的键盘不知为何,好像不听我的命令了一样。空格键必须要用很大的劲才可以敲出来。

原文地址:https://www.cnblogs.com/Xray-luogu/p/10499582.html

时间: 2024-08-02 09:26:29

Codeforces Round #545 (Div. 2) 掉分记的相关文章

Codeforces Round #545 Div. 1自闭记

A:求出该行该列各有多少个比其小的取max,该行该列各有多少个比其大的取max,加起来即可. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; #define ll long long #define N 1010 char ge

Codeforces Round #545 (Div. 2) D

链接:http://codeforces.com/contest/1138/problem/D 啊啊啊啊啊啊,自闭啊,比赛的时候判断条件 if(s1[i-1]=='0') aa++;写成了 if(s1[i]=='0') aa++;少写了个-1,被hack了,上分场变成了掉分场. 思路; 题目需要t字符串出现次数最多,那么找到最大的重叠部分就好了,然后依次加上就好了 主要就是要找到字符串t与本身的重叠部分,,假设有两个t,第一个t不变,第二个t向右移动: 比如: 10101010 -1010101

Educational Codeforces Round 58 Div. 2 自闭记

明明多个几秒就能场上AK了.自闭. A:签到. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; #define ll long long char getc(){char c=getchar();while ((c<'A'

Codeforces Round #545 (Div. 2)A. Sushi for Two

全世界最笨的人 出现了 这题真的好欺骗我的感情,表面上先给我过了,让我快乐一下,背地里再把我给踢掉 TUT干嘛这么坏啊!!!!!!!!!!!!! 好吧,其实这个错误昨天晚上就反过了 但是世界上最笨的女同学她是不会改的 如果你下次还不改 那你还是世界上最笨的女同学 如果你改了 那你...... TUT... 我们来分析一下,为什么这个女同学,连A题都过不了 这题的题意很简单,就是要求长得像AAABBB的序列的最大值 我先选了一种很弱智的方法 就是,先求前面那个连续序列的长度,再求后面那个连续序列的

Codeforces Round #545 (div 1.)

B.Camp Schedule 给两个 $01$ 串 $s$ 和 $t$,你可以将 $s$ 串任意重排,要求最大化 $t$ 在 $s$ 子串中出现的次数,可以重叠 $|s|,|t| \leq 500000$ sol: 看到可以重叠,考虑最大化利用重叠部分 重叠部分是这次 $t$ 串的结束和下次 $t$ 串的开始,也就是 $t$ 串的一个 $border$ 先放一个 $border$ ,之后一直放 $t$ 串的除 $border$ 以外的部分就可以了 #include <bits/stdc++.h

Codeforces Round #522 Div. 1 没打记

开场被A劝退,写了得有50min于是不敢交了.unrated了喜闻乐见. A:瞎猜都能猜到如果要走到那条直线上,进入直线的点横坐标或纵坐标与起点相同,离开直线的点横坐标或纵坐标与终点相同,证明脑补一下比较显然.看错题以为到直线上的那个点必须是整点,于是搞了半天exgcd.然而就算这样也不至于写这么长时间啊根本不知道自己在干啥. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib&

Codeforces Round #545 (Div. 2)D(KMP,最长公共前后缀,贪心)

#include<bits/stdc++.h>using namespace std;const int N=1000007;char s1[N],s2[N];int len1,len2;int nex[N];int cnt1[7],cnt2[7];int main(){    scanf("%s %s",s1+1,s2+1);    len1=strlen(s1+1);    len2=strlen(s2+1);    for(int i=1;i<=len1;i++

Codeforces Round #535 (Div. 3)小上分记

Codeforces Round #535 (Div. 3)小上分记 前言 被拉去买新年衣服了,导致半小时后才进场. 虽然做了4道题,但是rating还是涨得不多. 用predictor看了rating变化后心灰意冷,不看E题了. A ...800的难度. B 本来还在想要不要用什么STL.后来发现直接用桶就行了.然后就可以水过了. C 题意差点理解不了. 就6种情况都去考虑一下,找最小代价的即可.不要考虑少了. 每次都是\(O(n)\)的,所以能搞. D 贪心地换字母即可. E 坑.待填. 原

Codeforces掉分记 round318(div2)

Codeforces掉分记 round318(div2) 又升回紫名了233,这一次就差一点点就AK了,还没有AK过. (以下题目描述摘自codeforces) A题 Bear and Elections 题目描述 Limak is a grizzly bear who desires power and adoration. He wants to win in upcoming elections and rule over the Bearland. There are n candida