上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 42 下一页
摘要: 题意:构成MST是否唯一 思路: 问最小生成树是否唯一。我们可以先用Prim找到一棵最小生成树,然后保存好MST中任意两个点i到j的这条路径中的最大边的权值Max[i][j],如果我们能找到一条边满足:他不是最小生成树中的边,并且它的权值等于Max[i][j],那么他就可以代替MST中的这条边,所以 阅读全文
posted @ 2018-07-12 15:43 KirinSB 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 思路: 设dp[i]为覆盖i所用的最小数量,那么dp[i] = min(dp[k] + 1),其中i - 2b <= k <= i -2a,所以可以手动开一个单调递增的队列,队首元素就是k。 初始状态为dp[0] = 0,注意喷水覆盖的范围是偶数且不重叠,所以插入队列的必是偶数。有牛的地方不能作为边 阅读全文
posted @ 2018-07-12 10:26 KirinSB 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 思路: 大力出奇迹,先用二维树状数组存,然后暴力枚举 算某个矩形区域的值的示意图如下,代码在下面慢慢找... 代码: 阅读全文
posted @ 2018-07-10 20:02 KirinSB 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 思路: 二维线段树模板题,马克一下,以后当模板用 代码: 阅读全文
posted @ 2018-07-10 19:26 KirinSB 阅读(464) 评论(0) 推荐(0) 编辑
摘要: 思路: 树套树,先维护x树,再维护y树,多练练应该就能懂了 代码: 阅读全文
posted @ 2018-07-10 14:25 KirinSB 阅读(271) 评论(0) 推荐(0) 编辑
摘要: Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某 阅读全文
posted @ 2018-07-09 23:32 KirinSB 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 思路: 没想到二维树状数组和一维的比只差了一行,update单点更新,query求和 这里的函数用法和平时不一样,query直接算出来就是某点的值,怎么做到的呢? 我们在更新的时候不止更新一个点,而是四个点,这样就会变成下图这样的效果 看不懂听我讲一下...这和上次嘉诚讲过的差分数组有点像(自觉回顾 阅读全文
posted @ 2018-07-09 18:08 KirinSB 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 思路: 一开始用Kruskal超时了,因为这是一个稠密图,边的数量最惨可能N^2,改用Prim。 Prim是这样的,先选一个点(这里选1)作为集合A的起始元素,然后其他点为集合B的元素,我们要做的就是每次找到B中的一个点,满足这个点到A的权值是B到A的权值中最小的,然后我们把这个点加入到A,再更新B 阅读全文
posted @ 2018-07-09 15:52 KirinSB 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 思路: 只要把status那里写清楚就没什么难度T^T,当然还要考虑前导零! 代码: 阅读全文
posted @ 2018-07-08 15:12 KirinSB 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 思路: 这里的状态分为3种,无13和末尾的1,无13且末尾为1,有13,然后DFS 等我搞清楚数位DP就来更新Orz 代码: 阅读全文
posted @ 2018-07-07 22:03 KirinSB 阅读(193) 评论(0) 推荐(0) 编辑
上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 42 下一页