首页 > 其他分享 >Codeforces Round 999 比赛记录

Codeforces Round 999 比赛记录

时间:2025-01-21 13:33:33浏览次数:1  
标签:那么 liar 交上去 999 Codeforces 诚实 罚时 Round dp

前情提要

这个菜鸡CF上了 \(\color{darkcyan}Specialist\),心情大好,正好赶上放假,决定打一场CF。

赛时记录

A

上来脑子抽了,吃了一发罚时。发现写错了一种情况,改过来就过了。
感觉并不是一个好的开始。

B

竟成为本人唯一一遍过的题,虽然写的时候有点慌。

C

DP。一开始认为空间不够,但发现可以用滚动数组。遂开写。
写挂了。debug一番后认为是清除先前数据的锅,于是写了一个自认为好用的方法,交上去吃了一发罚时。
认为是没有memset的锅,于是写了memset,交上去吃了一发罚时。因为TLE了。
于是删掉memeset,把填表改成刷表,交上去AC了。此时时间01:21:32。

D

看了一下,决定去掉不变的部分并对变化的部分进行处理,然后当成合并果子做。
期间对着 \(|x-y|\le 1\) 这个条件产生了一些想法,但是与我当时的做法无关。
交上去,吃了两发罚时。此时时间为02:06:38。
感觉不对劲,自己搓了个样例一测发现不对,紧接着发现自己假得很彻底。
有点慌。
忽然想起来之前的想法,觉得可写,于是开写。
新的做法写起来比合并果子屎山好写多了。交上去过了。

后记

要是能少吃几发罚时就好了
没掉rating。

A

容易看出,每加入一个数,最终 \(s\) 都会是奇数。
如果有偶数那么答案为奇数的个数 \(+1\),否则为奇数的个数 \(-1\)。
赛时多讨论了一种情况。

B

排序,找到一对相等的边,删除。这对边是腰。
找到一对差小于二倍腰长的边,这对边是底。
赛时想的是找最长的一对相等的边,但是如果有两对及以上相等的边,那么一定可以组成梯形。而如果只有一对,那么只能选它。

C

赛时甚至写了滚动数组,然而并没有建liar数量那维的必要。因为一个人左边的liar数量由它左侧两人的左边的liar数量控制。
如果一个人 \(i\) 是liar,那么他左边的人 \(i-1\) 一定是诚实的人,所以他左边的人左边一定有 \(a[i-1]\) 个liar,也就是说到他这里就有 \(a[i-1]+1\) 个liar。
如果 \(i\) 是诚实的人,那么他左边一定有 \(a[i]\) 个liar。
因此,令 \(dp[i]\) 表示 \(i\) 是诚实的人的方案数。
需要考虑两种情况:
如果 \(i-1\) 是诚实的人,那么应当满足 \(a[i]=a[i-1]\),此时将 \(dp[i-1]\) 加入答案。
如果 \(i-1\) 是liar,那么\(i-2\)一定是诚实的人,因此应当满足 \(a[i]==a[i-2]+1\),此时将 \(dp[i-2]\) 加入答案。
最终的答案即为 \(dp[n]+dp[n-1]\),即 \(n\) 为诚实的人和 \(n\) 为liar这两种情况。

D

一开始以为像合并果子一样,优先把小的数合并,然而这样做没有考虑到,一个数可以先与比自己大\(1\)的数合并而不与跟自己相等的数合并。于是它假了。
由于 \(|x-y|\le 1\),对于一个由 \(a\) 中数字合并而成的数,它的拆分方案是唯一的。
即:\(x=\lfloor\frac{x+1}{2}\rfloor+\lceil\frac{x+1}{2}\rceil\)。
因此,我们递归处理 \(b\) 中的每一个数 \(b[i]\)。
如果 \(b[i]\) 在 \(a\) 中出现,那么是可以得到的;
如果 \(b[i]\) 在 \(a\) 中没有出现,那么把它拆分成 \(\lfloor\frac{b[i]+1}{2}\rfloor\) 和 \(\lceil\frac{b[i]+1}{2}\rceil\) 两部分,对每一部分进行如上判断。
如果一个数的两部分都是可以得到的,那么这个数也是可以得到的;
如果一个数的两部分至少有一部分不可以得到,那么这个数是不可以得到的。这是显然的。
注意判边界条件 \(x=1\) 。此时如果没有出现则不能继续拆分。


\[\huge End \]

