首页 > 其他分享 >Codeforces Round 947 (Div. 1 + Div. 2) VP记录

Codeforces Round 947 (Div. 1 + Div. 2) VP记录

时间:2024-09-05 08:56:34浏览次数:12  
标签:没补 947 Codeforces 即可 集合 Div Round

Codeforces Round 947 (Div. 1 + Div. 2) VP记录

我是唐诗,我是唐诗,我是唐。

场切:A B C E。笑点解析 D 是我不在场的 GJ 模拟赛的 T1 签到题。

A

找 \(a_i < a_{i - 1}\) 然后按数量分讨即可。

B

最小值要取,不能被最小值表示出来的数的最小值要取,暴力即可。

C

先对相邻两个值的较小值取 \(\max\),然后对相邻三个数的中位数取 \(\max\)。

D

赛时不会证明最优性觉得我的做法可能是错的所以没写,赛后发现我的贪心就是对的。

蓝色要有贡献需要走到一个红色点上。

所以最优是先两人汇合,然后蓝跟着红走就行。

显然先找到两人的距离,然后暴力跳完成第一步。

然后设相遇点为 \(x\),找到 \(x\) 的最远点即可,最终答案表达式很好推。

E

维护度数不是很可行。

判断链很头疼,考虑树上差分。

考虑构造一棵树满足每个点的子树和为这个点的颜色。

钦定 \(1\) 号点为根。那么在这种情况下,把黑点变白就是 $c_{fa_i} $ 自增,\(c_i\) 自减。把白点变黑反之。

考虑一条链在这种情况下是什么东西。

如果这条链是顺着树边往下的,那么这条链是由一个 \(1\) 和一个 \(-1\) 组成。由于整棵树如果包括 \(1\) 号点父亲的虚拟节点始终满足节点和为 \(1\),所以形成一个 \(1\) 一个 \(-1\) 的时候,\(-1\) 必然在 \(1\) 上面,所以如果整棵树存在两个点的权值是 \(-1\) 和 \(1\),并且其它点的权值为 \(0\),那么这棵树必然合法。

否则由两个 \(-1\) 和两个 \(1\) 组成。手玩一下,发现要满足,两个 \(1\) 的 \(\operatorname{lca}\) 在一个 \(-1\) 上,并且这个 \(-1\) 的父节点为 \(-1\)。

用 set 维护正数点和负数点即可。

F

考场上还剩半个小时我应该把这题做出来的。

可惜最后半个小时我都没看懂题(雾

简单来说,题目给出了 \(2^n - 1\) 个限制形如要求一个集合与当前集合的交集的大小在对应的限制集合中。然后我们要找到若干个集合,满足所有的限制。

考虑从前往后填数。当我们填完前 \(x\) 个数后,本质上限制的数量就只剩 \(2 ^{n - x}\) 个了。

所以考虑限制怎么合并。

如果不填当前数,那么对于两个集合满足这两个集合的区别仅为存不存在当前数,限制显然直接取交即可。

否则将存在当前数的集合的每个数减一后与不存在当前数的集合取交即可。

G

还没补。

H

还没补。

I

还没补。

标签:没补,947,Codeforces,即可,集合,Div,Round
From: https://www.cnblogs.com/AzusidNya/p/18397634

相关文章

  • Codeforces LATOKEN Round 1 (Div. 1 + Div. 2)
    A.ColourtheFlag题意:给定一个棋盘,一些格子已经染上黑白色,判断能否将剩下的格子染色,使得相邻格子不同色。输出构造。思路:考虑一个棋盘的合法染色方案只有两种,分别比较一下即可。提交记录B.HistogramUgliness题意:一个柱状图,权值定义为操作次数加上竖直方向的周长。一次......
  • 2024 Xiangtan University Summer Camp-Div.2
    A.二度树上的染色游戏因为题目保证了是二叉树,所以每次至多只需要选择一个子节点染成红色。所以可以贪心的选择红色权值小的子树即可。#include<bits/stdc++.h>usingnamespacestd;usingi32=int32_t;usingi64=longlong;usingldb=longdouble;consti32inf......
  • Codeforces Round 971 (Div. 4) ABCD题详细题解(C++,Python)
    前言:    本文为CodeforcesRound971(Div.4)ABCD题的题解,包含C++,Python语言描述,觉得有帮助或者写的不错可以点个赞    比赛打了没一半突然unrated了就不是很想继续写了,早起写个题解    (之前的div3也没复盘,哎真菜)目录题A:题目大意和解题......
  • Codeforces Round 969 (Div. 1)
    Preface暑假最后几天疑似有点摆过头了,训练也没咋训,CF也没咋打这周末就是网络赛了,虽然名额早就满了,但还是得写写题找下手感不然要被学弟暴打了这场由于是Div.1/2分场,补题就只写Div.1的题了A.IrisandGameontheTree首先考虑快速计算一个01串的贡献,不难发现一段相......
  • Codeforces Round 971 (Div. 4) E 题解析
    #E题Klee'sSUPERDUPERLARGEArray!!!题目描述思路:对于这道题,首先观察到题目求的是最小可能值,而且数据的范围是1e9范围,所以首先可以考虑的方法就是O(logn)的方法,而适合求最值的方法无疑就是二分搜索,可以通过二分来不断缩小答案的区间......
  • Codeforces Round 969 (Div. 1 + 2)
    A将序列转化为\(01\)串,奇数为\(1\),偶数为\(0\)。容易发现两个\(0\)不能分在同一组,于是答案的上限取决于奇数的个数,并且容易构造方案达到这个上界,随便做做就行。B将序列排序后,发现不管怎么加,大小顺序不变,记录下最大值按题意模拟。C根据基本数论知识可得,操作等价于加上......
  • Codeforces Round 971 (Div. 4)
    A-Minimize!inlinevoidsolve(){ inta,b; cin>>a>>b; cout<<b-a<<'\n';}B-osu!maniainlinevoidsolve(){ intn; cin>>n; vector<string>a(n); for(auto&x:a){ cin>>x......
  • Codeforces Round 971 (Div. 4) A-G1
    Ab-a#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;mt19937rnd(time(0));#defineintlonglongtypedeftuple<int,int,int>tp;#definexfirst#defineysecondtypedefpair<int,int>pii;typedefpair<double,double......
  • Educational Codeforces Round 169(A-D)
    A.ClosestPoint        给你一组点。你必须在这个集合中加入一个整数的点,使它与集合中现有的每一个点不同,并且它成为与集合中每一个点**最近的点。这可能吗?(输入yesorno)    一道思路题,简单思考可以发现,如果数字超过两个,那么这题答案就是NO。当两个数字的......
  • Codeforces Round 966 (Div. 3)
    ab略...C:map嵌套水过去的,复杂度\(nlog^2n\),感觉不如正解#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#definepiipair<int,int>#definemkpmake_pair#definefirfirst#definesecsecond#definepbpush_backconstintmaxn=2e5+100;......