随笔分类 - OJ---Luogu
摘要:"P2512 [HAOI2008]糖果传递" Sol: 环形均分纸牌问题 + 考虑最基本的均分纸牌问题,相当于将环从1与n之间断开。 令$res_i$表示第$i$个人达到平均值所用步数,ave$表示糖果的平均数。 则 $res_1=a_1 ave$ $res_2=a_2 ave+res_1=a_1+
阅读全文
摘要:"P1337 [JSOI2004]平衡点 吊打XXX" 模拟退火 初始温度$T_0$ 终止温度$T_k$ 温度变化率$d$ $T_k$略大于0,$d$略小于1 当前状态$x,y$ 当前解$E$ 当前最优解$minE$ 当前温度$T$ 新状态$nx,ny$ 新解$nE$ 新解与当前解差值$\Delta
阅读全文
摘要:"P2502 [HAOI2006]旅行" Sol: + 暴力 枚举所有从S到T的路径,然后用maxw/minw更新答案。 时间复杂度:$O(玄学)$ + 正解 观察到边数$m\leq5000$ 考虑由直接求maxw和minw 枚举minw求maxw 由于从S到T的路径上的最大值最小的边一定在最小生成
阅读全文
摘要:"P1171 售货员的难题" Sol: 最短Hamilton路径,经典的NPC问题,小数据可以通过状压DP 实现。 状态:$f[i][j]$表示当前在第i号点,且已经过的点的状态为j 时的最短Hamilton路径。 阶段:若以点为阶段,由于会从点i转移到点i+1,还可能从i+1转移到i 1,不具有无
阅读全文
摘要:P1278 单词游戏 "传送门" Sol: 枚举词典中的每个单词,然后跑DFS。再加个记忆化就不会T了。 AC Code: include include include using namespace std; const int N = 16 + 4,M = 100 + 10; int n; c
阅读全文
摘要:P2014 选课 "传送门" 思路: 树形背包DP模型,$f[i,j]$表示以$i$为根的子树中,选了$j$门课的最大学分。树形DP常以子树$i$为阶段。树形背包DP相当于树上分组背包DP。$f[u,j]=max\{f[u,j],f[u,j k]+f[v,k]~|~v\in~son(u)\}$。我们
阅读全文
摘要:P2568 GCD https://www.luogu.org/problemnew/show/P2568 思路: 1.题目要求 考虑枚举的情况,问题转换为 即 然后就能用mobius做了。(别忘了开long long AC Code: #include<cstdio> #include<cstri
阅读全文
摘要:P2261 [CQOI2007]余数求和 https://www.luogu.org/problemnew/show/P2261 思路: 而的值是成块状分布的,被称为数论分块。以为例,令=1,则第一个块所代表的值为,则第一个块的右端,然后下一个块的左端,以此类推,最终这些块共有种取值,可以在的时间内
阅读全文
摘要:传送门 思路:模拟next_permutation函数(也可能这是next_permutation的实现)。 ①找到最后一个满足a[i]<a[i+1]的i,记为minpos=i; ②找到最后一个满足a[j]>a[minpos]的j,记为maxpos=j; ③把a[minpos]和a[maxpos]交
阅读全文
摘要:传送门 思路:操作数M<=200000,假设每次都是插入,那么得到的序列长度也不会超过200000,考虑对区间[1,m]建一棵线段树,然后就是板子题了。 AC Code:
阅读全文
摘要:传送门 思路:由于n<=6,我们可以枚举油滴放置顺序的排列,然后DFS。对于每个油滴,其能扩散的最小半径为min{到四个边界的距离,到已添加的点的扩散范围的最小距离}。最后注意四舍五入:printf("%d",(int)ans+0.5);(其中ans为double类型)。 AC Code:
阅读全文
摘要:传送门 思路: 考虑暴搜,可以过20pt。 然后加一些玄学的剪枝: 1.可行性剪枝:当前摆的花数超过了m,return。 2.可行性剪枝:当前第x种花摆i盆,剩下的花数为m-ud-i,若这些花摆满剩下的花还有剩余,return。 (然而上面这些都不如一个记忆化。。。) 然后记忆化一下就过了。 AC
阅读全文
摘要:传送门 思路: 对于“找出一种最优排列顺序,使答案最优”的贪心题目,我们可以用“邻项交换”的方法去找出并证明贪心策略。 例如本题,我们假设有两头奶牛,其到达牛圈时间分别为Ti,Ti+1,每分钟吃掉的花朵数分别为Di,Di+1。 有两种情况: ① 排列顺序为i i+1 则两头牛吃掉的花朵数为 res1
阅读全文
摘要:传送门 思路:一个贪心策略就是“在不挤超过截至时间的奶牛的前提下,尽量挤奶量大的奶牛”。So我们将奶牛按截至日期从小到大排序,对于每个截至时间t,将所有截至时间为t的奶牛的奶量加入一个大根堆,只留下前t大的数,剩下的直接删去。由于priority_queue没有clear函数,所以我手写了一个堆。。
阅读全文
摘要:-> 任务A:最少选择多少点能够遍历整张有向图。 任务B:最少添加多少条有向边使整张图变为一个强连通图。 A->先用Tarjan将所有scc缩点,缩点后入度为0的点的个数即为任务A的答案,因为其他点可以由入度为零的点遍历到。 注意: 1、当n=1时,只有一个点,此时任务A的答案为1,任务B的答案为0
阅读全文
摘要:传送门 将字母看做点,将相邻字母见看做有连一条无向边,最终判断能否形成一条由n+1个点构成的路径,即是否存在一条欧拉路或欧拉回路。 由于要字典序最小,所以按字典序从小到大遍历,找最小的字母为起点,每次找最小的字母作为下一个点。 由于欧拉(回)路是倒序存储的,所以输出答案时需要倒着输出。
阅读全文
摘要:传送门 tarjan缩点后进行拓扑dp求出从点i出发的最大点权和,由于是dfs遍历,所以相当于从终点走到点i的最大点权和。
阅读全文
摘要:传送门 根据题意可知二分图染色。若无法被染成二分图,输出Impossible;反之,对于每个二分图,记录两种颜色的点的个数,取min后记录答案中。 注意,图可能不连通。因此对于每个二分图,都要进行取min操作,而不是对整个图染色后取min。
阅读全文
摘要:传送门 一.二分+二分图染色 最小的最大,考虑二分。 每次二分影响值,将影响值不小于mid的两个人关进不同的监狱,即染成不同的颜色,分到二分图的两个不同的集合中。若最终形成的图是二分图,说明这种分法可行,影响值还有变小的可能;否则影响值只能更大。 二.并查集 贪心地想,将每对罪犯按影响值从大到小进行
阅读全文
摘要:传送门 60%~70% 裸的并查集,对于每个x=y操作,直接合并x与y所在集合;对于每个x!=y操作,判断x与y的关系,若出现矛盾,输出NO,若所有约束条件都能满足,输出YES。 100% 将所有x和y离散化,然后按上一问做即可。 Tips: 1.需要离散化的数最多有2*n个,数组别开小!! 2.可
阅读全文

浙公网安备 33010602011771号