codeforce
Lnn.
来吧
展开
-
2018 China Collegiate Programming Contest - Guilin Site(D/H/G/J/A)
前言:单人写了一下,只写出了4题,大概铜中的水准。疯狂wawawa。文章目录D. Bits ReverseH. Hamming DistanceG. Greatest Common DivisorJ. Stone GameA. Array Merge总结D. Bits Reverse题目传送门 题目类型:二进制、位运算 解析: ABC倒置为CBA其实就是隔一位交换、那么奇数位可以互换、偶数位可以互换;分别看一下奇偶位1数量是否一样,然后贪心取。 code:#include <b原创 2022-03-31 23:09:26 · 553 阅读 · 0 评论 -
Educational Codeforces Round 125 (Rated for Div. 2)E.Star MST
前言:歪比巴卜题目传送门 题目类型:dp、MST、完全图 解析: 1.定义dp[i][j]为i个点连接点1,最大边权<=j的方案数 2.原理:uv相连,边权Wuv >= max( Wu1 , Wv1 ) , 所以当前与1边权最大的点有清晰的计数方法 3.以小状态更新大状态:dp[i][j]更新dp[i+z][j+1],具体的,新增z个(与点1边权)为j+1的点,每个点连接(与1边权)<=j的点,贡献(k-j)^(z);z个点互连贡献(k-j) ^(z*(z-1)/2)原创 2022-03-28 23:29:44 · 347 阅读 · 0 评论 -
codeforce分数记录贴
历时11个月紫。紫名来的比预期晚太多了。最近准备昆明,多刷区域赛了,昆明打完准备冲橙。初赛:2021.4.16绿名:2021.4.29(13天)青名:2021.6.06(37天)蓝名:2021.6.20(14天)紫名:2022.3.22(9个月=_=)之前刷了蛮久1800-2200分段的题的,专门收藏下来每天写个三四道。...原创 2022-03-25 17:38:54 · 696 阅读 · 0 评论 -
2019-2020 ICPC, Asia Jakarta Regional Contest.E. Songwriter
前言:之前感觉做法有点突兀,一觉睡醒感觉又有点道理,记录一下题目传送门 题目类型:dp、贪心、逆向 解析: 由于题目要求序列字典序最小,那么最前面的我们需要尽可能的让他小。 但是,前面的选完无法保证后面的能够合法(已经有一点点逆向考虑的意思了)。那么我想知道第i个选在哪里才能保证后面的合法,由于相邻有限制关系,就需要知道i+1让后面合法的范围,同理需要知道i+2、i+3…n的范围,而n后面没有了,所以n的范围就是【L,R】,然后根据相邻关系倒推回去。再从前往后贪心。具体方式见代码 co原创 2022-03-15 12:52:24 · 368 阅读 · 0 评论 -
Codeforces Round #632 (Div. 2)F. Kate and imperfection(逆向、贪心、因子)
前言:用思维干掉一道2200的题,很开心。这里提供一个nlogn的逆向思维方法。题目传送门F. Kate and imperfection 题目类型:数学、因子、贪心、逆向思维。 解析:感觉从size从2到n不好想,反过来想一下,设g为最大的gcd,当size==n,此时g必定是n/2,想使答案缩小,就要把g的倍数删到只剩一个,贪心的想,从大的删。从n/g* g一直删到2*g。 复杂度方面,相当于把2~n/2的倍数都过一遍,略小于调和级数nlogn。 code:void solve(原创 2021-11-16 15:59:09 · 206 阅读 · 0 评论 -
Codeforces Round #641 (Div. 2)D. Orac and Medians
前言:好久没写题解了,虽然一直在刷,但是懒。。题目传送门D. Orac and Medians 题目类型:思维、中位数、转换。 解析:从最简单的想:选两个数,那么会转换为较小的数,只要有一个≥k的数在k旁边,就能整出2个连续k。那么就可以选两个k加一个其他数,一起变成k,重复就全部变成k了。 如果k旁边的数都小于k,那么可以让≥k的数靠近k。 设x≥k,问题就转化为整出连续的(≥2)x即可。那么要求3个数中要有2个≥k,4个中有3个,5个中有3个…可以发现3个中有2个是整出连续x的充分原创 2021-11-15 13:31:15 · 227 阅读 · 0 评论 -
这两个月的codeforce比赛情况(rating:1462-1786)
5月到7月中打的比较猛,场场不漏,七月初达到小巅峰,之后忙着校队暑训,而且出去玩了20天,这段时间状态一直下滑,不过最近两场恢复稳定,快开学了,继续向前冲。订个小目标:10月达到1900,整个紫名。年内达到2100,整个黄名。...原创 2021-08-17 15:25:26 · 367 阅读 · 4 评论 -
D.Digits
前言:思维题orz orz题目传送门B.Cobb 题目类型:暴力,思维。 解析:首先我们可以注意到k的取值很小,但是整体看下来无法从式子:i⋅j−k⋅(ai|aj)的特性来找到突破口。 于是我们考虑化简题目,去掉k,式子变为:i⋅j−(ai|aj),此时有一个结论,直接取i=n-1,j=n。 正确性:我们先假设i=n-1,j=n,因为ai <= n ,所以ai|aj - ai <= n,此时如果i变成n-2,对于(ixj)来说下降了n,而对于−(ai|aj)最多上升n,极限原创 2021-08-17 15:15:04 · 125 阅读 · 0 评论 -
Codeforces Round #675 (Div. 2)C. Bargain
前言:切题切到硬石头了,特来记录一下。题目传送门C. Bargain 题目类型:数学,递推。 解析:在分析题目之前,我们先引入这样的思想:分位求贡献。对于一个数,例如:5037489,它的第七位是9,对整个数的贡献是9*(10^0) = 9,第六位是8,对整个数的贡献是8*(10^1) = 80,以此类推。 下面我们逐步增加难度,对于5037489,我们删除其中的第二位到第五位,也就是374,可以发现374右边的数贡献不会变,而左边的数贡献缩小了10^3倍。 这样我们就得到了一个规律:原创 2021-05-24 11:05:53 · 433 阅读 · 2 评论 -
Codeforces Global Round 14 (A~E)
Codeforces Global Round 14前言:比赛时思路十分混乱不清晰。这场比赛思维性很强。差点爆零Rating:1299 -> 1266 掉分了555~~比赛时做出:A、B赛后想出:C、D、E。F、G我明天再看题解传送门:A. Phoenix and GoldB. Phoenix and PuzzleC. Phoenix and TowersD. Phoenix and SocksE. Phoenix and Computers...原创 2021-05-04 01:04:49 · 222 阅读 · 2 评论 -
E. Phoenix and Computers
前言:写了四个小时,推出巨多种dp式子,推了半天发现基本性质给忘掉了,然后重新推才搞定。人傻了。万物皆可DP时间复杂度为n2的DP。先上code:#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std; int n,mod;long long dp[405][202][2],mu[405][405]; i原创 2021-05-04 00:56:37 · 337 阅读 · 1 评论 -
D. Phoenix and Socks
前言:这题真滴水。D. Phoenix and Socks 题目类型:贪心 解析: 贪心思想,首先,能不花钱就不花钱,看看能不能左右匹配。 设对于左右不同颜色的直接匹配为硬匹配,花费2元。不花钱的处理完了之后,若存在L != R的情况,此时不能直接硬匹配。如果L多,就在1~L中找找,能不能改方向,不改颜色匹配。因为此时硬匹配不但要改颜色而且要改方向,不如先在L中看看能不能同方向匹配,能的话绝对是赚的,每匹配一对,最终少改一次颜色。 最后硬匹配即可。 code:#include原创 2021-05-04 00:25:32 · 780 阅读 · 2 评论 -
C. Phoenix and Towers
前言:其实就是合并果子。C. Phoenix and Towers 题目类型:贪心,优先队列 解析: 对于把n个数放到m个位置上的问题,我们可以先考虑简化版本:选m个数放到m个位置上。显然,m个数,任意两个数的差不超过x,即最大和最小的数差不超过x,那么这m个数就是原数组中最小的m个数。这一部分sort处理。 接下来考虑,在处理好的m个数中,添加一个数。那么现在有m+1个数,我们可以取其二相加,贪心一下,选两个最小值相加。不断重复这个操作。便得到正解。这部分用优先队列维护。 可以证明原创 2021-05-04 00:14:06 · 134 阅读 · 0 评论 -
B. Phoenix and Puzzle
前言:无前言。B. Phoenix and Puzzle题目类型:规律,构造。 解析:观察,可以用四个三角形的直角边组成一个基础正方体,也可以用两个三角形的斜边组成一个基础正方体,大正方体必定能由i*i个基础正方体得来,枚举即可,则大正方体有个三角形i.i.4或者i.i.2个三角形。 code#include <iostream>#include <cmath>#include <cstdio>#include <cstring>#in原创 2021-05-03 23:22:28 · 582 阅读 · 1 评论 -
A. Phoenix and Gold
前言:我是菜鸡,写这题被自己的脑洞折磨,写成dp,dfs,差点没写出来。A. Phoenix and Gold 题目类型:构造,模拟。 解析:题目中重要信息:数组中每个数都不一样,那么直接模拟,从1取到n,如果发现到i时,前缀和pre[i]=x,那么把i和没取过的换一下就行了,因为每个数都不一样,所以换完之后pre一定不等于x,如果等于,说明数组总和=x,输出no。 code:#include <iostream>#include <queue>#include原创 2021-05-03 23:14:39 · 164 阅读 · 0 评论 -
Codeforces Round #714 (Div. 2)
前言:切题记1。还是只做出一道…A. Array and Peaks 从2号开始,相邻的两个换一下就行。B. AND Sequences 题目:给出一个数组a,你可以对其任意排列,问达成a1&a2&…&ai=ai+1&ai+2&…&an(1 <= i <= n)的排列有多少种。 推导题,设a的前缀与为pre,后缀与为suf,则题目的含义变成pre[i] = suf[i+1],根据题意,从i等于1开始,有pre[1] = suf[2原创 2021-04-23 12:31:36 · 114 阅读 · 0 评论 -
Codeforces Round #717 (Div. 2)
前言:又只做出了一道题。。成绩:rating : 679–>913A. Tit for Tat 水题,字典序,前面尽量小,后面尽量大。B. AGAGA XOOORRR 题目:给出一个数组,可以对相邻两个数异或并以这个新数代替原来的两个数,问:能否使得数组所有元素相等(最少保留两个数)。 当时算错了,搞得我以为异或没有结合律。。。 因为异或有结合律,所以如果有解,最终得到的数组肯定是原数组的某种划分。但是划分要考虑分段的数量,每个段的内容,非常难搞。此时考虑异或的特性,两个数A异或原创 2021-04-22 19:49:42 · 548 阅读 · 0 评论 -
Codeforces Round #716 (Div. 2)
前言:第2次打Codeforces ,又是被虐…成绩:rating :??不知道在搞什么,系统分数重算中虽然也没多少分通过:A看了BC...无从下手A. Perfectly Imperfect Array 给出一个数组,问:是否存在这个数组的某个子序列,其所有元素 的积不是一个完美数(完美数:某个整数的平方)。 水题,若一个子序列的积B为完美数,假设B = A x A , 此时混进去 一个不完美数,则积变为BxC = Axsqrt(C) x Axsqrt(C) 就不完美啦,原创 2021-04-20 21:15:05 · 179 阅读 · 2 评论 -
Codeforces Round #715 (Div. 2)
Codeforces Round #715 (Div. 2)前言:第一次打Codeforces ,提交的时候甚至不知道c++用什么编译器。。好久没写博客了,最近会把cf的比赛,某些难懂的算法和nb的题记录一下。成绩:rating :0 -> 440通过:A、B看了C题,想了半天搞不出来,已12点,困,遂睡觉。A . Average Heightsb题 , 题目给出一个数组 , 要求进行顺序调换之后使得 “ 相邻两个数的平均数为整数 ” 这样的对数最多。那么就是所有奇数放前面,偶数原创 2021-04-18 17:43:33 · 249 阅读 · 2 评论