03 2019 档案

摘要:~~害怕,可怜几何题~~ ~~果然不会~~ 题目就是说给你两个凸包,每次询问给你一个向量 $c$ 问你能不能从两个凸包 $A$ , $B$ 里分别找到一个点 $a$ , $b$ 满足 $a+c=b$ 。 考虑怎样的向量可以满足。 发现只有 让B中的每一个点 A中的每一个点的集合 中的向量可以满足。因 阅读全文
posted @ 2019-03-27 22:09 Xu-daxia 阅读(365) 评论(0) 推荐(0) 编辑
摘要:一眼望去不会。 考虑问题中的$f(i,j)=|\sum_{p=i}^{j}​a_p​ |$的实际意义。 其实就是前缀和相减的绝对值。 $f(i,j)=|\ sum[j] sum[i 1]\ |$ $f(i,j)=max(sum[j] sum[i 1],sum[i 1] sum[j])$ 那加上x呢。 阅读全文
posted @ 2019-03-27 21:52 Xu-daxia 阅读(223) 评论(0) 推荐(0) 编辑
摘要:从源到每一个人连一条容量为 $1$ 的边。 从每一个导师到汇连一条容量为导师战队人数的边。 第一问我们依次枚举每一个学员,然后再依次与第 $1$至 $m$ 志愿的老师连边,如果与第 $i$ 志愿的导师连边跑最大流使得最大流改变,说明找到了一个导师与自己对应。自己的最小的能实现的志愿就是 $i$ 。如 阅读全文
posted @ 2019-03-27 21:34 Xu-daxia 阅读(312) 评论(0) 推荐(0) 编辑
摘要:这个题还是比较有趣。 小心发现,大胆猜想,不用证明! 我们发现所谓的信用卡凸包上弧的长度总和就是圆的周长! 然后再加上每个长宽都减去圆的直径之后的长方形的凸包周长即可! cpp include include include include include using namespace std; 阅读全文
posted @ 2019-03-27 21:19 Xu-daxia 阅读(209) 评论(0) 推荐(0) 编辑
摘要:题目看完之后就知道不会做。 然后题目的提示十分重要: 对于 n 个 [0,1] 之间的随机变量 x1,x2,...,xn,第k小的那个的期望值是 k/(n+1)。 假设我们知道 $m$ 条边的权值,我们做一遍 克鲁斯卡尔 最小生成树。答案就是最小生成树中的边权最大值。也就是加入后 恰好 使图联通的边 阅读全文
posted @ 2019-03-25 09:31 Xu-daxia 阅读(138) 评论(0) 推荐(0) 编辑
摘要:~~不想写题。不如写写算法总结?~~ KMP 前(che)言(dan) 以前都不知道 $KMP$ 为什么叫 $KMP$ ,现在才明白:该算法是三位大牛: D.E.Knuth 、 J.H.Morris 和 V.R.Pratt 同时发现的,以其名字首字母命名。 $KMP$ 可以在$O(n+m)$的时间复 阅读全文
posted @ 2019-03-25 09:15 Xu-daxia 阅读(248) 评论(0) 推荐(1) 编辑
摘要:AC自动机 前(che)言(dan) Aho Corasick automation ,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出 $n$ 个单词,再给出一段包含 $m$ 个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先得有模式树(字典 阅读全文
posted @ 2019-03-20 09:57 Xu-daxia 阅读(369) 评论(0) 推荐(0) 编辑
摘要:前(che)言(dan) 拉格朗日插值法最早被英国数学家 "爱德华·华林" 于1779年发现,不久后(1783年)由 "莱昂哈德·欧拉" 再次发现。1795年,拉格朗日在其著作《师范学校数学基础教程》中发表了这个插值方法,从此他的名字就和这个方法联系在一起。 ~~所以我把拉格朗日插值法叫做爱德华插值 阅读全文
posted @ 2019-03-17 20:16 Xu-daxia 阅读(473) 评论(0) 推荐(0) 编辑
摘要:前(che)言(dan) 回文树,也叫回文自动机,是2014年被西伯利亚民族发明的(~~找不到百度百科,从一篇博客里蒯过来的~~) 作为解决回文问题的大杀器,回文自动机功能强大,实现技巧充满智慧。——dalao 一个性质 一个长度为N的字符串最多有N个不同的回文子串。 为什么? 我们考虑加入一个字符 阅读全文
posted @ 2019-03-16 20:13 Xu-daxia 阅读(2852) 评论(2) 推荐(5) 编辑
摘要:当区间$[a,b]$和$[c,d]$对应相等时。 我们把两个区间对应位置上的数所在并查集合并。 最后并查集的数量为$num$答案就是$9 10^num$因为是个数,不能有前置$0$。 但是两个区间对应位置上的数所在并查集合并太浪费时间。 怎么办。 考虑使用倍增。 我们用$(i,j)$代表$[i,i+ 阅读全文
posted @ 2019-03-12 22:19 Xu-daxia 阅读(261) 评论(0) 推荐(0) 编辑
摘要:看一眼题。本质不同的字串数。 嘴角微微上扬。 每一次加一个数输出一个答案。 笑容渐渐消失。 等等,$SAM$好像也可以求本质不同的字串。 设当前字符串用$x$表示,每次插入完成后$ans$加上$len[x] len[fa]$就行了。 嘴角微微上扬。 等等,炸空间了。 笑容渐渐消失。 用$map$不就 阅读全文
posted @ 2019-03-12 22:05 Xu-daxia 阅读(180) 评论(0) 推荐(0) 编辑
摘要:重点是如何找到可以配对的$a[i]$和$a[j]$。 把$a[i]$分解质因数。设$a[i]$分解出的质因数的数量为$cnt[i]$。 设$a[i]\geq a[j]$ 那么$a[i]$可以和$a[j]$配对需要满足$a[i]$%$a[j]==0$&&$cnt[i]==cnt[j]+1$ 证明显然。 阅读全文
posted @ 2019-03-11 22:07 Xu-daxia 阅读(221) 评论(0) 推荐(0) 编辑
摘要:喜闻乐见的 圆方树+虚树 图上不好做,先建出圆方树。 然后答案就是没被选到的且至少有两条边可以走到被选中的点的圆点的数量。 语文不好,但结论画画图即可得出。 然后套路建出虚树。 发现在虚树上DP可以得出答案。 所以在虚树上DP即可。 ~~代码极丑~~ cpp include include incl 阅读全文
posted @ 2019-03-11 21:41 Xu-daxia 阅读(228) 评论(0) 推荐(0) 编辑
摘要:惊了,省选考枚举。 显然,学生等待的代价只和最后一科成绩公布的时间有关。 然后$b_i\leq1e5$。 所以就可以枚举最后一科结束的时间$T$。 算出让最后一科在t时间出成绩的最小代价。 取个$min$就行了。 怎么求让最后一科在T时间出成绩的最小代价? 当$B include include i 阅读全文
posted @ 2019-03-11 21:31 Xu-daxia 阅读(178) 评论(0) 推荐(0) 编辑
摘要:本题解并不提供圆方树讲解。 ~~所以不会圆方树的出门右转问yyb~~ 没有修改的话圆方树+链剖。 方点的权值为点双连通分量里的最小值。 然后修改的话圆点照修,每一个方点维护一个小根堆。 考虑到可能被菊花卡死。 我们每一个方点只维护儿子的最小值。 当询问的路径$lca$为方点时,$ans=min(an 阅读全文
posted @ 2019-03-07 22:04 Xu-daxia 阅读(213) 评论(0) 推荐(0) 编辑
摘要:能推出一些性质。 矩形肯定是全部躺着或全部立着比较优。 如图x1显然等于x2,y1显然小于y2。 所以我们就让它们都躺下吧。 然后一定有一组的宽为宽最小的矩形的宽。 然后我们枚举另一组的宽最小的矩形。(当然宽在最小的矩形和枚举的矩形之间的矩形都跟宽最小的矩形一组) 之后就只剩下长的影响了。 假设现在 阅读全文
posted @ 2019-03-06 21:59 Xu-daxia 阅读(257) 评论(0) 推荐(0) 编辑
摘要:显然是$DP$。 设$dp[i][0/1/2]$代表以i为根且$i上有士兵放置/i被控制但i上没有士兵/i没有被控制$的最小代价。 $g[i][0/1/2]$代表对应的方案数。 然后运用乘法原理和加法原理转移即可。 转移是我写过的树形$DP$里比较$X$(不可描述)的。 所以还是看代码吧。。(虽然可 阅读全文
posted @ 2019-03-06 21:42 Xu-daxia 阅读(228) 评论(0) 推荐(0) 编辑
摘要:我们把边从小到大排序,然后依次插入一种权值的边,然后把每一个联通块合并。 然后当一次插入的边不止一条时做矩阵树定理就行了。算出有多少种生成树就行了。 剩下的交给乘法原理。 实现一不小心就会让程序变得很丑 阅读全文
posted @ 2019-03-05 21:33 Xu-daxia 阅读(222) 评论(0) 推荐(0) 编辑
摘要:大体思路是先求出来$f[i]$代表有至少$i$个位置相同的点对数。 然后就已经没什么好害怕的了(跟BZOJ3622一样) 然后这个$f[i$]怎么求呢? 最无脑的方法就是枚举位置,然后$hash$表记一下每种情况出现多少次然后把$\sum_{情况个数}{情况次数 (情况次数 1)}$加到$f[$枚举 阅读全文
posted @ 2019-03-05 21:27 Xu-daxia 阅读(163) 评论(0) 推荐(0) 编辑
摘要:因为当$A include include include include using namespace std; const int mod=1e9+7; int n,m,mx,dp[2100][2100][2],ans; int read(){ int sum=0,f=1;char ch=ge 阅读全文
posted @ 2019-03-05 21:15 Xu-daxia 阅读(217) 评论(0) 推荐(0) 编辑
摘要:乍一看我不会。 先不考虑加点。 先考虑没有那个除$2$。 考虑每一条边的贡献,假设某一条边把这棵树分成大小为x,y的两个部分。 那么这条边最多可以被使用$min(x,y) 2$次(因为有进有出),即贡献最大为$min(x,y) 2 $这条边的权值。 那么能不能让每一条边的被使用达到最大呢? 显然可以 阅读全文
posted @ 2019-03-05 21:07 Xu-daxia 阅读(177) 评论(0) 推荐(0) 编辑
摘要:一般的思路是$dp[i][j]$代表前i个商店购买集合为j的最小费用,枚举每一个商店然后枚举子集。复杂度$O(n3^m)$过不了。 先把$dp[i][j]$设为$dp[i 1][j]$表示钦定在这个商店购物,然后在$dp[i]$中做背包。 具体就是枚举每一个商品买不买。 然后惊奇的发现这样复杂度为$ 阅读全文
posted @ 2019-03-04 08:49 Xu-daxia 阅读(206) 评论(0) 推荐(0) 编辑

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