非常好的一道题 看到这道题,肯定能想到概率dp,但是状态的设计与转移都是一个难点 如果正向模拟来设计状态,那么不难发现是很难以转移的 所以我们考虑反向模拟,用类似博弈的方法来转移 不难发现,如果只剩了最后一个人,那么这个人获胜的概率是1 而如果只剩两个人,我们完全可以通过摸牌的情况算出每个人的胜率( Read More
posted @ 2018-11-06 08:16 lleozhang Views(112) Comments(0) Diggs(0) Edit
非常好也是比较难的题 首先,不难看出这是一道树形的概率dp 那么我们就要考虑转移 我们发现,一个点能充上电的概率是这个点本身通电的概率+这个点的子节点给他传过来电的概率+这个点的父节点给他传过来电的概率 但是这里的加法都是概率的加法,也就是说满足如下公式: 那么如果是三元事件,这个公式会更为复杂,所 Read More
posted @ 2018-11-06 08:06 lleozhang Views(137) Comments(0) Diggs(0) Edit
典型的背包+容斥 首先,考虑如果没有个数的限制,那么就是一个完全背包,所以先跑一个完全背包,求出没有个数限制的方案数即可 接下来,如果有个数的限制,那么我们就要利用一些容斥的思想:没有1个超过限制的方案=至少0个超过限制-至少1个超过限制+至少2个超过限制-至少3个超过限制+至少4个超过限制 所以我 Read More
posted @ 2018-11-06 07:40 lleozhang Views(128) Comments(0) Diggs(0) Edit
非常好的一道题,可以说是树形dp的一道基础题 首先不难发现,:如果我们把有关系的两个点用有向边相连,那么就会形成一个接近树的结构。如果这是一棵完美的树,我们就可以直接在树上打背包了 但是这并不是一棵完美的树,甚至并不是一棵树,因为: 首先,由于题中有n个点,还有n条边,所以有很大的几率出现环! 而且 Read More
posted @ 2018-11-06 07:25 lleozhang Views(107) Comments(0) Diggs(0) Edit
比较简单的背包dp,设计状态f[i][j]表示到了前i个物品,第一台机器加工时间为j,第二台机器加工所用的最小时间,然后背包转移即可 本题卡空间,需要滚动数组优化 本题卡时间,稍微卡下常就行 Read More
posted @ 2018-11-03 16:14 lleozhang Views(124) Comments(0) Diggs(0) Edit
发现自己已经把期望dp忘光了... 其实本质上非常简单,就是利用状压的思想跑期望 首先很容易设计出状态:记状态f[s][i]表示到了第i个点,之前已选过的点的状态为s时所能获得的最大期望得分 但是会发现这样做没法转移(你可以试一下,我做了半个点做得原地爆炸) 但是我们知道,期望dp常见的策略是从后向 Read More
posted @ 2018-11-03 08:08 lleozhang Views(127) Comments(0) Diggs(0) Edit
蜜汁树形dp... 首先分析一下:他要求一条边至多只能经过两次,那么很容易会发现:从x到y这一条路径上的所有边都只会被经过一次。(如果过去再回来那么还要过去,这样就三次了,显然不合法) 那么其他能产生贡献的部分就只有一下几个部分:x,y的子树内部,LCA(x,y)的上半部分的树以及x-y路径上的点向 Read More
posted @ 2018-11-02 19:22 lleozhang Views(207) Comments(0) Diggs(0) Edit
非常好的dp,非常考dp的能力 很显然是个计数问题,那么很显然要么是排列组合,要么是递推,这道题很显然递推的面更大一些。 那么我们来设计一下状态: 设状态f[i][j][k][p]表示目前到了第i个点,这i个点中有j个白点是奇数条好的路径的结尾,k个黑点是奇数条好的路径的结尾,p个白点是偶数条好的路 Read More
posted @ 2018-11-02 15:24 lleozhang Views(290) Comments(0) Diggs(0) Edit
非常好的一道数学题,考察了大量数论和组合数学的知识 在做本题之前强烈建议先完成下列两个背景知识: ①: bzoj 2142礼物 因为本题的一部分数据需要利用到拓展卢卡斯定理,而礼物是拓展卢卡斯定理的裸题,先做礼物是一个比较好的选择 有困难戳这里https://blog.csdn.net/lleozh Read More
posted @ 2018-11-01 08:01 lleozhang Views(197) Comments(0) Diggs(0) Edit
一道不错的题,对排列组合能力的要求较高 题意:给定s个相同的小球放在n个不同的盒子里,可以不放,每个盒子有一个放的上限,求一共有多少种放法 解析:首先考虑没有上限的情况,这里比较好解决,采用隔板法,可以计算出放法为 看到网上很少有对这个隔板法进行详解的,这里稍微做一下解释: 隔板法,顾名思义,就是采 Read More
posted @ 2018-11-01 07:29 lleozhang Views(199) Comments(0) Diggs(0) Edit
好神奇的dp... 首先有一个很简单的思想:设dp[i][j]表示目前到了第i分钟,朝上的面被烤了j分钟的情况下所需的最小交换次数 那么有转移:dp[i][j]=min(dp[i-1][j],dp[i-1][i-j]+1) 这一点很好理解,就是讨论现在向上这面上一分钟的状态:如果上一分钟这一面也朝上 Read More
posted @ 2018-10-31 15:54 lleozhang Views(152) Comments(0) Diggs(0) Edit
如果不喜欢过长代码的看官,请移步其他题解... 这题其实思想极其简单: 棋盘问题常见的算法都比较暴力,常用的有搜索和状压dp 而这道题显然没啥能状压的,所以我们考虑搜索 但是仅仅搜索是不够的,因为有极大的可能搜到死... 所以我们引入记忆化 设状态f[i][j][k][0/1/2]代表目前在点(i, Read More
posted @ 2018-10-30 20:37 lleozhang Views(221) Comments(0) Diggs(0) Edit
玄学字符串dp... 题意:给定一个括号序列,求长度为2n的合法的括号序列的个数(要求每个被统计的合法序列中均至少有一个子串为给定的括号序列) 题解: 这题没有想的那么复杂,就是暴力的一个dp 首先我们设状态f[i][j][k][0/1]表示当前放到了第i个括号,前i个括号中左右括号个数差为j,已经 Read More
posted @ 2018-10-30 20:36 lleozhang Views(228) Comments(0) Diggs(0) Edit
该文被密码保护。 Read More
posted @ 2018-10-29 21:08 lleozhang Views(1) Comments(0) Diggs(0) Edit
这是一道...卡了我一个月的树形dp... 我真是太弱了... 其实仔细想想,这题的核心思路并不是特别复杂,但是的确存在不小的难度 作为一个看过全网基本所有题解+标程才弄明白这题到底怎么回事的蒟蒻,我努力把所有东西揉到一起让各位看官一眼看懂... 首先我们简化一下题意:给定一棵满二叉树,每个叶节点有 Read More
posted @ 2018-10-29 20:31 lleozhang Views(114) Comments(0) Diggs(0) Edit
该文被密码保护。 Read More
posted @ 2018-10-29 16:32 lleozhang Views(0) Comments(0) Diggs(0) Edit
非常好的树形dp 首先,有个很显然的状态:记状态f[i][j]表示以i为根节点的子树中选了j个叶节点作战,那么很显然有转移:f[i][j1+j2]=f[i<<1][j1]+f[i<<1|1][j2] 所以我们只需爆搜一发状态,然后每次更新即可 但是有个问题:当我们搜到最底层的叶节点时,由于他的贡献与 Read More
posted @ 2018-10-28 16:02 lleozhang Views(245) Comments(0) Diggs(0) Edit
题意:求 题解:这题...数据范围是真小... 研究一下这一表达式,发现gcd(i,j)=1表示i,j互质,那么互质肯定能想到欧拉函数,可是欧拉函数要求j<i,那么我们变化一下:显然原矩阵是对称的,所以可以转化一下,变成 (注意到后面-1是为了防止(1,1)被重复统计) 那么发现答案就是 公式挂掉的 Read More
posted @ 2018-10-26 19:48 lleozhang Views(149) Comments(0) Diggs(0) Edit
非常有趣的题 题意:求1~N!中有多少个与M!互质的数,T组询问,答案对R取模 题解: 首先,因为N>M,所以N!>M!,所以答案一定有一部分是φ(M!) 接下来做一些分析: 引理: 若x与p互质,则x+kp与p互质(k∈Z) 证明: 反证法:假设x+kp与p不互质,则设gcd(x+kp,p)=d( Read More
posted @ 2018-10-26 19:20 lleozhang Views(115) Comments(0) Diggs(0) Edit
基本就是推式子,见博客https://blog.csdn.net/lleozhang/article/details/83416791 Read More
posted @ 2018-10-26 16:25 lleozhang Views(153) Comments(0) Diggs(0) Edit
题解:首先推一发式子(见csdn https://blog.csdn.net/lleozhang/article/details/83415995) 因为x是整数,所以x的数量显然为能使取得整数的t的个数,也就是求的约数个数 而根据约数个数和公式(设一个数) 可以将前n个数质因子分解,然后将质因子的 Read More
posted @ 2018-10-26 15:44 lleozhang Views(188) Comments(0) Diggs(0) Edit
这道题告诉了我们一个很重要的道理:看到题,先想明白再动手! 题意:求对999911659取模的值 首先,由于n的数据范围不是很大(至少不是很大),所以可以O()枚举所有约数分别求组合数 但是有个问题:根据费马小定理, 所以组合数应当对p-1取模! 可是p-1并不是一个质数啊 所以我们要将p-1质因子 Read More
posted @ 2018-10-26 14:41 lleozhang Views(141) Comments(0) Diggs(0) Edit
题意: Alice和Bob玩游戏,每人各有8张牌,牌的大小在0~4之间 每次操作,先手可以选择自己一张牌和对方一张牌求和后%5,将新的牌替代自己拿出的那张牌,以此类推,直到有一个人手中的牌全部是0,则这个人获胜 但选牌时不能选择已经为0的牌进行操作 现给定初始状态下两人的手牌以及先后手,求是否存在有 Read More
posted @ 2018-10-25 12:28 lleozhang Views(249) Comments(0) Diggs(0) Edit
这题不错... 首先,不难看到他想让你求出的是最短路树 然后,考虑到所有边权均为1,所以可以采用bfs直接生成最短路树 至于方案的储存,可以在加边的时候同时记录边的编号,然后对每个点维护一个能转移他的最短路的边的编号的集合,这样总的方案数就是所有的集合大小的乘积 然后用dfs在每个集合中选一个元素输 Read More
posted @ 2018-10-23 20:51 lleozhang Views(255) Comments(0) Diggs(0) Edit
好玄学的东西... 核心思想:for循环! 首先,我们从前向后扫所有的点,如果这个点没被标记成不可用就把这个点标记成已使用,然后把所有与这个点直接相连的点标记成不可用 接下来,我们从后向前扫所有的点,如果这个点被标记成已使用就把与这个点所有直接相连的也被标记已使用的点达成不能使用,最后标记成可使用的 Read More
posted @ 2018-10-23 20:16 lleozhang Views(193) Comments(0) Diggs(0) Edit
该文被密码保护。 Read More
posted @ 2018-10-23 15:13 lleozhang Views(0) Comments(0) Diggs(0) Edit
参见此博客: https://www.cnblogs.com/magisk/p/8809922.html Read More
posted @ 2018-10-23 14:21 lleozhang Views(144) Comments(0) Diggs(0) Edit
一个看起来就不对的贪心居然是正解... 但仔细思考一下,这种贪心倒的确找不到反例.. 贪心思想:每次找出离根节点最远的点,然后由根节点向这个点的父节点连边,一直连到所有点都能被覆盖即可,这样构造出的一定是一个可行的最优解 正确性证明(个人YY): 主要是要证明这种做法的最优性: 首先,由于所有点都要 Read More
posted @ 2018-10-22 20:24 lleozhang Views(107) Comments(0) Diggs(0) Edit
该文被密码保护。 Read More
posted @ 2018-10-22 20:10 lleozhang Views(6) Comments(0) Diggs(0) Edit
该文被密码保护。 Read More
posted @ 2018-10-22 18:57 lleozhang Views(5) Comments(0) Diggs(0) Edit
玄学贪心... 题意:给出一棵树,要求将他的所有叶节点分成最少的组,且在每组中的任意两节点之间的距离不大于k 解析: 显然是个贪心啦... 稍微考虑一下贪心思想: 我们从下向上合并整棵树,在合并到某个节点时,我们把他以下的所有叶节点到他的距离全处理出来然后排序,设所有距离排序后为d1,d2...dn Read More
posted @ 2018-10-22 18:04 lleozhang Views(125) Comments(0) Diggs(0) Edit
贪心题是很有趣的... 首先,本题为括号匹配问题,那么可以考虑进行栈模拟 然后,我们思考一下如何匹配:虽然题目中仅对右括号的位置提出了区域性要求,但可以发现,对能匹配上的栈顶括号立刻进行匹配一定是一种最优解! 为什么? 根据括号匹配原则,如果栈顶括号未被匹配,那么其他括号将无法被匹配,那么栈顶括号越 Read More
posted @ 2018-10-22 07:49 lleozhang Views(116) Comments(0) Diggs(0) Edit
该文被密码保护。 Read More
posted @ 2018-10-21 21:11 lleozhang Views(1) Comments(0) Diggs(0) Edit
该文被密码保护。 Read More
posted @ 2018-10-20 12:46 lleozhang Views(0) Comments(0) Diggs(0) Edit
该文被密码保护。 Read More
posted @ 2018-10-20 11:21 lleozhang Views(0) Comments(0) Diggs(0) Edit
非常好的一道题,是线段树的常见玩法 将字符串转化为1~26个数 对区间开一棵线段树,用两个数组分别维护区间中1~26每个数的个数以及一个区间覆盖标记,表示这个区间是否被某一个值覆盖了 在每次排序时,首先查出这个区间中1~26每个数出现的次数,然后因为是排过序的,所以相等的数排完序之后一定是连续的一段 Read More
posted @ 2018-10-17 14:05 lleozhang Views(228) Comments(0) Diggs(0) Edit
题意:给定一张n个点,m条边的无向联通图,其中m-n<=20,共q次询问,每次询问求给定两点u,v间的最短路长度 第一眼看见这题的时候,以为有什么神奇的全图最短路算法,满心欢喜的去翻了题解,发现就四个字“树上套环”! 其实这题的提示很明显:m-n<=20! 这说明,如果我们对这个图做一次生成树,那么 Read More
posted @ 2018-10-16 16:48 lleozhang Views(167) Comments(0) Diggs(0) Edit
表示我这种蒟蒻面对这种递推第一思想显然是打表啊 先贴个用来打表的暴力: 实测这个打表程序是正确的(可以获得30分) 接下来是本人心路历程: 观察一下:1-1,2-5,3-16,4-45...找一下前后项吧! 观察前后项的倍数关系应该在2~3之间,那先定一个基础表达式 f[i]=2f[i-1]+... Read More
posted @ 2018-10-16 16:02 lleozhang Views(162) Comments(0) Diggs(0) Edit
该文被密码保护。 Read More
posted @ 2018-10-15 20:47 lleozhang Views(4) Comments(0) Diggs(0) Edit
一.进制转化 将k进制数转化为十进制数: 设k进制数为(abcd)k,则对应十进制数为 (小数同理,乘k的负幂次) 将十进制数转成k进制数: 设十进制数为x: t1=x/k,t2=x mod k t11=t1/k,t22=t1 mod k ...... t1n=t1 n-1 /k,t2 n= t1 Read More
posted @ 2018-10-15 19:15 lleozhang Views(156) Comments(0) Diggs(0) Edit
levels of contents