[NOIP2018 提高组] 保卫王国】的更多相关文章

思路: 首先想到每次询问两个点后就从这两个点开始往上爬,沿路更新 dp 值即可. #include <bits/stdc++.h> #define For(i,a,b) for(int i=a;i<=b;i++) #define Rev(i,a,b) for(int i=a;i>=b;i--) #define clr(a,v) memset(a,v,sizeof(a)) #define Freopen(file) \ freopen(file".in",&quo…
题面 题目链接-Luogu 题目链接-Loj(要加Freopen) 题解 什么是动态DP? OneInDark:你不需要知道这么多,你只需要知道是利用了广义矩阵乘法就够了! 广义矩乘 广义矩阵乘法,简单来说,就是把基本的 乘法 和 加法 运算符改成其它运算符,同时这两种运算要满足 前者对后者有分配律,如:加法 和 最大或最小值,按位与 和 异或 等.因为,我们会发现,乘法 和 加法 组成的传统矩阵乘法之所以有哪些性质,其根本原因就在于乘法对加法的分配律. 举个例子,有这么个 DP 转移: d p…
[NOIp2018提高组]旅行: 题目大意: 一个\(n(n\le5000)\)个点,\(m(m\le n)\)条边的连通图.可以从任意一个点出发,前往任意一个相邻的未访问的结点,或沿着第一次来这个点的边返回.需要遍历每一个点.没经过一个新的结点,就将这个结点写下来.最终可以得到一个序列.求字典序最小的序列. 思路: 对于树的情况,显然从\(1\)出发,每次从字典序最小的相邻结点DFS即可. 对于有环的情况,由于环只有一个,我们可以将环找出来,枚举删掉环上的每一条边,然后按树的情况求解即可. 时…
[NOIp2018提高组]赛道修建 题目大意: 给你一棵\(n(n\le5\times10^4)\)个结点的树,从中找出\(m\)个没有公共边的路径,使得第\(m\)长的路径最长.问第\(m\)长的路径最长可以是多少. 思路: 二分答案+树形DP.\(f[x]\)表示以\(x\)为根的子树中最多能找出几个长度\(\ge k\)的路径.\(g[x]\)表示去掉已经满足的路径,从\(x\)子树内往上连的最长的路径有多长. 转移时将所有子结点的贡献\(g[y]+w\)排序.若贡献已经\(\ge k\)…
[NOIp2018提高组]货币系统 题目大意: 有\(n(n\le100)\)种不同的货币,每种货币的面额为\([1,25000]\)之间的一个整数.若两种货币系统能够组合出来的数是相同的的,那我们就称这两种货币系统是等价的.给定一个货币系统,求不同面额货币数最少的等价的货币系统. 思路: 将面额从小到大排序,如果一种面额能够被其它面额表示出来,那么这种面额就是多余的.因此只需要跑一个背包即可. 源代码: #include<cstdio> #include<cctype> #inc…
[NOIp2013提高组]积木大赛/[NOIp2018提高组]铺设道路 题目大意: 对于长度为\(n(n\le10^5)\)的非负数列\(A\),每次可以选取一个区间\(-1\).问将数列清零至少需要几次操作. 思路: 差分后,将大于\(0\)的差分累加入答案即可. 源代码: #include<cstdio> #include<cctype> #include<algorithm> inline int getint() { register char ch; whil…
NOIP2018提高组省一冲奖班模测训练(六) https://www.51nod.com/Contest/ContestDescription.html#!#contestId=80 20分钟AC掉第一题. 然后第二题感觉和最长公共子序列有关,怒干2h,写出了一个错误的算法 只拿了百分之20的数据的分 第三题觉得是数学题,然后推不出来(然而正解是dp……似曾相识的场景) A 工程制图基础 https://www.51nod.com/Contest/Problem.html#!#contestP…
NOIP2018提高组省一冲奖班模测训练(五) http://www.51nod.com/Contest/ContestDescription.html#!#contestId=79 今天有点浪…… 第一题想了一个多小时想到了正解,然后敲到一半就去看lol总决赛了(恭喜IG!!!!!!) 然后就没有然后了…… A 循环 小D站在一个长度为n的环,环上的位置从0到n-1编号.位置0与位置n-1相邻.对于一个位置i, 小D只能跳到距离位置i不超过R[i]的位置上. 可以顺时针也可以逆时针跳.比如当n…
NOIP2018提高组金牌训练营——动态规划专题 https://www.51nod.com/Live/LiveDescription.html#!#liveId=19 多重背包 二进制优化转化成01背包就好了 1503 猪和回文 http://www.51nod.com/Challenge/Problem.html#!#problemId=1503 一只猪走进了一个森林.很凑巧的是,这个森林的形状是长方形的,有n行,m列组成.我们把这个长方形的行从上到下标记为1到n,列从左到右标记为1到m.处…
NOIP2018提高组省一冲奖班模测训练(四) 这次比赛只AC了第一题,而且花了40多分钟,貌似是A掉第一题里面最晚的 而且还有一个半小时我就放弃了…… 下次即使想不出也要坚持到最后 第二题没思路 第三题想用分块搞一搞,然后发现空间开不下(其实可以用分块搞) 主要是认识了今天AK的曲恒毅大佬,收获很大 砍树 小D有一棵树,这棵树有n个节点,n-1条边,保证连通.树上每个点要么被染成黑色,要么是白色.他定义一棵树的奇怪值为:这棵树中,白色节点与黑色节点数量的差的绝对值.比如这个例子中,树上有5个白…