首页 > 其他分享 >4月CF杂题

4月CF杂题

时间:2023-04-06 20:49:09浏览次数:50  
标签:题意 text CF MAD 答案 杂题 ldots log

Codeforces Round 862 (Div. 2)

E. There Should Be a Lot of Maximums

题意:定义一棵点有颜色的树的 \(\text{MAD}\) 为树上编号最大的出现了至少两次的颜色。对于树上每条边,求出断开它后生成的两棵树的 \(\text{MAD}\) 的最大值。\(n\le2\times10^5,a_i\le10^9\)。

先找到整棵树的 \(\text{MAD}\):如果 \(\text{MAD}\) 出现次数 \(>2\),根据抽屉原理,不论怎么分答案都是 \(\text{MAD}\);如果没有 \(\text{MAD}\),答案都是 0;如果 \(\text{MAD}\) 出现次数 \(=2\),发现除了 \(\text{MAD}\) 出现的两个位置路径上的边,其他边答案都是 \(\text{MAD}\),路径上直接暴力便利开桶统计答案即可。时间复杂度 \(\text{O}(n\log n)\),其中瓶颈为离散化,解决问题只用 \(\text{O}(n)\)。

F1. Survival of the Weakest (easy version)

题意:定义 \(F(a_1,a_2,\ldots a_n)\) 为在 \(a_1,a_2,\ldots a_n\) 中任选一对 \(i,j(i<j)\) 能得到的所有 \(a_i+a_j\) 的前 n-1 个最小值。求 \(\underbrace{F(F(F\ldots F}_{n-1}(a_1,a_2,\ldots,a_n)\ldots))\)。\(n\le3000,a_i\le10^9\)。答案对 \(\text{998244353}\) 取模。

可以联想到 146. 序列 的做法,我们就在 \(\text{O}(n^2\log n)\) 的时间内解决了这个问题。那么取模呢?发现 \(\underbrace{F(F(F\ldots F}_{n-1}(a_1,a_2,\ldots,a_n)\ldots))=\underbrace{F(F(F\ldots F}_{n-1}(0,a_2-a_1,\ldots,a_n-a_1)\ldots))+2^{n-1}a_1\)。

F2. Survival of the Weakest (hard version)

题意:同上,但是 \(n\le2\times10^5\)。

刚刚的做法怎么优化?直觉告诉我们一个数组中较大的一些数是没有用的。更具体地说,我们只需要保留数组中前 \(\text{64}\) 个数,这样就是 \(\text{O}(384n)\) 的(\(384=64\times\log64\))。那么为什么呢?

如果 \(0,a_1,\ldots,a_n\) 满足 \(a_1+a_2< 0+a_n\),则 \(a_n\) 可以删除;反之,则 \(F(0,a_1,\ldots a_n)=[0+a_1,0+a_2,\ldots 0+a_n]=[a_1,a_2,\ldots a_n]\) 等价于 \([0,a_2-a_1,\ldots a_n-a_1]\),\(F(0,a_2-a_1,\ldots a_n-a_1)=[a_2-a_1,a_3-a_1,\ldots a_n']\) 等价于 \([0,a_3-a_2,\ldots a_n'']\)。因为 \(a_n''\le a_n-a_2,a_1+a_2\ge 0+a_n\),得到 \(a_n''\le\frac{a_n}{2}\),即两次操作后最后一个数要么消失要么减小至少一半,故只用保留大约 \(2\log{a_n}\approx64\) 个(因为实际操作时我们需要略多保留几个)。

好像可以只保留 \(\text{44}\) 个?没太看懂,把图片放上来吧。

标签:题意,text,CF,MAD,答案,杂题,ldots,log
From: https://www.cnblogs.com/xx019/p/17291894.html

相关文章

  • 4月AT杂题
    AtCoderBeginnerContest296D-M<=ab题意:求最小的正整数,不小于\(m\),且能被表示为两个不大于\(n\)的正整数的数,不存在输出-1。\(n,m\le10^{12}\)。直接枚举\(a\),计算最小的满足\(ab\gem\)的\(b\),如果\(a>b\)则后面的情况一定是重复的。时间复杂度\(\text{O}(\sqr......
  • linux makefile make 中 extra_cflags 的作用。
    问题: 我在编译rtl8723bu  linux4.19 版本的时候,总是编译不过去,后来发现是extra_cflags的问题。  接下来看看网上的截图:关于extra_clags的知识。   再来看看gcc的参数。   ......
  • cfdm配套的maven版本和setting
    1、版本号3.5.22、setting.xml<?xmlversion="1.0"encoding="UTF-8"?><settingsxmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="......
  • cf-div.3-863d
    题目链接:https://codeforces.com/contest/1811/problem/D思维题,昨天被E题搞太久了,这题认真想的话应该可以出的。思路:不断循环,判断x和y是否在合法区间内。代码:#include<bits/stdc++.h>usingnamespacestd;constintN=2e5+10;longlongfib[70];voidsolve(){int......
  • CF1200E Compress Words 字符串哈希/双重哈希
    题目地址题意:给你若干个字符串,答案串初始为空。第i步将第i个字符串加到答案串的后面,但是尽量地去掉重复部分(即去掉一个最长的、是原答案串的后缀、也是第i个串的前缀的字符串),求最后得到的字符串。Solution字符串哈希练习题,做完之后对哈希的理解更深刻了因为求原字符串的......
  • CF 1807
    https://codeforces.com/contest/1807/problem/G1 easy-version 同《货币系统》背包f[j]每个数字合成的次数#include<iostream>#include<cstring>usingnamespacestd;constintM=5006,N=5006;intn,a[N],cnt[M],f[M];boolsolve(){ inti,j; me......
  • Hot Start Up (easy version) CF1799
    你有两个CPU,n个程序(m个类型)要运行。在不同条件下程序运行的时间不同,但连续运行的时间满足小于等于在不连续状态下运行的时间。  #include<iostream>#include<cstring>#include<queue>usingnamespacestd;constintN=5002;#defineintlonglong#definei......
  • cf-div.2-862d
    题目链接:https://codeforces.com/contest/1805/problem/D赛时没过的题。思路:首先发现一个性质:对于k来说,如果树上的一个点到树的直径的两个端点的距离都小于k的话,那么这个点一定是一个孤立点。证明:采用反证法:假设\(x,y\)为树的直径的两个端点,\(a,b\)为另外两个点,且有\(d[a][x]<k......
  • 4月杂题
    距离NOI2023还有109天,不能再沉溺于省选的成功了。开始更新博客!4月重点在whk上,不会更很多,为了调和whk的。1.[NOI2023联合省选]填数游戏考虑对于第\(i\)个数,把\(T_i\)中的两个数连边,特别地,只有一个数连自环。此时每个连通块只能是树/基环树。基环树是好做的,因......
  • [I]CF With AT
    EducationalCodeforcesRound127(RatedforDiv.2)A显然,长度\(2\)和\(3\)能拼出任意长度字符串,所以无解情况考虑有没有单独的长度为\(1\)的即可。/*byL1rs1ngzN1sLyr*/#include<bits/stdc++.h>constintAI=1e3+9;constintKI=1e6+2;constintCI=1e7+3;i......