摘要:
分析: 陷入Tarjan太深 ,浪费了很多无用的时间 很明显如果是 一棵树 的话,直接都染黑了 然后就想到要将每一个连通块都变为一棵树 设连通块总数为C,总共有m条边,有用的就只有n C条 所以 要染色的就有m n+C 直接并查集维护 总结: 当时真的是 脑残 ,去找环了 分析: 首先答案是很 多个 阅读全文
摘要:
https://loj.ac/problem/10177 今天的考试题目中有单调队列优化dp的,感觉不太熟练,所以练几手题 其实这题 就是今天的T2!!!! 首先是dp很明确 dp[i,0]表示处理了前i个位置,并且第i个位置不选的最大值 dp[i,1]表示处理了前i个位置,并且第i个位置要选的最大 阅读全文
摘要:
爆零警告,昨天晚上睡得晚,考试的时候困死我了 分析: 哈密尔顿环:每个点只经过一次的路线,有哈密尔顿环的图叫哈密尔顿图 先考虑只是 一条链 很容易想到隔一个跳一次,这样 无论链有多长 一定是 从A出发,B回来 所以直接 拓展到树上 即可: 如 果当前节点深度是奇数,那么我们在DFS前输出这个点, 否 阅读全文
摘要:
https://www.luogu.org/problem/P4072 是 P2212(动态规划训练之十五) 的提升版 全程抄袭题解 首先 化简方差: 这样直接转移就是N×N×N的复杂度,也就是P2212 考虑优化 code: 阅读全文
摘要:
https://www.luogu.org/problem/P2112 相信都看一眼就知道这是一道 很水的dp 但是这代码不是我写的,毕竟我太蒻了 code: c++ include include include include define MAXN 1005 define MAXK 105 u 阅读全文
摘要:
https://www.luogu.org/problem/P2215 初看题目,不就是个 最长上升子序列 吗? 但我们知道 nlogn 的最长上升子序列中定义状态 f[i]表示以i结尾 的... 这个题要求 以i开头 的 所以 倒着做最长下降子序列 就好了,f只记录长度( 解题关键,逆向思考 ) 阅读全文
摘要:
https://www.luogu.org/problem/P2511 首先分析 本题有两个问,而这两个问的 求法肯定是不一样 的 第一问,求最长的最短,很显然一个 二分就行 那第二问 计数怎么办? f[i,j] 代表前i个数分成j块的方案数, 则 f[i,j]=Σ f[k,j 1] (k =lef 阅读全文
摘要:
https://www.luogu.org/problem/P3978 题目描述: 对于一棵随机生成的n个结点的有根二叉树(所有互相不同构的形态等概率出现),它的叶子节点数的期望是多少呢? 不同构的二叉树 数目显然是 卡特兰数 (因为这题目描述的不同构 节点标号也要不同 ) 节点数期望是等于 (各种 阅读全文
摘要:
https://www.luogu.org/problem/P2939 分层图最短路板子题 ,好久没写最短路了,算是复习一下吧 根据题意,我们可以发现k的取值范围比较小,所以可以直接用分层图 把一个点强行 拆分为k 个,原图层代表使用0次升级路的机会,其他的图分别表示使用了1次、2次...k次升级路 阅读全文
摘要:
https://www.luogu.org/problem/P4047 好久没做 生成树 的题目了,这个算复习一下吧 我们把每个点看成一个部落,每次取最小距离的两个抱团,同时部落也减少了一个....然后减减减,直到部落数==目标数,此时下一个不同部落的距离就是最短的距离 code c++ inclu 阅读全文
摘要:
https://www.luogu.org/problem/P4550 这里有个很好的 结论 : 概率正向推,期望反向推 对于这个题而言,是要求 期望花费 而这个 期望花费又与期望次数有关 所以先算出 期望次数 ,再去推 期望花费 设 f[i] 表示购买了i种物品, 还要购买物品的期望次数 (反向推 阅读全文
摘要:
https://www.luogu.org/problem/P3802 我只想骂这个出题人,题目意思都不说清楚,其实很简单的一道题,害的我一直想不通 注意这个a数组是该属性晶石的个数 而施法的 次数就是Σai 考虑第一个放 a1 ,则有 a1/n 的概率选到 第二个放 a2 ,则有 a2/n 1 的 阅读全文
摘要:
https://www.luogu.org/problem/P2290 prufer板子题 但它是一道紫题也是有它的道理的 ,就是注意一下 坑点 code:(代码很丑,不是我写的(看得我想吐了)) 阅读全文
摘要:
树的prufer编码 prufer是无根树的一种编码方式,一棵无根树和一个prufer编码唯一对应,也就是一棵树有唯一的prufer编码,而一个prufer编码对应一棵唯一的树。 注意这个 唯一性!!!! 第一部分:树编码成prufer序列。 树编码成prufer序列的方式是:prufer序列初始为 阅读全文
摘要:
https://www.luogu.org/problem/P2221 分析 ,数据结构跑不掉,看标签,什么狗屁期望,一点关系都没有好吧 其实就是一道 线段树裸题 ,唯独就 是麻烦了一点而已,因为维护的东西很多 code c++ include include define lson now '9' 阅读全文
摘要:
阶梯NIm 如这就是一个阶梯博弈的初始状态 2 1 3 2 4 ... 只能把后面的点往前面放...如何来分析这个问题呢.. 其实阶梯博弈经过转换可以变为Nim.. 把所有奇数阶梯看成N堆石子..做nim 把石子从奇数堆移动到偶数堆可以理解为拿走石子..就相当于几个奇数堆的石子在做Nim 证明(可能 阅读全文
摘要:
https://www.luogu.org/problem/P1800 开始还在纠结到底把 这道题归为二分还是dp 但发现这道题难点在于 dp 根据样例解释会很好想到要用 二分 只是这个 check函数 就比较尴尬了 肯定 贪心扫不出来 ,说明就 只有dp了 啊 而且这个 dp 要和你二分出来的 答 阅读全文
摘要:
https://www.luogu.org/problem/P1663 首先这题的数据范围比较水,O(N N)可以过,但就不说了 考虑小一点 问题转化为要找到所有直线相交的最高点 考虑二分答案, 大于这个答案的一定可以过,但不一定最小 小于这个答案的无法满足条件 所以可以二分答案 再就考虑check 阅读全文
摘要:
https://www.luogu.org/problem/P2507 分析: 首先看到这道题一定不会是什么高级算法,肯定是贪心啊dp啊 先考虑 ai可以等于bi ,则直接排序即可 但是 ai!=bi的 ,怎么办? 读题!!! 上帝给你关了一道门一定会再给你开一扇窗de a数组和b数组内部元素是不等 阅读全文
摘要:
### 引言 在生活中五子棋也是一种先手有必赢策略的游戏,有人会说五子棋先手我也会输啊,所以 博弈论问题都有个类似如“参与者足够聪明”,“两人都不犯错"的前提。 在此前提下,讨论几种常见的**博弈情形** ### 一:巴什博弈 **问题描述:n个物品,两个人轮流取[1,m]个,最后取光者胜利,判断先 阅读全文
摘要:
卡特兰数 卡特兰数又称卡塔兰数,卡特兰数是组合数学中一个常出现在 各种计数问题中的数列 。以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)的名字来命名。 中文名卡特兰数 外文名Catalan number 解释 出现在各种 计数问题 中出现的数列 1, 1, 2, 5, 14, 42, 1 阅读全文
摘要:
https://www.luogu.org/problem/P1080 分析 很好理解 ,就是高精就直接套板子了 若 a[i].l / a[j].r include include include define FT(A,B,C) for(int A=B;A = 1; i ) { //注意要从最高位 阅读全文
摘要:
例题一 题意 :给定 n 种物品,每次购买会随机买到一种,询问买到 n 种物品的 期望次数 。 考虑我们已经买到了 k 种物品,再继续买多少次能得到第 k+1 种物品。 分析 设它为 x ,则: x=(1−k/n)⋅(x+1)+k/n 整理得: x=1/(1−k/n)=n/(n k) 那么 答案 就 阅读全文
摘要:
考试的时候打的 暴力二分结果炸开了 , r=mid 的结果我写成了 r=mid 1 主要当时 想都没想就写上了emmm 分析 首先这道题肯定是 二分的log ,判断是 O(n)的 , 所以瓶颈在于如何 确定x,或者少算一些x 这里 有个性质: 对于每个 x,考虑如果用它来压缩那么可以达到的最优解,设 阅读全文
摘要:
浅谈期望的线性性(可加性) 感性理解一下 E(X+Y)=E(X)+E(Y) 即两个(或多个)随机变量的 和的期望 等于 期望的和 理论解释 如果不想看或者看不懂把 规律记住 当然如果要理解透彻,那么就要 练题 http://codeforces.com/problemset/problem/280/ 阅读全文
摘要:
https://www.luogu.org/problem/P1005 因为做 学军的初赛题 有这道题,就做了 其实以前看到过,但是一看到 高精 ,果断 走你 分析: 发现啊, 每一行怎么取数是 互不干扰 的, 则 ,只用分别处理 每一行 就好 数据范围也在 算法复杂度 以内 很好联想到 区间dp 阅读全文
摘要:
奇数和偶数 显然是独立的,我们只考虑其中一种即可。 如果 没有要求字典序最小 的话,则显然 相对位置不变 的方案是 最优 的 那么我们可以直接得到一种合法方案以及 最小代价 。 我们用 xi 表示第 i 个数是 往左 , 往右 还是 不变 , 那么按 xi 分段 后显然每一段是 独立 的,否则代价一 阅读全文
摘要:
solution by jklover%%% 为什么要写 两个转移方程呢? 因为一个是 O(N^2) 的 如果 联立 之后呢? O(N)的 code by std: c++ include using ll = long long; constexpr int MOD = 998244353; in 阅读全文
摘要:
https://www.luogu.org/problem/P5588?contestId=22026 分析: 首先 同一颜色 在树上连边一定是 一条链 , 如果没有这个颜色的结点答案则为 n (n 1)/2 如果该颜色 只有一个节点 ,那么就是统计一个这节点为根的所有子树大小 互乘累加 下 面重点 阅读全文
摘要:
![](https://cdn.luogu.com.cn/upload/image_hosting/f95ty6sy.png)
![](https://cdn.luogu.com.cn/upload/image_hosting/yh0tpsxl.png) 阅读全文
摘要:
按时辰分析吉凶 子时:23点——01点前 左眼:意外之喜降临,会有不错好运,你的心脏要强一点,别兴奋过了头。 右眼:有人请你吃饭,可以省下一笔钱,但是这个人的目的不明,你要多多斟酌。 丑时:01点——03点前 左眼:家中近很麻烦,大小事困扰着,不知该怎么办,短期内一筹莫展。 右眼:有人思念你,有可能 阅读全文
摘要:
https://www.luogu.org/problem/P2606 不知道为什么这道题在 数位dp 里 分析; 又是一个 与排列有关的计数 题, P(i) P(i/2) 这个条件很重要啊 也有 P(2 i) P(i) , 也有 P(2 i+1) P(i) 像这种 下标二倍的关系 就要和 二叉树 阅读全文
摘要:
蒟蒻分析: 考试时写个权值线段树就是调不出来 蒟蒻总结: 平时多练手 solution: 其实就用树状数组维护一下就行 多了个撤销操作而已,应该十分钟就写完的,我写了 三个小时 !!! code by jklover include using namespace std; inline int r 阅读全文
摘要:
https://www.luogu.org/problem/P5196 开始那道题会觉得 计数很棘手 ,思考一番 这个背包dp式子很好得出 if(dp[j]) dp[j+len[i]]+=dp[j]; 但是这是 没有最后一个单词的前提下才行 那怎么办? (不会就dp) 很有用的 f[col[i]]+ 阅读全文
摘要:
https://www.luogu.org/problem/P3650 真的是惭愧,拿到一个普及减的题,看了半天不会做,还要看题解 首先On n的 首先对之进行排序 因为添加和减小高度都是无标准的,只要差值小于等于17就好 于是我们可以枚举一个这样的 标准 小于它的变成它,大于它且大于差值大于17的 阅读全文
摘要:
其实当时就觉得很像奶酪这道题,但 思维固执 了,就再也没往下想了 首先很清晰的 二分答案 , 再就考虑 check函数 怎么维护了, 结合奶酪那道题,也 用并查集 维护 将 上界和下界 分别当做一个限制点 如何判断二分的答案 能否走过去 呢 只要上界与下界不在同一个集合就可 code by hs c 阅读全文
摘要:
https://www.luogu.org/problem/P4198 动态维护 斜率单调递增 代码很清楚,就不讲解了 code by wzxbeliever c++ include define ll long long define ri register int define il inlin 阅读全文
摘要:
https://www.luogu.org/problem/P3120 首先 ON^4 的dp很容易想到(数据加强过,所以这个过不了) code : c++ include using namespace std; int r,c,k; //行,列,数值限定 int a[751][751]; lon 阅读全文
摘要:
http://poj.org/problem?id=3177 题目描述 给一个连通图,问最少加几条边可以得到边双连通图。 分析: 模板题 ,复习一下 tarjan双向边缩点,再找 叶子结点(即出度为1的点) 其实本题可以不用缩点,只用 维护low数组 就行, 只要low数组的值相等,就是属于同一连通 阅读全文
摘要:
http://codeforces.com/problemset/problem/571/A 冥思苦想怎么加才能保证能组成三角形,并且要求其方案数 然后就无奈看题解 发现其实可以 容斥一下 , 总方案数 不合法的方案数=答案 普及一下排列组合 P(n,m)表示n个中选出m个排列 P(n,m)=n(n 阅读全文