标签:那么,liar,交上去,999,Codeforces,诚实,罚时,Round,dp
From: https://www.cnblogs.com/neat-isaac/p/18682752/cf2061

相关文章

  • CF div1+2 999 (A~E)
    赛时三题,\(D\)就差一个显然的剪枝就能过了,qwq...A显然第一步能选偶数就选偶数,之后只能选奇数。细节见代码。codeB对于选取的任意四条边,设腰为\(x\),短边为\(a\),长边为\(b\),则能形成等腰梯形的充要条件为:\(x\)出现次数\(>=2\),且\(a+2*x>b\)。两个腰选最大,并且\(a,b\)尽可能接近......
  • Codeforces Round 998 (Div. 3) 部分题解
    写题解的时候这场在评测,就不放代码了。E.GraphComposition题意给两个无向简单图,对图\(1\)添加若干条边或删除若干条边,使得两图的连通性一致,最少需要变更多少条边。题解求出图\(2\)的连通性,考虑图\(1\)的所有边,若违背了图\(2\)联通性的要删除(图\(2\)不联通但图\(......
  • Codeforces Round 998 (Div. 3)
    题目链接:CodeforcesRound998(Div.3)总结:复建,Cwa两发,E读假题了。A.Fibonaccinesstag:签到Solution:简单模拟一下即可。voidsolve(){inta[5];for(inti=0;i<5;i++){if(i==2){continue;}cin>>a[i];......
  • 【牛客训练记录】牛客周赛 Round 77
    训练情况赛后反思打一半吃饭去了,C题看到ax+by=k的问题,简单的扩欧exgcd没反应过来,简单数论还是不熟悉TAT,D题DSU计算联通块大小时\(i\)打成\(a_i\)疯狂RE被硬控了十几分钟A题输出题目所述的第几个字符串即可#include<bits/stdc++.h>//#defineintlonglong#defin......
  • golang:校验库go-playground/validator的常用标记
    一,官网:官方文档:https://pkg.go.dev/github.com/go-playground/validator/v10代码地址:https://github.com/go-playground/validator二、常用标记说明标记标记说明例required必填Field或Struct validate:"required"omitempty空时忽略Field或Struct va......
  • Codeforces Round 897 (Div. 2)
    A.green_gold_dog,arrayandpermutation题意:给你一个数组\(a\),你要构造一个排列\(b\),使得不同的\(a_i-b_i\)尽可能多。我们按\(a_i\)从小到大分配\(n\)到\(1\),这样\(a_i-b_i\)一定大于\(a_j-b_j\)\((a_i>a_j)\)。点击查看代码voidsolve(){intn;std::cin>>n......
  • Codeforces Round 997 (Div. 2) / 2056
    A.ShapePerimeter难度(个人感觉)★☆☆☆☆思考:考虑平移Code:for(inti=0;i<N;i++){std::cin>>dx>>dy;if(i){cnt_dx+=dx;cnt_dy+=dy;}}ans=(m+cnt_dx+m+cnt_dy)*2;B.FindthePermutation难度(个人感觉)★☆☆☆☆思考......
  • Codeforces Round 997 (Div. 2) 题解(A~D 题)
    CodeforcesRound997(Div.2)题解(A~D题)A因为\(x,y<m\),所以每次必有重叠的长方形。且重叠部分长为\(m-x\),宽为\(m-y\),用总周长减去算重了的部分就行。注意处理第一个长方形的边界条件。B.FindthePermutation按照\(g_{i,j}\)的大小关系直接写cmp然后sort就......
  • Educational Codeforces Round 149 (Rated for Div. 2) / 1837
    A.GrasshopperonaLine难度(个人感觉)☆☆☆☆☆Codeif(L%k==0){ans.push_back(1);ans.push_back(L-1);}else{ans.push_back(L);}B.ComparisonString难度(个人感觉)★☆☆☆☆思考:注意到最长链(指一些连续的位置,它们是单调的)是答案的下界,而实际上这是下......
  • Educational Codeforces Round 146 (Rated for Div. 2) / 1814
    A.Coins难度(个人感觉)☆☆☆☆☆思考:关键是2可以凑出任意偶数Code:if(n%2==0){ok=1;}else{if(k%2==0){ok=0;}else{ok=n>=k;}}B.LongLegs难度(个人感觉)★☆☆☆☆思考:当最终\(m=1e5\),答案不超过\(3e5\),因此最优的情况......