![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
icpc
文章平均质量分 71
钟钟终
知耻而后勇,脚踏实地
展开
-
icpc刷题记录
尺取法,理清思路很重要。1.将各个人的分数从大到小排序。将每个值作为本次枚举的大值,往后枚举看都多少个满足要求的值。2.枚举的大值条件是:必须大于等于每个人获取最低分的最大值。longlong树上dp,求三个块内的点两两互相到达的距离。longlong。原创 2022-12-02 22:22:31 · 523 阅读 · 0 评论 -
2022绵阳+dp经典问题
使得你获得的分数y尽可能地逼近整个游戏总分的均值。这一点我是想到的!!!为什么没立刻反应到?对于参数a值进行1~n的枚举;参数b进行二分;参数c便用n去减。longlong::(false)一个签到题。如果使用vector的删除操作会比较麻烦,用两个vector不断更新来回赋值也可做到筛选的操作。longlong(::(false),.tie(0),.tie(0))1.矩阵连乘,求最小计算次数longlong(::(false。原创 2022-11-24 22:01:30 · 702 阅读 · 0 评论 -
2022CCPC绵阳站A+广东站C
1.看到k的范围只有10,设计状态dp[round][numa][numb]:在已经进行i轮的基础上,A选了numa个英雄,B选了numb个英雄时的分数。3.状态转移:由于从0开始累计操作,因此偶数轮A行动,奇数轮B行动。一个小的注意点,当A行动完,B行动的时候,需要通过(轮数+1)/2才是A行动的轮数。当时vp时写了个贪心,wa6了,就想到可能是dp了。1.各个点到点t的距离相同,需要从终点反向遍历,合并点集。最后几天了,虽然一堆考试没复习,压力山大,不过都是小事。这几次的vp我们发挥的还可以,稳铜了。原创 2022-11-22 22:27:25 · 905 阅读 · 1 评论 -
2021济南站
2.本题的一个关键点。对大数的取模化简,不能使用double,可能会爆,还受精度影响。1.首先要根据公式推出来,矩阵行列式只受对角线元素影响。如果数理基础好一眼看出。3.高斯消元,保证对角线上的元素不为0.行变换注意将矩阵前加一个负号。复习了一下set中find函数的用法,时间复杂度为log(n)关键点:并查集对于一段区间进行合并跳转的操作。打表找规律写的,数理基础不好。原创 2022-11-21 20:55:54 · 478 阅读 · 1 评论 -
拓扑结构+差分约束+SLF最长路+扩欧
997m过了,超时了就多交几次就可能过吧……可以把vector改成链式前向行,vector改为二维数组,会优化100ms左右。1.两个未知量可能想到扩欧,本题是毫不相关。而且本题三个变量,需要枚举出sum[n]的值。可得出方程:r=d-k%d,也就是说k需要减去这样一个数r才会是d的倍数。令k=a|b,此时k不一定是d的倍数,我们只需要找到一个k是d的倍数。很容易想到要构造的那个数肯定是d的倍数,同时二进制a、b中出现的1.倦怠,但还不能休息,我的牌还没有到手~,由于低位的1会重复,因此左移30位。原创 2022-11-17 20:51:17 · 375 阅读 · 0 评论 -
ICPC+CCPC写题日记~
最近做题总是差这么一点点,但是acm不会接受任何差的这一点点,过不了就是过不了。没什么好说的,加紧练习。思路:记录每个数字到i位出现的次数。对总和进行枚举2~200.如果本次枚举的需要的数字的位序。a看能不能找到b,然后去check数字b,看能否消去计算出的b和删去的数字个数是否一致。4.本题思路:对于数字a的选取有2的lx次方种可能,利用公式x。卡住的点,脑瘫简直。数据根本据处理不出来,应该边乘边进行取模。3.一个厉害的技巧:对于一个数字选取任意位的代码实现,有2。2019银川站 F题。原创 2022-11-14 19:54:40 · 470 阅读 · 2 评论 -
22CCPC威海+思维
若g为奇数,在最后一个1划掉后,s2全部变为1,进行如下三次操作:对s1的1~n进行翻转,再对1 ~1、2 ~n进行翻转。对于5个点的判断:方法很多,都很难敲,看到个很巧妙的方法。1.如果两个字符串的相同位置既存在值相同的情况,也存在值不同的情况,那么肯定是无解的。1.使用map存下所有的限制条件,单独筛选出出现次数为0的数字存到数组中记为id。在题数没积累到一定量时,一眼是看不出来的,需要安静下来去分析,浮躁很难做出题来。思路还算简单,只有出现次数从0开始连续向上的数,才会卡住一些数让他们不能递减。原创 2022-11-10 23:03:17 · 699 阅读 · 1 评论 -
树状数组专题
接下里复习专题:数据结构、图论、数学(大致过一遍经典题型)出了跟队友vp,剩下时间自己找icpc进行vp,两天一场加上补题我不会在这里倒下的,得不到想要的绝不轻易松手P3608 [USACO17JAN]Balanced Photo G板子题:两次建树,分别同统计出左端小于等于a[i]-1的数目,再用总的数目i减去自身和小于a[i]的数目;同理右端也一样。#include <bits/stdc++.h>#define endl '\n'#define int long long#d原创 2022-11-07 23:24:59 · 239 阅读 · 1 评论 -
高斯消元+叉积求面积+记忆化搜索
如果对应位置不一样的数目为奇数,是不存在变换方案的;此外,若只好有一对相邻位置不同的,在x和2*y中取最小值即可;具体做法:该系数除以主元,再用每一行中每一列的值减去这个值乘上求得每一行算出的系数。1.选择一个尚未被选择过的,且为该列的最大系数的未知数作为主元,进行整行交换。3.每一列都这个重复步骤,最后每一行都只存在一个系数和值。逆时针对两个点进行叉乘累加,最后取绝对值再除以2为多边形的面积。此外,题目中没有要求,先不要考虑给出点的顺时针、逆时针顺序。抄了大佬们的一个高斯消元求自由元的板子。原创 2022-11-06 21:34:14 · 371 阅读 · 0 评论 -
树形模拟+随机函数+二分
不断缩小区间,直到区间的距离在认为给定的4k范围内,在利用随机函数生成区间中的点一次次尝试,直到找到火车位置。本来只是想写一道交互题。没想到找到到个2100的题,还看到了一个这么玄学的解法。本题成功看了我3个小时。少加了LL,导致位运算直接爆int了,还以为开了。由于数据范围不大,只需要不停的输出数字去交换就可以。m的dp写法,用树状数组优化后复杂度为。原创 2022-11-05 21:59:40 · 270 阅读 · 0 评论 -
数论基础题(1) 费马引理+卡特兰数+Lucas定理+同余方程+扩欧
费马引理+组合数预处理的解法一错了,但复杂度是对的,不知道为啥卡了longlong。原创 2022-11-02 19:53:44 · 278 阅读 · 0 评论 -
第四届齐鲁校赛+二分思维+cf
思路:对于每一个数来说,可由小于等于它两倍的数结尾的数得到,再加上它的个数,这一部分便组合成每个子序列的长度,再加上1(本身)真的要被自己蠢死了!如果想到差分,秒过的题!我花了几个小时调自己的贪心代码,边界怎么都分不对。n*m的乘积小于1e6,此时我们没有办法开全局二维数组,但我们可以开局部二维数组!再开两个数组记录是否存在那样的矩阵,注意只要平行于x轴,可随意放置(只有2种)贪心的写法感觉是对的,就算是按照后边界排序,也不应该做不出来。思路:开设前驱数组和后驱数组,记录每个0左方和右方最近的1.原创 2022-10-31 17:09:07 · 460 阅读 · 1 评论 -
打表+dp思维+博弈
对于本题,左部点为烘培时间,右部点为拿出时间,因为拿出时间的不固定,构建虚点,连线权值要求为0,否则会对答案产生贡献。思路:明显想到要充分利用前一个指令的三个字母,才用dp记录的方式。思路:KM算法求完美匹配的最大权值,左部点和右部点要求个数相同。只有f[i]被表示时,才可将a[i+1]向右扩展。由于是最小权值,转化为负值,边初始化为-inf,跑KM算法.1.A想让自己的总和为偶数,偶数不会影响奇偶性,但奇数可以。思路:对于一个数字来说,它可以向左扩展,也可以向有扩展。表示字母i对应命令的第j种排列方式。原创 2022-10-28 18:41:34 · 770 阅读 · 0 评论 -
概率dp+线性dp+最短路判环+二分最短路
思路:在一个只包含01的数组中,要使得数组非递减,求出要执行交换操作的期望值1.最后的数组一定是0都在前,1都在后面。那么需要需要交换的次数为在0位置上的1.2.前面cnt个1对用后面cnt个0,因此对于第i次交换的概率为 ,则期望为概率的倒数。3.期望的线性可加性,可将所有位置的上的期望累加。C、1919810思路:要求子序列的长度固定为7,那么我们长度讨论到7即可。设计状态:序列长度为k时,到第i为增减性同1919810的序列个数。1.可观察第一位,长度为1时,可初始化为2.在第二位和第原创 2022-10-26 12:43:57 · 271 阅读 · 0 评论 -
Codeforces Round #829、#830
思路:刚开始使用set查找元素超时了。之后想到我只要判断出元素在不在几何中就好,由于数组需要离散化,所以开map记录。mp:记录元素是否出现在集合中;a:记录该元素对应的最小倍数,及时用while暴力更新longlong(,,)for(=();原创 2022-10-24 21:10:46 · 355 阅读 · 0 评论 -
cf思维+CCPC威海
1.O(n*m)的思路肯定过不去。明知道不去想想怎么优化,净想了些乱七八糟的东西。一个注意事项:不能用sqrt直接开方,要用二分逼近取下边界。不超过一定的量级,则说明数组中不同的数不超过O(logN),k保证了该式子会是一个整数,那么如何使得n的值最小,3.相同的数归为一组,然后用快速幂优化就好。对于一个因子x的都有三个数能整除它,分别为。gcd最大公约数这个点没有想到。然后去讨论它的边界问题。,一次碰撞构成的圆心角为。,回到原点可能经过k圈。原创 2022-10-24 16:23:00 · 223 阅读 · 0 评论 -
ICPC焦作站(E、F)+思维+树上dp
1.在满足题目限制条件的情况下,可看出对于一个结点的孩子来说,会有p(k%sz)个结点被多经过一次,因此我们需要找到权值较大的节点路径进行分配。这场比赛依旧是三道题,E其实比我们出的D难一点,但确实在能力范围之内,出了就保底铜牌了,出的快的话说不定有银。由于范围达到了10的100次幂,有一次感受到python的便捷,但用的太少,不如c++顺手。分解a和b的质因子,再去深搜k1、k2对于各个质因子的所取个数。最后比较x和y的值小于等于c和d,即为找到满足要求的数。为经过该点的次数,在满足一个分支节点的孩子。原创 2022-10-21 11:48:00 · 529 阅读 · 1 评论 -
19香港补题(G)+cf思维
题意:构造一棵树,每个叶子节点都会有怪兽,可选择若干点上建造攻击塔,每个攻击塔的建造价值不同。要求构造的方式有k种,且每种方式的总价值相同,输出构造的树和每个点的权值大小。虽然说大部分时间都要留给队友一起训练,但是总会有早起、零散的时间可以利用,提高效率,好吧!但仍然有很多训练时间浪费掉的,有些疲倦,但真的不想退役后才后悔当初要是怎么样就会怎么样。原题思路:我只要保证a最小,b最大,若是a和b都只包含字符a,那我们去比较他们长度。2.若是从二叉树的角度思考,便只需根据k分化后的奇偶性进行递归即可。原创 2022-10-17 17:28:02 · 424 阅读 · 1 评论 -
20南京站M题(树上dp)、19南京站J题(KM算法)+思维
读懂题意后,对于Bob来说需要对两类成员进行随机组合,使得累加值在和Alice进行比赛时,能得到最大的分数,要求出最大的期望分数*n的值。而是代码的实现没找到适合的写法,导致没自信。对于父节点和子节点,都是可选可不选,删除的点是任意的,但要满足价值最小。表示以u为根节点(不包含自身),选择num个子节点,能获取的最小价值。表示以u为根节点(包含自身),选择num个子节点,能获取的最小价值。实现:双重循环枚举出u和v不同的取值,从后向前,滚动更新。u结点被选择,子节点的权值会被父节点累加上。原创 2022-10-14 22:33:17 · 424 阅读 · 0 评论 -
20南京站补题(E、F)+cf数学
因此对于一个数来说,后面跟着的数在数量上不能超过该数字的有效数量(抵消的时候记录最大值)。4.判断函数为凹凸函数,两次求到后结果为常数.(对于一定为整数的分母,可选择性不看,分子进行二次求导可全约掉)自己的代码属实丑陋,虽然该注意到的点都想到了,但就是打不对。统计各个方向出现的次数,再对LRUD全排列,构造出不同路径,选择一个满足的。想了一个100多行的假代码后,终于想到一个全排列的好方法。1.对于一批做好的火柴,都失败的概率为(1-p)是期望的次数,每次的时间为n*k+m。,则成功的概率为1-(1-p)原创 2022-10-12 22:34:58 · 398 阅读 · 2 评论 -
哈希+组合数学+思维
2.对字符串的长度进行二分,若这一段(从第二个字符~第n-1的字符)的哈希值等于首部、尾部字符串,则成立。主要围绕最大牌进行讨论,利用组合数学算出方案数,也可用dp来写。1.刚开使思考到的点:前一个数必须大于等于下一个数,此外取模结果要为0.没把它定义为一个构造题。做法有很多,kmp、哈希都可以。wa麻了,调了2个小时才接受自己的做法有问题,固执。1.可用哈希手法O(1)判断一个字符串的两端子串是否相同。发现了最小公倍数的关系,再按照题意进行构造。这个B wa了好几次,还是总结一下吧。原创 2022-10-12 15:28:58 · 420 阅读 · 1 评论 -
19 南京站+div2思维
题意:给定一段长为k的数字组合,每个数组的选取为{0,1,2}。找到三个组合满足每位上的k都相同或者都不相同可称为1队,对于5个组合组成的meta-set,要求其中对数要大于等于2.看了2个多小时,之前没怎么做过计算几何的题目,本题思路不难,但代码的实现挺难的。这是错误的,因为这个组合不作为中心时,可作为边缘加入到其他中心的组合中。1.正常考虑一个点,他可能不是终点,也不是起点,若从它开始向两端深搜,不太可能。2.换个想法,从终点开始搜索,周围没有比他大的数,开始深搜。,到达相邻格子的也并非为正好为4。原创 2022-10-09 20:44:42 · 297 阅读 · 2 评论 -
2020 icpc 上海站+模拟+dp
先分析下题意,看了好久没读懂:根目录无法忽略的前提下,有n个路径是可以忽略的,m个路径不能忽略,(也就是在打开m个路径时有多少文件展露在外面,不能折叠起来)。例如:ba,b前面可放a,而a的前面不可放b,应该跳过b放c,本题关键就是实现这个操作。就容易想到并查集了。若两个字符的首领不同,则合并,两个数组分别记录,大小也要合并,因为在该集合囊括26个字符时,需要对集合的首领进行记录。另一种思路看的知乎大佬写的,实现的很巧妙,都尝试了一下。因此对于第i个字母中2的个数为i-j,对于新添加的2,只出现了1次。原创 2022-10-07 22:21:48 · 292 阅读 · 1 评论 -
小结+组合数学+模拟+思维
但这场牛客打得很烂,被B题自己写的自定义排序弄得心态崩了,编译器上能运行,牛客编译器总是报错,以后还是不要尝试这种写法,老实写map不好嘛。对于此类的题,我总是把握不好,虽然说这题我还是20分钟内ac了,依旧是短板,从上海站的B题就看出来了,全队只有我去想每个点和地雷的影响范围了。对于每道题i,从各个k开始能获得的最大分数,都是取最大值,考虑全就好,没有技巧性的初始化。对于保研考研,不要过多担心了,做好自己能做的最大限度,剩下的你把控不了。1.直接对于该k值,继承上一题此时的k值,压力值不变的情况。原创 2022-10-06 00:12:21 · 376 阅读 · 1 评论 -
10/2 模拟题+倍增lca+zkw线段树
1.当getline接收一整行数据时,注意在前一个接受的数据后用getchar接收换行符。4.采用map实现字符串的映射,由于不可嵌套转换,因此转换后需要对字符串进行标记。使用线段树单点修改,若改点被除过,则直接不去乘。zkw线段树代码较短,容易记。一个处理小细节,因为第一层根节点深度为0,所以要从-1开始累加。一道省选的模拟题,虽然说思路简单,但是实现的技巧真的很多。记录从根节点到该节点所有深度的k次方,最后询问的答案。建树:先创建出分支节点,再根据具体要求赋值。,减去公共祖先的累加值。原创 2022-10-02 23:56:30 · 449 阅读 · 0 评论 -
9/30-10/1
因为第i块石头若取完后,重量若满足条件,则可以累加上答案dp[j-a[i]]的方案数。在玩游戏之前,选出一个序列,数量不大于k,将他们t[i]变成之前的2倍,要求在玩游戏的多次回合中两堆牌点数相同,要求价值最大。只涉及前一个状态,可借用&判别奇偶,利用^取上一个状态。4.触类旁通,碰到一个题不会做,一定要去搜寻多个同类型的题目。2.若一个字符小于前一个字符,则前其放到数组的前端尾部。6.剩下的就是努力,抓紧时间,有耐力得走完这两个月。3.多思考,不追求题目的数量,质量才是关键。5.手速不是拿牌的关键。原创 2022-10-01 21:52:46 · 989 阅读 · 0 评论 -
2021 ICPC 南京站+上海站 部分题解
其实列举出2、4、6……1.对于这样的一棵树来说,t的值只能取1到3,可发现2秒实在是没有价值。如果一个点是3s,那说明可去其他1s或3s的点拿完,再去拿这个点的值。对于x来说,它可由x和x-k得到,而一个区间内的众数可通过枚举不同的区间得到。2.如果从x点出发,走向z点,而y点的值是3s,说明可以去完z点转向去y点,这样势必会放弃z点孩子结点的点数。3.子树结点边的选取情况可能会占用上一层偶数结点层的结点,需要统计的是可以对父节点产生贡献的可分配的边。,减去的那一部分是dp[u][0]包含的重复的部分。原创 2022-09-28 23:26:54 · 1159 阅读 · 1 评论 -
模拟退火+爬山算法+思维
再对每种分类交换A、B堆的一个金币,下标也是通过随机数得到,多次做差取最小值。3.对于取最大值来说,若新值大于旧的值,则直接选用新值;不可以跳过一个k的倍数去处理另一个倍数,当时想到了这一点,不知道怎么编代码,真的好笨。1.是一个随机算法,目的是取得最大值or最小值。首先需要选取初值,一般选为各个点的均值。思路:枚举k值,用标记数组记录处理过的字符串中未出现的数。2.温度由高到低,每次的变化都伴随x值的跳跃选取。各个点的能量总和越小越稳定,因此要枚举出最小点。4.一直到温度接近0度,停止运算。原创 2022-09-24 17:02:23 · 443 阅读 · 0 评论 -
19南京icpc(J、G)
1.计算(1,1)(1,2)(1,3)(1,4)……(1,10)和(2,2)(2,3)(2,4)……解方程得:a=1/24 , b=6/24, c=11/24, d=6/24, e=0。AC代码:注意对double得处理 注意开longlong 注意取模!4,10,20,35,56,84,120(第一次)若这个质因子,之前没出现过,则有贡献的区间数为。6,10,15,21,28,36(第二次)若这个质因子,之前出现过,则贡献区间数为。4,5,6,7,8(第三次)1,1,1,1(第四次)原创 2022-09-23 00:53:11 · 697 阅读 · 0 评论 -
9/21 VP补题+质因子分解
VP时候思路太乱,要是当时少和队友讨论,加紧时间,能快点出来。原创 2022-09-21 23:39:22 · 184 阅读 · 0 评论 -
9/19 深搜+网络流
签到题,扩大1的倍数到1e18,再对n取模进行判断。longlong(::(false),.tie(0),.tie(0))本体思路倒不是很难。1.若是n个点构成的环,要变成树,共有2-1种方法;2.稍微难想一点的时,零散的边挂在环上,都有删和不删两种选择,因此有2种可能。3.两者相乘为最终答案。原创 2022-09-21 13:01:52 · 198 阅读 · 0 评论 -
2022 ICPC Gran Premio de Mexico 1ra Fecha (B、D、E、F)
差值为4时有2种情况,符合斐波那契,eg:4、8,可行区间为【5,7】从港口1开始,需要初始化一个值为1的矩阵,每次对线路进行选择,即乘上初始化的矩阵。求出由k个字母构成的总方案数减去由c个字母构成的字符串(c原创 2022-09-19 01:11:46 · 1510 阅读 · 0 评论 -
2022 ICPC Gran Premio de Mexico 1ra Fecha(一)
今天大部分时间都花在了上一场沈阳站的L题上了,一个树上背包+容斥原理,看了好久才理解,就不硬敲上了,再想几天在写题解。第一个想法是用二分图去写,看了下时限0.3秒,但还是想用带时间戳的二分图试一下,不出意外,tle了,但是!有一点读错了,低了假题,wa了一次。需要注意的是,浪费是指买多了,如果米买少了,不是浪费,此处理解错了。一个完全背包,预处理出1~50000中的数字,判断每个数能否到达。签到题,stoi可将字符串转化为10进制数,真是个好工具。签到题,考察了基本不等式这个小知识点。原创 2022-09-16 01:55:50 · 4924 阅读 · 0 评论 -
The 2021 ICPC Asia Shenyang Regional Contest补题
vp打铁了,感觉差距很大,若是icpc出不了线,还是线下举行的话,就没比赛打了,情况已经很糟糕了,好好加油吧,不要放弃。统计edgnb的数量,使用substr函数截取字符串B. Bitwise Exclusive-OR Sequence对于每个二进制位,都作为一个图进行染色,为使得和最小的,因此染色的一条链中0和1数目较小的为1,累加进入ansF. Encoded Strings I利用两个容器一下省了好多时间,注意不能排序,不然会超时J. Luggage Lock思维还是太差了,看完一道题尽想原创 2022-09-14 23:06:36 · 712 阅读 · 2 评论