![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
思维
文章平均质量分 71
Jozky86
这个作者很懒,什么都没留下…
展开
-
P4064 [JXOI2017]加法
P4064 [JXOI2017]加法题意:题解:要求找最小值尽可能大,很明显二分,现在是如何判断二分出来的答案的正确性对于一个二分出来的答案mid,要求对k个区间进行操作后,最小值大于mid,我们可以这样实现,对于第i位,(前i-1位已经处理完毕,且前i-1位均大于等于mid),此时我们要找的区间是要包含第i位的,也就是区间的左端点一定小于等于i,而对于右端点,一定是越远越好,右端点越远,就可以让更多的数增加,更容易使得所有数都大于等于mid怎么才能实现合理选取区间这个操作,我们用一个最大堆,每次原创 2022-03-02 22:03:59 · 572 阅读 · 0 评论 -
CF1271D Portals
CF1271D Portals题意:题意选自洛谷题解:首先要先发现性质:对于任何一个城堡u,如果要往u驻军,则在攻占编号最大的能向u行军的城堡后再驻军,答案一定不会变劣。你想想,如果后面有编号更大的点可以前往u,那我们就没有必要再之前派军驻扎,如果派军反而还会少一个士兵。因此对于一个城堡,我们只需要保存编号最大的城堡到他的行军路线。一开始每个城堡到其编号最大的城堡是其本身现在考虑dp转移,感觉本题情况非常多又复杂。我们可以规整规整,因为攻打顺序是1到n,顺序已经给好了,那么对于第i个点,我们可以原创 2021-11-01 20:07:38 · 274 阅读 · 0 评论 -
CF455B A Lot of Games
CF455B A Lot of Games题意:Andrew,Fedor和Alex是三个善于创造的人。现在,他们发明了一种字符串双人游戏。给出n个非空字符串。在游戏中,两位玩家一起建造一个单词。开始时,单词是一个空字符串。两位玩家轮流操作。一位玩家在他的回合中,必须在单词的后面添加一个字母,使得添加后的单词是n个字符串中至少一个的前缀。当一位玩家不能操作时,他就输掉了游戏。Andrew和Alex决定玩k次。上一局的负者是下一局的先手。他们决定,在最后一局中获胜的人获得整场游戏的胜利。Andrew和A原创 2021-10-31 22:14:35 · 1947 阅读 · 0 评论 -
妄想集合(牛客练习赛90)
妄想集合(牛客练习赛90)题意:开始有 n 个可重集合,开始时每一个集合中都有一个数,有 m 个操作。Quant l r x\text{Quant l r x}Quant l r x:往编号在 l∼rl\sim rl∼r 的每个集合中加入一个数 x。Ask l r\text{Ask l r}Ask l r:询问能否从 l∼rl\sim rl∼r的集合中取出三个数使得他们能作为边长组成一个三角形(即最小原创 2021-10-30 15:18:50 · 195 阅读 · 0 评论 -
CF662C Binary Table
CF662C Binary Table题意:有一个 n 行 m 列的表格,每个元素都是 0/1 ,每次操作可以选择一行或一列,把 0/1 翻转,即把 0 换为 1 ,把 1 换为 0 。请问经过若干次操作后,表格中最少有多少个 1n<=20,m<=1e5题解:参考洛谷题解第一篇,讲的太详细了因为行很小(n<=20),列很大(m<=1e5),因为我们可以考虑枚举反转了哪些行。设X表示翻转了哪些行(X是一个整数,其二进制表示翻转的状态)对于任意一列,设第i列的状态为SiS原创 2021-10-27 21:51:24 · 163 阅读 · 0 评论 -
ADPC2-D 分配颜色
ADPC2-D 分配颜色题意:n*m的表格,一开始都是红色的,现在可以进行p次操作1和q次操作2操作1: 把某一行的同学进行取反操作:即红色变为蓝色,蓝色变成红色。操作2: 把某一列的同学进行取反操作:即红色变为蓝色,蓝色变成红色。问多少种方案满足:执行完所有操作1和操作2之后,蓝色恰好有t个若两个方案中的某一行或列被小A进行操作的次数不同时,则视为两种不同的方案。题解:题目给的是取反操作,意味着成对的相同操作是相互抵消的,因为题目问有多少种方案满足,我们可以这样去设方案:设最终实际效果下有原创 2021-10-24 20:15:11 · 382 阅读 · 1 评论 -
ADPC2-G 希望
希望题意:有A,B两棵树,对于一个1到n的全排列a[i],让树A中的点i和树B的节点a[i]连一条边,希望指数:两棵树和新加入的边构成的图中,环长为m的环的个数。数组a[]可以任意交换位置,且任意,随机,不限次数的交换。计算出期望情况下,两棵树的希望指数n≤300,3≤m≤7题解:期望=概率 * 对应的权值在本题中概率肯定是1n!\frac{1}{n!}n!1,因此需要求所有情况下环长为m的环的个数我们开始找环的分布情况,一定是左侧的点和右侧的点通过之间加的点形成环,如图,图中环长为6且原创 2021-10-24 19:53:45 · 387 阅读 · 0 评论 -
CF1208D Restore Permutation
CF1208D Restore Permutation题意:现在有一个从1到n的一个全排列,但是你不知道这个排列到底是什么,但是你有一个sum[i],其中sum[i]表示∑j=1i−1(aj<ai)?aj:0∑_{j=1}^{i−1}(a_j<a_i)?a_j:0∑j=1i−1(aj<ai)?aj:0,现在给你sum数组,让你求出这个排列a题解:如果sum[i]为0,说明在位置i前面的所有数都比他大,因为排列a是1到n的全排列,也就是说对于数字1来说,其sum[i]一定为0原创 2021-10-23 11:38:07 · 149 阅读 · 0 评论 -
CF1550F Jumping Around
CF1550F Jumping Around题意:数轴上顺次有n个点a1<a2<⋯<an。数轴上顺次有 n 个点 a_1 < a_2 < \cdots < a_n。数轴上顺次有n个点a1<a2<⋯<an。有一只小青蛙,初始时在as处。小青蛙有两个参数:步长d和灵活程度k。其中,步长d是确定的,而灵活程度k是可以调整的有一只小青蛙,初始时在 a_s处。小青蛙有两个参数:步长 d 和灵活程度 k。其中,步长 d 是确定的,而灵活程度 k 是可以调原创 2021-10-20 19:59:05 · 137 阅读 · 0 评论 -
Bigraph Extension
Bigraph Extension题意:有2n个点,n为偶数,n个点属于集合A,n个点属于集合B。起初在途中有m个无向边,边的两侧端点分别在两个集合里,任何两个边都没有公共交点。现在你可以执行任意次操作:在集合A,B中分别选一个点,这两个点没有直接的边相连,现在给这两个点相连在操作之后,对于集合A中任意一个点,集合B中任意一个点,需要满足:这两个点是联通的这两个点的最长简单路径是严格大于n的问最少的加边数量,并按照最小字典序输出连边方案题解:构造题,不过这个题的结论其实好猜,具体证明就麻原创 2021-10-19 21:57:35 · 142 阅读 · 0 评论 -
Jumping Monkey(CCPC网络赛重赛)
Jumping Monkey(CCPC网络赛重赛)题意:n个点的树,每个点有一个不同的值aia_iai.现在一个猴子在树上,这个猴子从点u跳到点v当且仅当ava_vav是u到v最短路径上的最大值。如果没有点能跳将停止。对于k∈[1,n],计算猴子在点k开始最多能跳的点数量题解:每次跳跃点u,u要是路径上的最大值。如果点权最大的那个节点(设为u),显然无论从哪里开始跳,都可以直接到达u,且无法越过u到达其他点,到达u后也不能再跳向其他结点。也就是说u是最优方案中最后一个到达的点。那u的位置已经被原创 2021-10-19 20:47:54 · 259 阅读 · 0 评论 -
CF1550D Excellent Arrays(完全会了更新)
CF1550D Excellent Arrays题意:定义一个长度为n的整数序列a是好的仅当对于任意整数i∈[1,n],都有ai!=ia_i !=iai!=i设F(a)等于满足1<=i<j<=n,ai+aj=i+ja_i+a_j=i+jai+aj=i+j的(i,j)对数我们定义一个长度为n的序列a是完美的,仅当:a是好的对于任意整数i∈[1,n],l<=ai<=rl<=a_i<=rl<=ai<=rF(a)的值是所有好的,长度为n的序原创 2021-10-17 20:54:06 · 128 阅读 · 0 评论 -
CF1486D Max Median
CF1486D Max Median题意:给定一个长度为 n 的序列 a,求所有长度 ≥k 的连续子序列中,中位数的最大值。定义中位数是一个长度为 x 的序列升序排序后的第 ⌊x+12⌋\left\lfloor\frac{x+1}{2}\right\rfloor⌊2x+1⌋位的值。题解:我第一反应是二分去判断,但是不知道该怎么判断中位数这个条件题目中定义的中位数的排序后最中间的数,假设中位数为mid,也就是说有一半以上的数>=mid,那二分不就好判断了,我们二分mid值,然后将所有小于mi原创 2021-10-13 12:41:42 · 126 阅读 · 0 评论 -
CF1497D Genius
CF1497D Genius题意:n个问题从i到n编号,第i个问题给出的ci=2i,tagi,sic_i=2^i,tag_i,s_ici=2i,tagi,si解决问题i后解决问题j条件是:IQ<|ci−cjc_i-c_jci−cj|,同时获得|si−sjs_i-s_jsi−sj|分问题解决得次数和顺序不受限制一开始IQ=0,求最高可获得得分数内存限制31.25MB,大致可以开1e7的数组题解:很明显动态规划,按照一般思路设dp[i][j]:上一次是第i个问题,本次是第j个原创 2021-10-12 22:22:02 · 125 阅读 · 0 评论 -
CF1497E2 Square-free division (hard version)
CF1497E2 Square-free division (hard version)题意:数组 a 由 n 个正整数构成。你需要将它们分割成最小数量的连续子段,使得每一个子段中的任意两个数(不同位置)的乘积不为完全平方数。除此之外,你被允许在分割之前进行最多 k 次修改操作。在一次修改操作中,你可以选择数组中的某个位置的数,将该位置的数变为任意正整数。请问连续子段的最小数量是多少(在最多 k 次操作后)?题解:本题多了修改操作,一开始部分和E1情况一样,还是先对数组a[]a[]a[]进行操原创 2021-10-12 20:18:05 · 152 阅读 · 0 评论 -
CF1497E1 Square-free division (easy version)
CF1497E1 Square-free division (easy version)题意:这是简单版,此题中 k=0给出一串长为 n 的序列 a1,a2,a3...ana_1,a_2,a_3...a_na1,a2,a3...an把它分成尽量少的块使每一块中任意两数的乘积不是一个完全平方数。输出最少的块数。题解:本题是不涉及修改的其实好想,对于所有数质因子分解,如果任意两个数的乘积是一个完全平方数,两个数的质因子合并后,均为偶数个,因为偶数个就可以被开方掉,说明是平方数那么我们可原创 2021-10-12 19:53:59 · 90 阅读 · 0 评论 -
CF1486B Eastern Exhibition
CF1486B Eastern Exhibition题意:二维平面上有 n 个点,要找一个点,使得所有点到它的曼哈顿距离( x 和 y 的坐标差距之和)之和最小。请问有几个满足该要求的点?题解:我们先考虑一维的情况,在一个数轴上,存在n个点,现在要找一个为位置pos,使得pos到其他点的距离和最小?很显然,如果n为奇数,我们就选最中间的点为pos,如果n为偶数,那就是最中间两个数的中位数现在问题变成二维的了,现在要找点(x,y)到其他点的距离和最小,x和y我们是可以分开考虑的,因为x只与横坐标有原创 2021-10-11 22:36:11 · 78 阅读 · 0 评论 -
E - Flow Gym - 102471E
E - Flow Gym - 102471E题意:n个点,m条边,从点1到点n有k条相同长度的路径,每个边都有对应的容量,你可以进行任意次操作,每次将一个边的容量-1,将另一个边的容量+1,问最少操作多少次可以使得跑最大流的结果最大题解:很容易发现我们可以直接计算出最大流的最大值,因为我们有所有边的容量,极端操作我们可以将所有边的容量全部分配到一条路上,也就是最大流的最大值sum=所有流量综合一条路径的长度sum=\frac{所有流量综合}{一条路径的长度}sum=一条路径的长度所有流量综合如果原创 2021-10-07 21:38:41 · 149 阅读 · 0 评论 -
King Gym - 102471H
King Gym - 102471H题意:给你一个数组b,让你找到一个最长的最长的king子序列,如果长度大于等于n/2,输出长度值,否则输出-1一个序列(a1,a2,...,an)(a_{1},a_{2},...,a_{n})(a1,a2,...,an)是king序列当且仅当存在一个整数q,1<=q<p,对于所有的i∈[2,n],qai−1≡ai(mod p)qa_{i-1}≡a_{i}(\mod p)qai−1≡ai(modp)题解:qai−1≡ai(mod p)qa原创 2021-10-07 20:50:55 · 236 阅读 · 0 评论 -
CF1592D Hemose in ICPC ?
CF1592D Hemose in ICPC ?题意:给你一棵n个节点的树,定义dis(a,b)=a,b两点之间路径的gcd的最大值最多可以询问12次,每次询问给出一个点集合,系统返回当前点集的所有点对中的最大Dist,最终需要输出a,b两点,求最大化的Dist(a,b)题解:Dist的求法是路径gcd,而gcd是只减不增的,所以最大化的Dist,最大的gcd其实就是求最大的边权现在的问题就是让你通过询问找到最大的边因为每次我们可以询问一个点集,树上属实不方便,我们可以通过欧拉序(注意欧拉序写原创 2021-10-06 22:42:29 · 141 阅读 · 0 评论 -
CF1592E Bored Bakry
CF1592E Bored Bakry题意:给你长度为n的数组a,现在定义一段区间[l,r]为good,如果al&al+1&...&ar>al⊕al+1⊕...⊕ara_{l}\& a_{l+1}\&...\&a_{r}>a_{l}⊕a_{l+1}⊕...⊕a_{r}al&al+1&...&ar>al⊕al+1⊕...⊕ar请输出good区间的最长长度题解:我们先去考虑&与⊕的区别,满足情原创 2021-10-06 22:09:14 · 209 阅读 · 0 评论 -
CF1149B Three Religions
CF1149B Three Religions题意:给定长度为 n 的母串和三个子串s1,s2,s3s_1,s_2,s_3s1,s2,s3 。初始时子串均为空。有 q 次询问。你需要支持两种操作:向某个子串末尾添加一个字母,或者删去某个子串末尾的字母。在每次操作后,你需要回答,是否能从母串中分离出三个不相交的子序列(不改变字符原有顺序),满足这三个子序列恰好是s1,s2,s3s_1,s_2,s_3s1,s2,s3在任意时刻,s1,s2,s3s_1,s_2,s_3s1,s2,s3的长度原创 2021-10-06 11:43:52 · 112 阅读 · 0 评论 -
CF1063C Dwarves, Hats and Extrasensory Abilities
CF1063C Dwarves, Hats and Extrasensory Abilities题意:首先题目会给出 n ,表示要输入多少点。 然后你输出n 个点的坐标,每输出一个点会告诉你这个点的颜色是黑色或者白色。 最后你需要输出两个点的坐标代表一条直线,这条直线能够将你刚刚给出的点分成两份,一份全都是黑色的点,另一份全都是白色的点。所有的点不能重叠,所有点不能和最后输出的直线重叠,每个点的黑白是随机给出的,你需要保证你输出的数据有解并输出解。题解:基本上交互都跟二分有关系我一开始一点头绪都原创 2021-10-05 21:51:05 · 105 阅读 · 0 评论 -
CF1063A Oh Those Palindromes
CF1063A Oh Those Palindromes题意:一个非空字符串叫做回文串。如果它从左到右,从右到左读相同,那么它就是回文串。 例如,“ABCBA”,“A”和“ABBA”都是回文串,而“ABAB”和“XY”则不是。如果可以通过从字符串的开头和结尾删除一些(可能为零)字符来从该字符串获得新字符串, 则新字符串叫做另一个字符串的子字符串。 例如,“ABC”、“AB”和“C”是字符串“ABC”的子串,而“AC”和“D”不是。我们把字符串的“回文计数”定义为回文的子串个数。 例如,字符串“aaa原创 2021-10-05 20:24:49 · 88 阅读 · 0 评论 -
CF1479C Continuous City
CF1479C Continuous City题意:给定 L, R. 构造一个有向带权图, 其中点数不大于 32, 且所有边都是从较小的点指向较大的点. 假设这个有向图有 n 个点, 你需要保证从 1到n 的所有路径的权值都在 [L, R]内且不存在 x∈[L,R], 使得不存在或存在多于一条从 1 到 n 的路径权值为 x, 或者断言这是不可能的.题解:点数不超过32,其实就在往二进制的方向引,但是想了半天也没头绪看了海量题解,终于悟出一些参考文章首先无论如何都有解,log2(1e6)=19原创 2021-10-03 19:09:05 · 163 阅读 · 0 评论 -
CF1479B Painting the Array
CF1479B1 Painting the Array ICF1479B1 Painting the Array II题意:本题与 CF1480D2 的唯一区别是本题询问最大可能解.给定一个数组a,你将ai染为bi色,其中b是由你指定的一个01数组.将a数组中被染成0色的数字取出来并依在a中出现的顺序排列,组成数组a(0).同理,将a数组中被染成1色的数字取出来并依在a中出现的顺序排列,组成数组a(1).给定一个数组 a, 你将 a_i染为 b_i色, 其中 b 是由你指定的一个 01 数组. 将原创 2021-10-03 11:27:15 · 130 阅读 · 0 评论 -
CF1479A Searching Local Minimum
CF1479A Searching Local Minimum题意:题解:先说结论:若l,r满足:al−1>al,ar<ar+1a_{l-1}>a_{l},a_{r}<a_{r+1}al−1>al,ar<ar+1al,al+1,....,ara_{l},a_{l+1},....,a_{r}al,al+1,....,ar互不相同则一定又一个满足题目条件的k会出现在区间[l,r]中,这就是我们要找的区间现在我们开始证明:利用反证法:假设对原创 2021-10-03 11:13:41 · 106 阅读 · 0 评论 -
CF1458C Latin Square
CF1458C Latin Square题意:T 组测试数据,每次给一个 n×nn\times nn×n 的矩阵,每行每列都是个 1→n1\to n1→n 的排列。有 m 次操作,如果是 UDLR 就是要把整个矩阵每行/每列往一个方向循环移动一格。如果是 IC,就是把矩阵每行/每列变成原来的逆排列。求最后的矩阵。逆排序定义:一个序列p1,p2,....,pnp_{1},p_{2},....,p_{n}p1,p2,....,pn的逆排序是q1,q2,...qnq_{1},q_{2},...q_{原创 2021-10-02 16:30:37 · 115 阅读 · 0 评论 -
CF1548B Integers Have Friends
CF1548B Integers Have Friends题意:给定 n 和一个长度为 n 的数组 a,求一个最长的区间 [l,r]\left[l,r\right][l,r],使得存在 m≥2和km\geq 2 和 km≥2和k,对于所有 l≤i≤rl\leq i\leq rl≤i≤r,ai≡k(mod m)a_{i}≡k(\mod m)ai≡k(modm)(即区间内所有数对 m 取模余数相等),输出最长区间长度(区间长度定义为 r-l+1)。有多组测试数据。题解:题目问所有数对m取模余数相等原创 2021-10-02 14:43:40 · 197 阅读 · 0 评论 -
牛客练习赛89——牛牛小数点(未解决)
牛牛小数点题意:题解:本题先说结论:对于一个数x=2a∗5b∗px=2^a*5^b*px=2a∗5b∗p如果p=1,也就是质因子只有2和5,则x是不循环小数,即f(x)=0如果p!=1,则x是循环的,且循环开始于小数点后第1+max{p2,p5p_{2},p_{5}p2,p5}位,其中p2p_{2}p2表示质因子分解形式下2的指数项,p5p_{5}p5表示质因子分解下5的指数项。即f(x)=1+max{p2,p5}f(x)=1+max\{p_{2},p_{5}\}f(x)=1+max原创 2021-10-02 11:52:35 · 100 阅读 · 0 评论 -
CF1305F Kuroni and the Punishment
CF1305F Kuroni and the Punishment题意:给定 n 个数。每次可以选择将一个数 +1 或 -1 。求至少多少次操作使得整个序列都是正数且全部元素的 gcd>1 。n<=2e5,ai<=1012n<=2e5,a_{i}<=10^{12}n<=2e5,ai<=1012题解:首先不难想到,我们可以让所有数变成偶数,这样gcd为2,这样的话,每个数的操作次数小于等于1,这是答案的上界n,也就是最后的答案只会比n优,不可能比n劣由上原创 2021-09-30 22:42:02 · 109 阅读 · 0 评论 -
CF1305D Kuroni and the Celebration
CF1305D Kuroni and the Celebration题意:给你一棵有 n 个节点的树。对于每次询问,提交两个点,评测机会返回这两个点的 LCA。求树根。询问格式为 ? u v,此时评测机会返回 u 和 v 的 LCA。提交格式为 ! x,表示你得出树根为点 x。你可以最多询问 ⌊n2⌋\lfloor \frac{n}{2}\rfloor⌊2n⌋次题解:如果一个叶子和另一个点的LCA是这个叶子,那么这个叶子一定为根否则,这个叶子一定不是根所以我们可以每次询问两个叶子的LCA原创 2021-09-30 22:12:29 · 104 阅读 · 0 评论 -
CF1548A Web of Lies
CF1548A Web of Lies题意:题解:第一感觉是先建边然后跑dfs,但是看数据范围肯定不对,现在我们开始考虑其中的性质对于第三个操作,我们是要将所有>=2的连通块进行判断的,我们考虑对于编号为x的点,什么情况下不会被删除?如果点x自己一个,那就是安全的如果点x所连的所有点y,y均小于x,那么y会被全部删光,最后剩下x,x还是安全的如果点x所连的所有点y,存在一个点y大于x,那么x就被删除总结下,如果存在有比自己编号大的点连接自己,那么自己就会被删除,所以我们无需建边,原创 2021-09-29 22:32:05 · 173 阅读 · 0 评论 -
cf1453B. Suffix Operations
cf1453B. Suffix Operations题意:给你一个整数序列,其中有n个元素。你需要对这个序列进行操作。1 在所有操作开始前,你可以选择一个数,并修改他的值,这个值你可以自己定。本操作无花费。2 选择一个下标i,将所有下标不小于i的元素加上一个整数x,x可以你自己定。这次操作花费为x的绝对值。本题给你一个序列,要你求要将这个序列中的元素统一,至少花费多少。题解:因为修改只有一次,我们先不考虑,如果没有修改的话,答案就是所有相邻两数差的绝对值之和。为什么?我们的操作是将的下标大于原创 2021-09-29 20:52:13 · 83 阅读 · 0 评论 -
J Red-Black Paths(ICPC网络赛第一场)
J Red-Black Paths(ICPC网络赛第一场)题意:有n个点,m次操作,有三种操作:1 u v:从u向v建一个有向边2 u:将点u染成红色3 u: 将点u染成黑色4 查询最新生成的红黑边的异或值红黑边的值为:∑1<=i<=length(path)ni∗i\sum_{1<=i<=length(path)}n_{i}*i∑1<=i<=length(path)ni∗i题解:代码:#include <bits/stdc++.h>#原创 2021-09-23 15:44:57 · 215 阅读 · 0 评论 -
CF1039C Network Safety
CF1039C Network Safety题意:题解:如果我们同时选中a,b两个点,无论异或什么值,都不会影响图的安全性,因为图本来就是安全的破坏图的安全性只有一种情况,那就是选了a,没选b,且病毒为x,满足a⊕x=b根据异或的性质,x=a⊕b,那么也就说要让图不安全的方法就是只选两个端点中的一个且病毒x为两个端点的异或值。那么当病毒x=a⊕b时,我们就一定要选AB两点,我们把AB看做一个点,这样我们将相同边权的看作点,且合并起来如果合并完后有k个点,说明这k个点之间的异或值都不为x,也就原创 2021-09-22 12:09:32 · 74 阅读 · 0 评论 -
CF1245D Shichikuji and Power Grid
CF1245D Shichikuji and Power Grid题意:已知一个平面上有 n 个城市,需要个 n 个城市均通上电一个城市有电,必须在这个城市有发电站或者和一个有电的城市用电缆相连在一个城市建造发电站的代价是 c[i]i 和 j两个城市相连的代价是 k[i]+k[j] 乘上两者的曼哈顿距离求最小代价的方案输入:第一行为城市个数下面是每个城市的坐标下面是建造发电站的代价 c[i]下面是每个城市连线的系数 k[i]输出:一个为最小代价建造发电站的城市数,和每个城市连线原创 2021-09-20 23:49:00 · 210 阅读 · 0 评论 -
又一最大子段和
又一最大子段和(牛客小白月赛38 )题意:我们将一个数列{an}的最大字段和的值记为S(a),现在你可以对进行若干次操作,每次操作,你可以选择数列中的一个数字,将其改为[−10100,10100][-10^{100},10^{100}][−10100,10100]之间的任意一个数。现在,给定整数x,求最少操作多少次可以使得S(a)=x最大子段和是指选出数列中连续且非空的一段使得这段的和最大。题解:若S(a)=x,操作次数就是0若S(a)<x,操作次数就是1,因为我们可以让最大子段和中的某一原创 2021-09-20 14:46:29 · 83 阅读 · 0 评论 -
P1131 [ZJOI2007] 时态同步
P1131 [ZJOI2007] 时态同步题意:有一颗树,有一个点是激发器,从这个点开始可以产生一个激励电流,通过导线传向每一个它所连接的节点,经过一个边的花费为w[i],你有一个道具,每用一次可以让一个边的花费+1,问最少操作多少次,使得到所有叶子节点的花费一样题解:我们只能延长边权,不能缩短边权我们可以从最深的子树开始,把所有子节点调整到同一深度,再到上一层,调整上一层的树枝为什么这样最优?因为这样我们会往后调整靠根节点的树枝,而调整靠根节点的树枝,会让其下所有叶子节点同时移动,这样可以做到原创 2021-09-17 22:24:44 · 237 阅读 · 0 评论 -
牛客练习赛55E树
牛客练习赛55E树题意:你有一颗大小为n 的树,点从 1 到 n 标号。设dis(x,y)表示 x 到 y 的距离。求∑i=1n∑j=1ndis2(i,j)\sum_{i=1}^{n}\sum_{j=1}^{n}dis^2(i,j)∑i=1n∑j=1ndis2(i,j)对998244353取模的结果题解:我们以1为根,设dep[i]表示第i个点的深度dis(x,y)=dep[x]+dep[y]−2dep[lca(x,y)]dis(x,y)=dep[x]+dep[y]-2dep[lca(x,原创 2021-09-17 19:14:58 · 143 阅读 · 0 评论