09 2019 档案

摘要:问题描述 "LG1879" 题解 设opt[i][j]代表前i行,且第i行状态为j的方案数。 枚举j,再枚举kk为上一行的状态。 判断j,k能否共存( ) 计数转移即可。 必须加强位运算能力。 Code cpp include using na 阅读全文
posted @ 2019-09-30 09:46 览遍千秋 阅读(109) 评论(0) 推荐(0) 编辑
摘要:问题描述 "LG1410" 题解 如果$i using namespace std; template void read(Tp &x){ x=0;char ch=1;int fh; while(ch!=' '&&(ch '9'||ch='0'&&ch 阅读全文
posted @ 2019-09-30 08:44 览遍千秋 阅读(153) 评论(0) 推荐(0) 编辑
摘要:问题描述 "LG5367" 题解 康托展开公式: ans=1+(i=1nai)×(ni)! 用树状数组维护一下里面的东西,前缀积维护后面的东西。 Code cpp include using namespace std; 阅读全文
posted @ 2019-09-29 19:10 览遍千秋 阅读(108) 评论(0) 推荐(0) 编辑
摘要:问题描述 "LG2578" 题解 用 去重。 bfs即可。 Code cpp include using namespace std; void read(int &x){ x=0;char ch=1;int fh; while(ch!=' '&&(ch '9'||ch='0' 阅读全文
posted @ 2019-09-29 17:19 览遍千秋 阅读(116) 评论(0) 推荐(0) 编辑
摘要:问题描述 "LG1131" 题解 正难则反,把从一个点出发到叶子结点看做从叶子结点走到那个点。 DP方程很显然。 Code cpp include using namespace std; define int long long void read(int &x){ x=0; 阅读全文
posted @ 2019-09-27 21:17 览遍千秋 阅读(123) 评论(0) 推荐(0) 编辑
摘要:问题描述 "LG2145" 题解 把颜色相同的一段看做一个点。 然后类似于合唱队区间DP即可。 但是这题好像出过一些情况,导致我包括题解区所有人需要特判最后一个点。 Code cpp include using namespace std; template void read 阅读全文
posted @ 2019-09-25 23:46 览遍千秋 阅读(124) 评论(0) 推荐(0) 编辑
摘要:问题描述 "洛谷(有翻译)" 题解 DP,设opti代表前i个字符方案数。 Trie优化,刷表法。 Code 阅读全文
posted @ 2019-09-25 23:20 览遍千秋 阅读(131) 评论(0) 推荐(0) 编辑
摘要:问题描述 "LG5202" 题解 $$opt[i]=xx+(cnt[i] cnt[yy] using namespace std; template void read(Tp &x){ x=0;char ch=1;int fh; while(ch!=' '&&(ch'9')) ch=getchar( 阅读全文
posted @ 2019-09-22 22:05 览遍千秋 阅读(174) 评论(0) 推荐(0) 编辑
摘要:"20190922 HZOJ NOIP2019 Round 7" "20191003 HZOJ NOIP2019 Round 8" "20191004 HZOJ NOIP2019 Round 9" "20191102 HZOJ NOIP2019 Round 12" 阅读全文
posted @ 2019-09-22 10:58 览遍千秋 阅读(191) 评论(0) 推荐(1) 编辑
摘要:Shortcut 问题描述 "LG5201" 题解 最短路树。 显然奶牛的路径就是从1走到各个草地,于是从1跑最短路,构建最短路树。 为了保证字典序,从1n依次枚举每个结点,构建。 显然,用贪心的思想,这条边一定是从某个结点x联向1的。 然后深度遍历这 阅读全文
posted @ 2019-09-22 10:39 览遍千秋 阅读(148) 评论(0) 推荐(0) 编辑
摘要:SleepyCowSorting 问题描述 "LG5200" 题解 树状数组。 设c[i]代表[1,i]中归位数。 显然最终的目的是将整个序列排序为一个上升序列,于是倒序枚举,先把最后有序的插入。 剩下来前面无序的就是要操作的,于是直接输出操作次数。 接下来方案很容 阅读全文
posted @ 2019-09-22 10:38 览遍千秋 阅读(224) 评论(0) 推荐(0) 编辑
摘要:CowPoetry 问题描述 "LG5196" 题解 因为每句诗的长度一定是k,所以自然而然想到背包。 设opt[i][j]代表到第i位时,结尾为j的方案数。 背包,注意DP顺序为先枚举i,后枚举单词。(Debug了一小时就因为这个) 阅读全文
posted @ 2019-09-22 10:36 览遍千秋 阅读(257) 评论(0) 推荐(0) 编辑
摘要:综述 这次是USACO2019JAN Gold的题目。 CowPoetry 题解 因为每句诗的长度一定是k,所以自然而然想到背包。 设opt[i][j]代表到第i位时,结尾为j的方案数。 背包,注意DP顺序为先枚举i,后枚举单词。(D 阅读全文
posted @ 2019-09-22 10:33 览遍千秋 阅读(461) 评论(0) 推荐(0) 编辑
摘要:问题描述 "LG2530" 题解 设opt[i][a][b][c][d]代表装到第i个后,第1,2,3手上分别还剩a,b,c个的最小操作数。 记忆化搜索即可。 启示:如果状态没想法,可以先写爆搜,确定状态。 Code cpp include using name 阅读全文
posted @ 2019-09-21 20:49 览遍千秋 阅读(152) 评论(0) 推荐(0) 编辑
摘要:问题描述 "LG2893" "POJ3666" 题解 对于A中的每一个元素,都将存在于B中。 对A离散化。 设opti,j代表[1,i],结尾为j的最小代价。 opti,j=mink[1,m]opti1,k+|aik| 阅读全文
posted @ 2019-09-21 20:45 览遍千秋 阅读(145) 评论(0) 推荐(0) 编辑
摘要:问题描述 "TYVJ1071" 题解 暴力DP 首先,一个O(n3)的解法: 设opti,j代表a的前i个和b的前j个的LCIS. 显然有: 1.ai=bj opti,j=opti1,j 2.$ 阅读全文
posted @ 2019-09-21 19:56 览遍千秋 阅读(157) 评论(0) 推荐(0) 编辑
摘要:问题描述 "LG3004" 题解 把拿走的过程反向,看做添加的过程,于是很显然的区间DP模型。 设opti,j代表区间[i,j]中Bessie可以获得的最大值,显然有 optl,r=suml,rmin(optl+1,r,optl,r+1) 于是爆了空间 阅读全文
posted @ 2019-09-20 23:43 览遍千秋 阅读(134) 评论(0) 推荐(0) 编辑
摘要:问题描述 "LG2770" "LOG6122" 题解 教训:关掉流同步之后就不要用其他输入输出方式了。 拆点。 两个拆点之间连(1,1),其他连(1,0) Code cpp include using namespace std; void read(int &x){ 阅读全文
posted @ 2019-09-20 22:00 览遍千秋 阅读(151) 评论(0) 推荐(1) 编辑
摘要:问题描述 "LG2512" "BZOJ1045" 题解 这是一个链状问题的环状版本。 问题最终变为给定数轴上的n个点,找出一个到他们的距离之和尽量小的点,而这个点就是这些数中的中位数。 ~~网络流24题的负载平衡问题是双倍经验~~ Code cpp include usin 阅读全文
posted @ 2019-09-19 23:56 览遍千秋 阅读(151) 评论(0) 推荐(1) 编辑
摘要:问题描述 "LG2053" "BZOJ1070" 题解 将m个修理工拆为n×m个,将修理工和车辆看做二分图,连出一个完全二分图。 边流量为1,费用为时间,费用流即可。 Code cpp include using namespace std; temp 阅读全文
posted @ 2019-09-19 12:14 览遍千秋 阅读(113) 评论(0) 推荐(1) 编辑
摘要:问题描述 "LG5338" "LOJ3105" "BZOJ5509" 题解 建立一棵Treap,把原来的val换成两个值ac,tim 原来的比较valaacb,则nodeanodeb ~~10s时限简直要卡爆评测机~~ Code c 阅读全文
posted @ 2019-09-18 23:29 览遍千秋 阅读(190) 评论(0) 推荐(0) 编辑
摘要:问题描述 "LG4516" "LOJ2546" 题解 好一个毒瘤题。 hkk:JSOI的签到题 设opt[i][j][0/1][0/1]代表结点i的子树,放置j个,i放不放,i是否覆盖的方案数。 DP方程太长,无力打出(真·原因:我要睡觉!)。 Code c 阅读全文
posted @ 2019-09-18 00:03 览遍千秋 阅读(159) 评论(2) 推荐(0) 编辑
摘要:问题描述 "LG2045" 题解 费用流。 套路拆点,把(i,j)拆为两个点,在这两个点之间连边:一条边流量为1,费用为ai,j,另一条边为流量为INF,费用为0(表示联通)。 然后在(i,j)的出点向(i+1,j)(i,j+1)连边,流量INF,费用$0 阅读全文
posted @ 2019-09-17 22:26 览遍千秋 阅读(142) 评论(0) 推荐(0) 编辑
摘要:问题描述 "LG1640" 题解 一开始以为是把(a,b)作为左右部点,发现n1000000,建图是O(n2)的,会爆掉 属性值向i建边。 Code cpp include using namespace std; template void rea 阅读全文
posted @ 2019-09-16 23:56 览遍千秋 阅读(160) 评论(0) 推荐(2) 编辑
摘要:问题描述 "LG2602" "BZOJ1833" 题解 数位DP板子题。 注意限制位数、前导零。 [a,b]=[1,b][1,a1] Code cpp include using namespace std; define int long lon 阅读全文
posted @ 2019-09-16 23:26 览遍千秋 阅读(191) 评论(0) 推荐(0) 编辑
摘要:问题描述 "LG SP" 题解 发现n,k都非常小,尤其是k,k5,于是直接开5维进行DP 用记忆化搜索实现。 Code cpp include using namespace std; define int long long tem 阅读全文
posted @ 2019-09-15 22:17 览遍千秋 阅读(190) 评论(0) 推荐(0) 编辑
摘要:这是一个大坑,之后会慢慢整理上来的 线性DP 「TJOI2019」甲苯先生的字符串 线性动态规划+矩阵加速 SP15637 Mr Youngs Picture Permutations 高维动态规划 LG5003 跳舞的线 - 乱拐弯 「SCOI2009」粉刷匠 线性DP 阅读全文
posted @ 2019-09-15 20:57 览遍千秋 阅读(328) 评论(3) 推荐(1) 编辑
摘要:问题描述 "LG3825" "BZOJ4945" "LOJ2305" 题解 发现对于每个地图,如果没有A,B,C地图不可以使用a,b,c,就是一个3SAT问题。 有了这个限制之后,A,B,C地图就变为了2SAT问题,但是x地图还是$\m 阅读全文
posted @ 2019-09-15 14:59 览遍千秋 阅读(129) 评论(0) 推荐(0) 编辑
摘要:问题描述 "LG1198" "BZOJ1012" 题解 我们把所有操作离线,设一共有n个插入操作。 于是提前建立n个数,全部设为INF 接着逐个处理操作即可。 Code cpp include using namespace std; define int lon 阅读全文
posted @ 2019-09-14 20:17 览遍千秋 阅读(117) 评论(0) 推荐(1) 编辑
摘要:问题描述 "LG5337" "BZOJ5508" 题解 设opti,j(i[1,n],j[1,26])代表区间[1,i],结尾为j的写法。 设existi,j(i,j[1,26])代表(i,j)能否前后相邻,如果为1,则不能。 则有 阅读全文
posted @ 2019-09-14 15:45 览遍千秋 阅读(211) 评论(0) 推荐(1) 编辑
摘要:问题描述 "LG2598" "BZOJ1412" 题解 看到要把狼和羊 两个 物种 分开 自然想到最小割。 发现(x,y)可以向上下左右走以获得贡献,所以建边:(x,y),(x1,y),(x,y),(x,y1),(x,y),(x,y+1),(x,y),(x+1,y)(要在矩阵 阅读全文
posted @ 2019-09-13 22:03 览遍千秋 阅读(141) 评论(0) 推荐(0) 编辑
摘要:问题描述 "LG2766" 题解 Subtask1 一个求最长不下降子序列的问题,发现n500,直接O(n2)暴力DP即可。 Subtask2opti代表区间[1,i],且以i为结尾的最长不下降子序列。 考虑拆点, 阅读全文
posted @ 2019-09-13 17:22 览遍千秋 阅读(159) 评论(0) 推荐(0) 编辑
摘要:问题描述 "LG1983" 题解 考虑建立有向边(a,b),代表ab低级。 于是枚举每一辆车次经过的车站x[l,r],如果不是车辆停靠的车站,则从x向每个停靠了的车站连边。 拓扑排序,建立分层图,搞出最大的层数即可。 Code cpp inclu 阅读全文
posted @ 2019-09-13 13:00 览遍千秋 阅读(188) 评论(6) 推荐(1) 编辑
摘要:问题描述 "LG4171" "BZOJ1823" 题解 显然,每个评委对每个材料的满式/汉式要求是对n个元素的0,1取值限制。 显然想到2SAT 于是就可以切掉了。 Code cpp include using namespace std; te 阅读全文
posted @ 2019-09-13 11:15 览遍千秋 阅读(141) 评论(0) 推荐(0) 编辑
摘要:问题描述 "LG4782" 题解 对于一个限制条件,建边如下: 如果x,x在同一个强联通分量里,则不行,否则可以 构造方案:输出$bel_i using namespace std; void read(int &x){ x=0;char ch=1;int fh; while(ch!=' '& 阅读全文
posted @ 2019-09-12 21:37 览遍千秋 阅读(134) 评论(0) 推荐(0) 编辑
摘要:问题描述 "Codeforces" "洛谷(有翻译)" 题解 最短路树,是一棵在最短路过程中构建的树。 在Dijkstra过程中,如果最终点y是由点x转移得到的,则在最短路树上xy的父节点,xy的最短路树上长度等于原图上转移x,y的边的长度。 显 阅读全文
posted @ 2019-09-11 23:53 览遍千秋 阅读(228) 评论(0) 推荐(0) 编辑
摘要:问题描述 "LG4819" "BZOJ2438" 题解 发现如果有一些人之间认识关系形成环,只需要问一个人就能把控整个环。 Tarjan缩点。 缩点之后所有入度为0的点,必须询问。 注意特判有没有孤身一人的。 Code cpp include usin 阅读全文
posted @ 2019-09-10 22:33 览遍千秋 阅读(141) 评论(0) 推荐(0) 编辑
摘要:问题描述 "LG2272" "BZOJ1093" 题解 观察半联通的定义,发现图中的一些结点,构成的链一定是一个半联通子图。 此时存在的环可能会干扰求解,于是Tarjan缩点。 于是求最长链,过程中计数即可。 Code cpp include using 阅读全文
posted @ 2019-09-09 23:46 览遍千秋 阅读(212) 评论(0) 推荐(0) 编辑
摘要:问题描述 "LG2463" "BZOJ4698" 题解 看到n个数串,一开始不太好处理,可以很容易想到把这n个数串连到一起,形成一个大串,但是每个串之间不容易处理。 经过思考,想到在每个串中间加一个不可能出现在原数串中的数,取2333。 对大串做后缀数组,求LCP阅读全文
posted @ 2019-09-08 16:58 览遍千秋 阅读(160) 评论(0) 推荐(0) 编辑
摘要:问题描述 "LG2852" 题解 字符串性质:字符串s的每个字串等于每个后缀的所有前缀 对输入的东西离散化,然后把数值看做ASCII后缀排序 二分答案,二分长度。 显然一段相同的字串,一定是连续一段后缀的公共前缀。 如此check即可。 Code 阅读全文
posted @ 2019-09-08 11:35 览遍千秋 阅读(137) 评论(0) 推荐(0) 编辑
摘要:问题描述 "LG2447" "BZOJ1923" 题解 显然是一个高斯消元,但是求的东西比较奇怪 发现这个方程组只关心奇偶性,于是可以用一个bitset进行优化,用 来进行消元操作。 Code cpp include using namespace std 阅读全文
posted @ 2019-09-08 10:20 览遍千秋 阅读(141) 评论(0) 推荐(0) 编辑
摘要:问题描述 "LG4035" "BZOJ1013" 题解 设答案为(p1,p2,p3,...,pn) 因为是一个球体,令其半径为r,则有 i=1n(aipi)2=dis2 拆式子可得 $$\sum_{i=1}^{n}a_i^2 2\ 阅读全文
posted @ 2019-09-08 08:31 览遍千秋 阅读(164) 评论(0) 推荐(0) 编辑
摘要:问题描述 "LG3389" 题解 高斯消元,是用来解n元一次方程组的算法,时间复杂度O(n3) 这样就构造出了这个方程组的矩阵 目标就是把这个矩阵左边n×n消为单位矩阵 Code cpp include using namespace std; vo 阅读全文
posted @ 2019-09-07 21:51 览遍千秋 阅读(152) 评论(0) 推荐(0) 编辑
摘要:问题描述 "LG4341" "BZOJ2251" BZOJ需要权限号 题解 字符串的性质:一个字符串s所有的字串,等于s所有后缀的前缀。 枚举这个字符串的每一个后缀,将其插入一个Trie 在插入Trie的过程中可以非常方便的维护这个后缀的每个前缀。 阅读全文
posted @ 2019-09-07 11:17 览遍千秋 阅读(118) 评论(0) 推荐(0) 编辑
摘要:问题描述BZOJ1031LG4051 题解发现这是一个环,根据经验,破环为链,于是字符环变为了字符串之后对这个复制之后的字符串求后缀数组。len代表原字符串长度,代表复制后的字符串长度最后输出的时候,判断一下,如果SAilen,则输出stri。 Code 阅读全文
posted @ 2019-09-06 22:57 览遍千秋 阅读(164) 评论(0) 推荐(0) 编辑
摘要:问题描述 "LG2444" "BZOJ2938" I AC自动机 AC自动机是一种多模式串匹配算法,本萌新今天刚学了它qwq 约定在构造AC自动机的过程中,Trie树上的边和由于AC自动机中 阅读全文
posted @ 2019-09-05 23:38 览遍千秋 阅读(117) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示