
51nod
文章平均质量分 62
WA是一笔财富
这个作者很懒,什么都没留下…
展开
-
51nod 1732 51nod婚姻介绍所 后缀数组 + rmq
传送门:51nod1732题意:中文题。思路:看完就感觉是后缀数组,翻了翻白书,果然是模板题,套个rmq就好了。我从网上扒了个后缀数组的模板然后自己写了个线段树实现rmq,其实直接套kuangbin巨巨的模板就好,连带rmq什么都是全的。代码:#include #include #define lson l, mid, rt << 1#define rson mid +原创 2017-07-31 18:46:20 · 273 阅读 · 0 评论 -
51nod 1524 可除图的最大团 dp
传送门:51nod1524题意:中文题。思路:我竟然还想建图搞。。正解:设dp[i]代表以i为最小点权的最大团的大小,根据最大团及可除图的性质容易得到转移方程:dp[i] = max(dp[j] + 1) 其中 i | j。代码:#include#include#define ll long long#define inf 0x3f3f3f3fusing names原创 2017-08-28 18:10:37 · 294 阅读 · 0 评论 -
51nod 1821 最优集合 并查集 || 栈
传送门:51nod 1821题意:中文题。思路:要做这题需要知道一个前提:假设目前集合优美值为now,那么加入一个x(x剩下的就是贪心从b集合里取尽量大的k个数了,每次a集合中的数无法使now继续增大时,就从b集合中取一个尽量大的数,因为每个数只能取一次,取走就相当于没了,因此我们可以用并查集维护下标之间的相邻关系,这也算是经典运用了吧。另外还可以用栈处理贪心的过程:维护一个栈,将原创 2017-08-23 21:13:22 · 245 阅读 · 0 评论 -
51nod 1564 && 1674 区间的价值(V2) 数列分治
传送门:51nod 1674题意:中文题。思路:首先要知道的一点是,对于一段数列进行连续的或操作,得出来的结果是单调不减的,进行与操作的出来的结果是单调不增的,并且由于这个题数据范围只有1e9,因此或(与)操作的出来的不同的结果最多只有30(30)个。知道了这一点,我们就可以对数列进行分治计算了,每次将右半边与(或)操作得到的不同值及其个数计算出来,然后枚举左半边的结果,计算出对答案的原创 2017-08-27 22:01:20 · 417 阅读 · 0 评论 -
51nod 1603 限高二叉排列树 计数dp
传送门:51nod1603题意:求有n个节点且高度不低于h的二叉树有多少种形态。思路:dp[n][h]表示有n个节点且高度拓展:一个n个节点的二叉树的所有形态数就是卡特兰数。卡特兰数应用。代码:#include#define ll long long#define inf 0x3f3f3f3fusing namespace std;typedef pair P;con原创 2017-08-25 23:20:56 · 263 阅读 · 2 评论 -
51nod 1737 配对 树的重心
传送门:51nod1737题意:中文题。思路:画图可以得知对于每一条边,它对答案的贡献一定不超过它两端子树的大小的较小值,并且使答案最大的每条路径都应该是经过重心的,因此题目可以转化为求所有点到重心的权值和。(直接按发现的规律求也可以)。代码:#include#include#define ll long long#define inf 0x3f3f3f3fusing na原创 2017-08-25 20:41:03 · 246 阅读 · 0 评论 -
51nod 1675 序列变换 莫比乌斯反演(第二种形式)
传送门:51nod 1675题意:中文题。思路:明明很像多校的一个题,还是简化版,而我愣是没想起来用莫比乌斯反演。。这题用的是莫比乌斯反演的第二种转化形式:设f[i]为最大公因数为i时的计数F[i]为公因数包含i的时候的计数显然满足第一个式子,因此我们就可以转化成二个式子求出f[1].代码:#include#include#define MAXN 100原创 2017-08-25 13:47:00 · 523 阅读 · 0 评论 -
51nod 1299 监狱逃离 树形DP
传送门:51nod 1299题意:中文题。思路://dp[i]表示警察全部放置完成后i节点的状态 //0 表示逃犯不能到达i节点并且i节点能(经由其子树)到达出口(不经过警察的情况下)//1 表示逃犯不能到达i节点并且i节点不能(经由其子树)到达出口(不经过警察的情况下)//2 表示逃犯能到达i节点并且i节点不能(经由其子树)到达出口(不经过警察的情况下) 容易得知原创 2017-08-14 00:01:21 · 361 阅读 · 0 评论 -
51nod 1799 二分答案 思维 + 分块打表
传送门:51nod 1799题意:中文题。思路:先弄懂题目要求,其实要求的就是n!种排列中二分到最后使得r == k 的数目。然后明确知道了二分的结果位置k,那么二分的过程就是确定的,而影响二分的只有二分过程中mid位置的数相对于m的大小。因此我们先模拟对原序列做一次二分,记录二分过程中mid位置上应该有多少个大于m的,多少个小于等于m的,分别假设有x个和y个的话,那么最终答案就是原创 2017-08-16 20:23:24 · 257 阅读 · 0 评论 -
51nod 1509 加长棒 组合数学(隔板法)
传送门:51nod 1509题意:中文题思路:来自:点击打开链接巧妙之处在于当某一组可以为空时,可以再加上组数个物品,使得每一组至少有一个物品,然后就又可以用隔板法了。代码:#include#define ll long long#define inf 0x3f3f3f3fusing namespace std;typedef pair P;const int MAXN原创 2017-09-11 17:17:38 · 275 阅读 · 0 评论