08 2017 档案

摘要:"传送门" 题目大意 给一颗n个点的树,求树的直径(最长的一条链) 题解 先随便找一个点u,dfs出离它最远的点v 于是有以下情况: 直径就是这条链 直径经过u,是这条链的延长 直径不经过u 只需要从v再进行一边dfs,便可以求出直径。 code cpp include include includ 阅读全文
posted @ 2017-08-31 18:59 CzYoL 阅读(265) 评论(0) 推荐(0)
摘要:"传送门" 题目大意 有n个村庄,每个村庄都有一个(x, y)坐标和z海拔,定义两个村庄间的dist为坐标的距离,cost为海拔差的绝对值,求图的一颗生成树,使得$\frac{\sum cost}{\sum dist}$最小。 题解 最小比例生成树的裸题。 看到$\frac{\sum cost}{\ 阅读全文
posted @ 2017-08-31 18:40 CzYoL 阅读(214) 评论(0) 推荐(0)
摘要:"传送门" 题目大意: 给你一些密码片段字符串,让你求长度为n,且至少包含k个不同密码片段串的字符串的数量。 题解: 因为密码串不多,可以考虑状态压缩 设dp[i][j][sta]表示长为i的字符串匹配到j节点且状态为sta的数量。 其中sta存储的是包含的密码串情况,在构建fail指针时,当前节点 阅读全文
posted @ 2017-08-29 21:43 CzYoL 阅读(179) 评论(0) 推荐(0)
摘要:"传送门" 题目大意: 给你一个字符主串和很多病毒串,要求更改最少的字符使得没有一个病毒串是主串的子串。 题解: ac自动机 + dp,用病毒串建好ac自动机,有毒的末尾flag置为true 构建fail指针时,如果fail指针所指节点flag=true,则将当前节点的flag也置为true。 用d 阅读全文
posted @ 2017-08-29 21:36 CzYoL 阅读(224) 评论(0) 推荐(0)
摘要:题目大意 人数n,电梯载重k,电梯限制人数2,给出每个人的体重v,求按照怎样的顺序排队电梯运送的次数越多。 题解 排序后,每次都先选择最小的,然后看最大的上来是否超出载重, 若超出,则这两个对答案贡献2, 若不超出,则再添加一个次小的(不浪费最大的). code cpp include includ 阅读全文
posted @ 2017-08-29 19:56 CzYoL 阅读(302) 评论(0) 推荐(0)
摘要:"传送门" 题目分析 本题主要考察kmp中next数组在求循环时的运用: 字符串是循环的: len % (len next[len]) == 0 字符串循环次数: len / (len next[len]) 字符串循环节长度: len next[len] code cpp include inclu 阅读全文
posted @ 2017-08-29 19:01 CzYoL 阅读(272) 评论(0) 推荐(0)
摘要:HDU2222 "传送门" 题目分析 裸题:注意构建自动机用的是模式串,思想和kmp很类似。 code: cpp include include include using namespace std; const int N = 1e4 + 5, M = 55, L = 1e6 + 5; int 阅读全文
posted @ 2017-08-29 18:53 CzYoL 阅读(147) 评论(0) 推荐(0)
摘要:传送门 题目分析 考虑将大矩阵的每个1*q矩阵哈希值求出,然后让小矩阵的第一行在大矩阵中找,如果找到,并且能匹配所有行则出现过。否则没出现过。 在初始化1*q矩阵时可以进行优化:假设该行为123456,要求1*5的矩阵哈希值,可以先暴力求出1~5,为 $1 * H^4 + 2 * H^3 + 3 * 阅读全文
posted @ 2017-08-26 11:31 CzYoL 阅读(339) 评论(0) 推荐(0)
摘要:传送门 题目分析 题意即求有多少对字符串只相差一个字符,枚举删除每个字符后的哈希, 看有多少相等即可。 比如有如下字符串:$Sd123$,其中S部分的哈希值为H,删除的是d,则原字符串的哈希值为$$(((H * T + d) * T + 1) * T + 2) * T + 3 = H * T^4 + 阅读全文
posted @ 2017-08-26 09:12 CzYoL 阅读(161) 评论(0) 推荐(0)
摘要:题目分析 朴素的做法就是预处理下一个目的地,然后跑模拟,超时。 本题最重要的考点是倍增优化。设$fa[i][j]$表示a从i出发行驶$2^j$“次”后行驶的路程,$fb[i][j]$表示从i出发行驶$2^j$“次”后行驶的路程,注意这里的"次",a、b交替行驶。$f[i][j]$表示从i出发a、b交 阅读全文
posted @ 2017-08-25 20:16 CzYoL 阅读(209) 评论(0) 推荐(0)
摘要:题目分析 题目答案不具有单调性,所以不可以二分,转而思考贪心。因为无法确定位置,所以考虑如何才能让对于每一个$1 ~ i$使得$i$的答案最大,即$1 ~ i$最后一个最优。若设对于位置$i$,$a[i]$表示左手,$b[i]$表示右手,$S$为其前面所有人的左手之积,那么他的答案就是$\frac{ 阅读全文
posted @ 2017-08-25 20:08 CzYoL 阅读(329) 评论(0) 推荐(0)
摘要:独木桥 怎么说呢 传纸条 & 方格取数 多维dp的应用 code传纸条 code方格取数 矩阵取数游戏 问题识破 + dp + 高精度 #include<iostream> #include<cstdio> #include<string> #include<cstring> using names 阅读全文
posted @ 2017-08-23 22:22 CzYoL 阅读(171) 评论(0) 推荐(0)
摘要:题目描述 FST是一名可怜的 OIer,他很强,但是经常 fst,所以 rating 一直低迷。 但是重点在于,他真的很强!他发明了一种奇特的加密方式,这种加密方式只有OIer才能破解。 这种加密方式是这样的:对于一个 01 串,他会构造另一个 01 串,使得原串是在新串中没有出现过的最短的串。 现 阅读全文
posted @ 2017-08-23 16:02 CzYoL 阅读(426) 评论(0) 推荐(0)
摘要:时间限制:2s 内存限制:512MB 【题目描述】 申徒嘉和郑子产都是伯昏无人的学生,子产因为申徒嘉是残疾人,非常看不起他,于是想要刁难他。 子产给了申徒嘉 n个数 a1,a2...an。 现在他要求申徒嘉重新排列这些数,使得 H=||...|b1-b2|-b3|-b4|-...|-bn|最大(b 阅读全文
posted @ 2017-08-22 17:06 CzYoL 阅读(145) 评论(0) 推荐(0)
摘要:【题目描述】 惠子说:“连环可解也”。 这说明他是一个破解机关的高手,连连环都能解开,鲁班锁什么的自然不在话下。一位鲁班的后人非常不服气,于是找到惠子,给他出了一道题。 他首先给了惠子一个长度为 n的字符串s和一个长度为 m 的字符串 t,现在,他有 k 个询问,每个询问是给出两个整数 L,R,询问 阅读全文
posted @ 2017-08-22 17:03 CzYoL 阅读(220) 评论(0) 推荐(0)
摘要:传送门(权限题) 题目分析 题意为:求区间内有多少种不同的数,带修改。 首先对原序列分块,用last[i]表示与i相同的上一个在哪里,然后将分块后的数组每个块内的按照last进行排序,这样查询时就可以暴力枚举散块,看last[i]是否<l,是则ans++,并二分枚举每个整块,查找出last < l 阅读全文
posted @ 2017-08-19 16:55 CzYoL 阅读(207) 评论(0) 推荐(0)
摘要:传送门(权限题) 题目分析 题意为:给定一个数列,修改和查询两种操作,修改每次给定一个区间,区间的所有元素都加上一个给定值,查询询问一段区间的数权值大于等于给定值的数有多少个。 首先对原序列分块,然后将分块后的数组每个块内的数字进行排序,这样查询时就可以暴力枚举散块,并二分枚举每个整块。对于修改,对 阅读全文
posted @ 2017-08-19 13:37 CzYoL 阅读(211) 评论(0) 推荐(0)
摘要:天天爱跑步 lca + 树上差分 #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<string> #include<cmath> #include<algorithm> #include 阅读全文
posted @ 2017-08-18 18:15 CzYoL 阅读(219) 评论(0) 推荐(0)
摘要:题目描述 Description 题目描述 Description A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路。每一条道路对车辆都有重量限制,简称限重。现在有 q 辆货车在运输货物,司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重的货物。 输入描述 Input De 阅读全文
posted @ 2017-08-17 23:24 CzYoL 阅读(225) 评论(0) 推荐(0)
摘要:传送门 题目分析 每个节点都是一颗(大根堆)左偏树,先按bfs序存入数组,然后倒着从底层开始:如果当前节点的子树sum > m 那么就把根节点删去,然后统计更新答案,并将这棵树和父节点合并。 code 阅读全文
posted @ 2017-08-17 14:40 CzYoL 阅读(169) 评论(0) 推荐(0)
摘要:传送门 题目分析 起初每个岛都是一个平衡树, 并查集的祖先都是自己。合并两岛时,pri较小的祖先会被作为合并后的祖先, 而两颗平衡树采用启发式合并。查询k值就是基本操作。 code 阅读全文
posted @ 2017-08-17 14:32 CzYoL 阅读(417) 评论(0) 推荐(1)