
挑战程序设计
文章平均质量分 66
NONE-C
24届双非本,自动驾驶算法工程师
勿忘初心:做有挑战的事
展开
-
2022年ccpc绵阳站E题 E. Hammer to Fall( 倒序dp + 分块优化)
简单的倒序dp 以及经典的分块原创 2022-11-23 22:32:13 · 1350 阅读 · 3 评论 -
2022广州站小计
大半夜睡不着,写个游记队伍战绩:四题铜首这场是相当罚做,也说不清楚是出题人的问题还是我的问题,大概率是我的。第一题,看了一眼题目,排列组合,没推出样例,主要是读题也没读出队伍不为空,索性扔给队友了。第二题,还是没读明白(所以自己不敢上手),口胡了个算法队友上机写了。第三题,简单博弈,与我无关,还在帮队友看第二题。第四题数位dp,没深想,主要是队友对于亦或一直比我敏感。我想着多整一道,看了树上背包,但是怎么想都是n3的,题解写利用树上背包技巧,哦打扰了,第一听过。第六题,图上构造,金牌题,算是完全想假了原创 2022-11-14 01:53:49 · 277 阅读 · 0 评论 -
Codeforces Round #672 (Div. 2)Pokémon Army(c1+c2)
题目传送门题目大意:给出一个序列 a,要求求出一个单调递增的下标序列 b,使得 ans=ab1−ab2+ab3−ab4+…ans=a_{b_1}-a_{b_2}+a_{b_3}-a_{b_4}+\dots ans=ab1−ab2+ab3−ab4+… 最大,输出这个最大值。接下来有 q 个操作,每个操作为一个二元组 (l,r),交换 al与ara_l 与 a_ral与ar。求出交换后最大的 ans。其中c1 c2的区别在于c1操作数为0解题思路:通过对式子的观察,我们会发现找原创 2022-04-10 16:47:47 · 264 阅读 · 0 评论 -
挑战程序设计:Codeforces Round #776 (Div. 3) G. Counting Shortcuts(最短路计数+分层DP)
题目传送门题目大意:给定一张无自环无重边的无向图G,以及起点和终点S和T,边权都为1,求从S到T的路径长度<=最短路长度+1的数量。解题思路由于边权长度恒定为1,因此最短路计数十分简单,利用bfs即可,前时间复杂度为稳定的O(2m)。无需使用spfa或者djstra。当我们获得最短路的数量后,我们就需要考虑对于某一点如何求其最短路+1的路径数量。对于点x,设其距离S的最短路长度为midis,有哪些点会更新该点的最短路+1的数量。假设点x与点y联通:当点y的dis>midis时,原创 2022-03-09 17:05:21 · 488 阅读 · 0 评论 -
挑战程序设计:Codeforces Round #773 (Div. 2) D. Repetitions Decoding (构造)
D. Repetitions Decoding (构造)题目传送门题目大意:给定一个长度为n的数组,通过操作op将其扩展为新的组数操作op:选定一个位置id,插入两个相同的数c新的数组:能将其分为几段或不分,要求每一段中,前半部分与后半部分相同.输出要求:不可行输出-1可行输出op操作数以及操作以及对新数组的划分解题思路赛场上并没有当成构造题来想,以为是结论题,于是只能罚坐了最终的这个数组长度一定为偶数个。且每种数都为偶数个。那么我们可以排除元素组中存在某数有奇数个的情况。那么剩原创 2022-03-08 16:39:08 · 297 阅读 · 0 评论 -
概率期望 绿豆蛙的归宿
绿豆蛙的归宿给出一个有向无环的连通图,起点为 1,终点为 N,每条边都有一个长度。数据保证从起点出发能够到达图中所有的点,图中所有的点也都能够到达终点。绿豆蛙从起点出发,走向终点。到达每一个顶点时,如果有 K 条离开该点的道路,绿豆蛙可以选择任意一条道路离开该点,并且走向每条路的概率为 1/K。现在绿豆蛙想知道,从起点走到终点所经过的路径总长度的期望是多少?输入格式第一行: 两个整数N,M,代表图中有 N 个点、M 条边。第二行到第 1+M 行: 每行 3 个整数 a,b,c代表从 a 到原创 2022-01-07 10:04:33 · 387 阅读 · 0 评论 -
Educational Codeforces Round 120 (Rated for Div. 2) D. Shuffle(组合数学+巧妙去重)
题目传送门题目大意给定一个01字符串和k,你可以选择包含k个1的连续子序列,打乱顺序,问该01字符串最多能有多少种。解题思路显然,当我们选择了一个长度为M的子串,且子串中包含K个1,那么该子串的排列方式可以通过组合数学的方式得出CMKC^K_MCMK 。朴素的想法,我们可以枚举每一种尽可能长的包含k个1的子序列,但是这之中包含了很多重复的。如何去重便是解题关键。我们可以看相邻的两个极长子序列:其中红色的部分就是重复的,当我们用两段极长的排列数减去红色部分的排列数,我们就得到了一段新的不含原创 2021-12-28 12:47:10 · 964 阅读 · 0 评论 -
ACM模板(从小白到ACMer的学习笔记)
这一个弱校大二,从小白到ACMer的学习笔记,主要时用于自己的理解和记录一些自己的模板,基本上囊括了铜牌水准的知识点。原创 2021-11-13 23:35:36 · 5237 阅读 · 0 评论 -
Codeforces Global Round 16 E. Buds Re-hanging
题目题目大意对于一棵树,定义了一个新的概念:芽。当一个结点的所有子节点都为叶子结点,该结点即为芽,但该结点不能为根结点。现在给定一棵树,可以对该树操作任意次数以下操作:将树的芽转移到其他结点。现要求构造叶子数最少的树,输出其叶子数。解题思路对单一的芽分析:当我们找到了一个芽,我们可以将其转移到另一个叶子处,使得树的叶子数减少。对整体分析:我们将树尽可能的拆成多个芽,如何重组能够使得叶子数最少?将芽放到叶子之后。当我们将一个结点数为x的芽放入到树中时我们可以减少一个叶子增加x-1个叶子,于原创 2021-09-17 18:59:30 · 108 阅读 · 0 评论 -
挑战程序设计5:Codeforces Round #742 (Div. 2) E - Non-Decreasing Dilemma 思维+线段树(不走寻常路)
题目题目传送门题目大意给定一个长度为n 的序列a=[a1,a2,......,an−1,an]a=[a_1,a_2,......,a_{n-1},a_{n}]a=[a1,a2,......,an−1,an]和q次操作。操作1:将axa_xax 更改为y。操作2:询问[l,r]的子序列中的为不降序列的。子序列:连续序列解题思路长度为1的不降序列 有1个子序列 1长度为2的不降序列 有3个子序列 1 + 2长度为3的不降序列 有6个子序列 1 + 2 + 3长度为4的不降序列 有原创 2021-09-07 18:37:27 · 116 阅读 · 0 评论 -
挑战程序设计4:Codeforces Round #738 (Div. 2) E. Mocha and Stars(dp+容斥原理)
题目题目传送门愉快的一天从补题开始!题目大意背包问题,给定n个区间,可以从每个区间中选定一个数,满足以下条件:n个数的总和<=m。n个数的gcd==1。求方案数n<=50,m<=105n<=50,m<=10^{5}n<=50,m<=105解题思路先来看一个条件:从n个区间中选定n个数,n个数组成的数小于m,求方案数。去掉区间就是一个背包问题:for(int i=1;i<=n;i++){ for(int j=w[i];j<=原创 2021-08-22 14:07:12 · 352 阅读 · 0 评论 -
挑战程序设计3:F1+F2 Nearest Beautiful Number(贪心,数位搜索)
题目题目传送门题目大意给定一个数N,要求一个数S,要求:S>=NS>=NS>=NS中出现的数字的种类<=kS_{中出现的数字的种类}<=kS中出现的数字的种类<=kk<10,10000组样例,N<=1e9k<10,10000组样例,N<=1e9k<10,10000组样例,N<=1e9未能过题,但值得思考的代码和思路首先我们可以通过确定哪几位为最终答案的所包含的数字,即先确定答案的组成。一共有C101+C102+…原创 2021-08-21 17:58:03 · 95 阅读 · 0 评论 -
挑战程序设计:1 D - Ezzat and Grid(离散化线段树线性)
题目传送门题目大意给定n个长度为1e9的01串,由于数据过大,所以采用区间的方式给定m, l ,r表示第m个串的[l,r]为1。定义一个美丽的序列,对于相邻的两个01串,存在同一位置两者都为1。问最少删去多少个串使得序列美丽,输出方案。解题思路先忽视数据范围,求最长的方案,可以采用dp的思想,dp[i]表示以i串为结尾的最长的长度,通过暴力的方法来解决问题:枚举当前串每一个为1的位置,该串可以继承在该位置为1的子串的最长长度(n∗n∗len)(n*n*len)(n∗n∗len)。时间原创 2021-08-19 11:29:58 · 147 阅读 · 0 评论