03 2018 档案

摘要:题解: 一道转移方程挺简单的题但是后面的优化挺难的 首先很显然就是先排序然后每次都是连续一段 这样我们就可以dp了 F[i][j]=maxk<j{F[i−1][k]+S[j]−S[k]j−k+1} 前面有10^9的范围的k 这样dp显然是不行的 我们会发现,当k>n的时候,一定是每次与前一个搞一下 阅读全文
posted @ 2018-03-30 22:18 尹吴潇 阅读(72) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2018-03-30 22:14 尹吴潇 阅读(1) 评论(0) 推荐(0) 编辑
摘要:题解: 一道不错的状压dp 关键在于如何处理出初始状态 dp[i]=min(dp[j]+dp[i^j]) 初始状态可以枚举子集 然后对他们进行排序,如果相邻的小于c,就说明这个方案可行,步数就是sum-1 为什么这么做是对的,所以 我们可以对于那些需要全部交换的,答案就是sum-1 而对那些有的不需 阅读全文
posted @ 2018-03-30 19:27 尹吴潇 阅读(120) 评论(0) 推荐(0) 编辑
摘要:题解: 暴力都有95分的题。。 正解感觉还是挺妙的 首先会发现答案等于i向前找2a*i+1向后找2b 那么分开统计 先枚举区间a长度l 然后建立 1,1+l,....这些特殊点 对他们求最长后缀和前缀 我们会发现,当lcp1+lcp2>=l时,我们会发现以这两条线之间的点作中轴线是可以的(所以是连续 阅读全文
posted @ 2018-03-29 23:03 尹吴潇 阅读(103) 评论(0) 推荐(0) 编辑
摘要:题解: 树剖裸题 将白点看做1,黑点看做0,区间维护区间中1dfn最小的地方在哪 时间nlog2n 阅读全文
posted @ 2018-03-29 19:18 尹吴潇 阅读(65) 评论(0) 推荐(0) 编辑
摘要:题解: 挺水的但好像挺有用的 后缀数组并没法做有修改的 平衡树维护hash值+二分 代码: 阅读全文
posted @ 2018-03-28 23:57 尹吴潇 阅读(82) 评论(0) 推荐(0) 编辑
摘要:题解: 一道比较水的题目 按照最一般的思路离散化后枚举最大值 然后考虑最大值的贡献 会发现需要分类讨论一下 发现对一段k的影响是等差数列 所以可以用线段树维护差分数组 阅读全文
posted @ 2018-03-28 23:20 尹吴潇 阅读(99) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2018-03-28 22:08 尹吴潇 阅读(4) 评论(0) 推荐(0) 编辑
摘要:题解: 首先看n是偶数的 那么就是不需要满足对面这个性质的 这样就可以dp了 f[i][0/1]表示dp到第i位,当前数等于或不等于第一位的方案数 然后显然可以用矩阵优化 再考虑n为奇数 用一样的思路,把环切成两半,先确定两个对应位置的值,再进行dp f[i][0/1/2][0/1/2]表示dp到i 阅读全文
posted @ 2018-03-27 23:07 尹吴潇 阅读(216) 评论(0) 推荐(0) 编辑
摘要:题解: 不会FWT,只能水40分了 首先,要观察出的性质就是: 选出的集合要满足所有数亦或等于0,而在其中任选子集都可以满足条件,答案就等于sigma(2^size(s)) 这样dp一波显然就可以O(na)了(由性质可知转移到新状态*2) 然后考虑数很少的 发现同一个数是奇数就是ai偶数就是0 所以 阅读全文
posted @ 2018-03-26 21:52 尹吴潇 阅读(111) 评论(0) 推荐(0) 编辑
摘要:题解: 感觉多了解一些npc问题是很有用的。。 就不会像我一样完全不考虑模数的性质 前面60分大概是送分 后面主要考虑一下%6带来的影响 平常都是那么大的模数,突然这么小??? 考虑正好使用k种颜色的方案数 f[k]*A(n,k) 而A(n,k)=n!/(n-k)! 显然可以发现,当k>=3的时候 阅读全文
posted @ 2018-03-26 20:26 尹吴潇 阅读(118) 评论(0) 推荐(0) 编辑
摘要:题解: 首先很显然的是这是一条链(特殊数据说是链是故意让人迷茫的??) 然后 自己就开始yy 觉得每一次是加入一个使得当前值最小的数 然而这tm又是特殊数据?? 那就写一波发现是错的 考虑一下特殊数据的1e5 我们会发现每一次and一下减少至少一个1(或者从此之后保持不变) 这样我们可以枚举这一次的 阅读全文
posted @ 2018-03-25 22:26 尹吴潇 阅读(193) 评论(0) 推荐(0) 编辑
摘要:题解: 会发现实质上运一个点就是两个点之间的距离 暴力是n^2的 考虑二分距离来计算 二分完之后还要二分这个点对应的位置 nlognlogn的 考虑一种常用的思路 用一个点来更新另一个点 首先我们先二分答案能取到的箱子数,然后考虑从左向右考虑每一个点 假设1的范围已知,考虑第二个点,当右边的点距离小 阅读全文
posted @ 2018-03-25 20:08 尹吴潇 阅读(206) 评论(0) 推荐(0) 编辑
摘要:题解: 这题主要在于时间复杂的分析吧 首先很暴力的是求两个数的gcd然后找到它的最小质因数 但这个的复杂度是没法保证的(上界还是n根号n吧) 考虑到时间复杂度的瓶颈在于求一个数的最小质因数 所以我们可以预处理出a1的质因数,然后计算在每个数中是否有 由于质因数是loga1的,所以时间就是nloga1 阅读全文
posted @ 2018-03-25 18:47 尹吴潇 阅读(160) 评论(0) 推荐(0) 编辑
摘要:题解: 正解是可持久化并查集 但这个显然是lct可以维护的 但这常数是个问题啊??? 阅读全文
posted @ 2018-03-23 22:33 尹吴潇 阅读(142) 评论(0) 推荐(0) 编辑
摘要:题解: 质量不错的一套题目啊。。(题解也很不错啊) t1: 首先暴力显然有20分,把ai相同的缩在一起就有40分了 然后会发现由于原来的式子有个%很不方便处理 so计数题嘛 考虑一下容斥 最终步数=初始步数-使用tab键减少的步数=(x-1)*sigma(ai/x) 这个显然就很好维护了 我们考虑对 阅读全文
posted @ 2018-03-21 23:36 尹吴潇 阅读(162) 评论(0) 推荐(0) 编辑
摘要:c++ 循环中i<=strlen(s) 每次都要重新计算 所以及其慢啊。。。 阅读全文
posted @ 2018-03-18 21:56 尹吴潇 阅读(67) 评论(0) 推荐(0) 编辑
摘要:显然fft维护卷积就可以了 发现fft里面会改变很多东西 要还原一下 阅读全文
posted @ 2018-03-18 21:41 尹吴潇 阅读(173) 评论(0) 推荐(0) 编辑
摘要:对拍没错。。莫名wa了 利用容斥求每个串的重复子串 其实就是找到每个元素能扩展到的最大元素 即(rr-i)*(i-lr)*(w[i]-kk) 就可以了 然后处理这个先离散化再搞 另外是x y要清空 阅读全文
posted @ 2018-03-17 23:52 尹吴潇 阅读(127) 评论(0) 推荐(0) 编辑
摘要:题解: 这题一看就知道要么是树剖要么是lct 仔细分析一下 要是对每个颜色维护一下 插入和删除就相当于对一个的权值进行改变(删除就是变成0) 问题是空间不够了 那就树剖搞动态开点 问题就解决了 对于lct,可以把颜色分开来离线搞 但是对于这道题显然树剖比较有优势 因为lct细节挺多的。。 比如当一个 阅读全文
posted @ 2018-03-16 13:29 尹吴潇 阅读(171) 评论(0) 推荐(0) 编辑
摘要:lct [NOI2014]魔法森林 AC自动机 hdu 2825 kmp 写矩阵的时候总会犯一些zz错误。。比如没有返回值,行列搞反 [HNOI2008]GT考试 矩阵优化 循环矩阵乘起来还是循环矩阵 树链剖分 平衡树 线段树 序列记树 阅读全文
posted @ 2018-03-16 08:51 尹吴潇 阅读(210) 评论(0) 推荐(0) 编辑
摘要:题解: 学了lct动态维护最小生成树这种题应该是挺裸的 倒着加边,然后维护两点间最小路径就可以了 阅读全文
posted @ 2018-03-16 07:34 尹吴潇 阅读(85) 评论(0) 推荐(0) 编辑
摘要:cdq分治+FFT 转移:dp[i]=Σdp[i-j]*a[j](1<=j<=i) 阅读全文
posted @ 2018-03-16 01:09 尹吴潇 阅读(82) 评论(0) 推荐(0) 编辑
摘要:题解: lct维护生成树 首先先把a按照权值从小到大排序 然后维护路径间b的最小值(其实就是满足树的性质) 如果这两点之间连边了,我们就找到其中的最大边,判断一下他和当前点的大小关系 边权变成点权处理就可以了 代码: 阅读全文
posted @ 2018-03-15 23:24 尹吴潇 阅读(135) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2018-03-15 16:19 尹吴潇 阅读(6) 评论(0) 推荐(0) 编辑
摘要:题解: 满分又是拉格朗日啥的 以后再学 自己对于n=2猜了个三分 然后对拍了一下发现是对的 阅读全文
posted @ 2018-03-15 13:42 尹吴潇 阅读(62) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2018-03-15 13:22 尹吴潇 阅读(4) 评论(0) 推荐(0) 编辑
摘要:题解: 很显然是一道矩阵优化dp 然而表示我很智障地把式子一个个带入 然后就发现了为什么会有那些部分分(大概用扩欧是70吧) 注意用矩阵计算的时候要用快速乘(当然想写高精那也随便,时间无限宽裕) 代码: 阅读全文
posted @ 2018-03-15 13:14 尹吴潇 阅读(206) 评论(0) 推荐(0) 编辑
摘要:题解: 很水的一题吧。。 显然是kmp+dp f[i][j]表示有i个字符,匹配到了j上 然后o(n)都过不来了那显然是要用矩阵优化的 代码: 阅读全文
posted @ 2018-03-14 21:38 尹吴潇 阅读(168) 评论(0) 推荐(0) 编辑
摘要:题解: 首先很容易想到拓扑排序,但是会发现一个节点会由多个决定 但是我们还不知道他们的关系 那么如果我们知道了决定它的那些节点的关系 我们就可以做了 所以就先拓扑排序,按照拓扑顺序进行 然后 我们需要找到最后面的那个能决定所有决定这个节点的那个点(有点绕) 这个可以用倍增来维护(其实就是lca) 最 阅读全文
posted @ 2018-03-14 13:18 尹吴潇 阅读(208) 评论(0) 推荐(0) 编辑
摘要:题解: 很显然会发现对于每种颜色分开处理这是一颗树 然后就是裸的lct 有个坑就是判断操作1 可能颜色改成跟原先一样的 代码: 阅读全文
posted @ 2018-03-14 13:14 尹吴潇 阅读(197) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2018-03-14 10:55 尹吴潇 阅读(2) 评论(0) 推荐(0) 编辑
摘要:题解: 感觉相比仙人掌简单了很多啊。。 首先会发现那个其实就是后缀和 然后其实就是判断一下两个位置的元素想不想等 然后l=1是要特判的 之后一个易错的地方就是去维护每个数是0/1的概率 因为这样概率是不独立的啊。。。 所以考虑用二维线段树来维护 可以标记永久化 一个概率p1,一个概率p2 那么概率就 阅读全文
posted @ 2018-03-13 22:42 尹吴潇 阅读(112) 评论(0) 推荐(0) 编辑
摘要:题解: 好难的dp啊。。。看题解看了好久才看懂 http://blog.csdn.net/akak__ii/article/details/65935711 阅读全文
posted @ 2018-03-13 21:53 尹吴潇 阅读(188) 评论(0) 推荐(0) 编辑
摘要:超级水的题还wa了一次 首先很容易发现其实就只有两个值并存 然后 要注意把数组初始化啊。。。可能后面有多余的元素(对拍的时候由于从小到大就没跑出错) 阅读全文
posted @ 2018-03-13 13:20 尹吴潇 阅读(291) 评论(0) 推荐(0) 编辑
摘要:题目: 这题意。。。还以为他说的线段是路径 写了好久的dp。。写不出来 看了网上的题解。。才知道就是两点连线 然后就是一般的平面图转对偶图的思想 然后算一下边数发现是颗树,求一下直径就好了 代码: 阅读全文
posted @ 2018-03-13 13:08 尹吴潇 阅读(91) 评论(0) 推荐(0) 编辑
摘要:题解: 首先容易发现其实就是把路径并起来再乘2 用虚树没法动态维护 树剖和lct大概也不行 所以考虑一下dfs序,可以发现 路径其实就是相邻dfs序的两个点路径再加上最后一个和根的(正好算了每个路径俩遍) 然后插入一个点其实就是找dfs序的前驱后继,splay维护就可以了 阅读全文
posted @ 2018-03-13 07:45 尹吴潇 阅读(89) 评论(0) 推荐(0) 编辑
摘要:最大流 送分题吧。。 阅读全文
posted @ 2018-03-12 23:44 尹吴潇 阅读(115) 评论(0) 推荐(0) 编辑
摘要:渐渐感觉到省选难度的天差地别 题解: 前60是送给暴力的? 后面40分 首先其子串个数就不是能统计范围内的,所以hash或者trie已经挂了 那么就剩下后缀数组和自动机了(我不会啊) 考虑一下后缀数组。。 后缀数组原本答案等于总的子串-sigma(height[i]) 它每一次都是在末尾加入,其实也 阅读全文
posted @ 2018-03-12 20:27 尹吴潇 阅读(197) 评论(0) 推荐(0) 编辑
摘要:#include using namespace std; #define maxn 10000 #define INF 6e8 bool inq[2000]; int dp[1000][2000],v[2000]; struct re{ int a,b,c; }a[maxn]; int l,n,m,p,head[2000],dis[2000][2000]; void arr(int ... 阅读全文
posted @ 2018-03-12 16:57 尹吴潇 阅读(208) 评论(0) 推荐(0) 编辑
摘要:题解: 以前看过,思维挺神奇的一道题目 首先可以证明最小割是不能相交的 那么我们就可以找到任意两点求一次最小割然后将割的两边分开来再递归这个过程 另外最小割就是vis=0与vis=1之间的连边 分治的时候把一个局部变量写了全局变量还有83??? 找个好久。。 代码: 阅读全文
posted @ 2018-03-12 15:01 尹吴潇 阅读(145) 评论(0) 推荐(0) 编辑
摘要:题解: 首先转化为平面问题 对于每一个z,f(x,y)的值为它能向上延伸的最大高度 。。。莫名其妙想出来的是n^4 以每个点作为右下边界n^3枚举再o(n)枚举左下边界计算z的最大值 然而很显然这种做法简直就是智障 枚举每一个点作为最小值,向左向右延伸的最大值 然后显然就是N^3了 阅读全文
posted @ 2018-03-12 14:57 尹吴潇 阅读(155) 评论(0) 推荐(0) 编辑
摘要:很不错的一道网络流的题目 二分答案是显然的 首先不考虑每个饼干只能一个老鼠吃 那很显然的建图就是将时间点按照开始结束的点分成2*n-1段 然后对每一段时间建m个老鼠的点,然后s-它限流,再从它到目前可以运行的饼干 那么考虑加上限制每个饼干只能被一个老鼠吃 我们可以考虑一下进行差分 将s-老鼠的值变成 阅读全文
posted @ 2018-03-10 15:18 尹吴潇 阅读(190) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2018-03-10 07:51 尹吴潇 阅读(10) 评论(0) 推荐(0) 编辑
摘要:三进制的状压dp要先预处理3^n以及每一个数的每一位 例题 hdu3001 题意: 给定n 个城市已经 m 条路 以及对应路费 c,要求遍历所有城市最少的路费,每个城市不能超过2次。 题解: 看代码吧。。 代码: 阅读全文
posted @ 2018-03-10 07:50 尹吴潇 阅读(267) 评论(0) 推荐(0) 编辑
摘要:没看过正解。。应该是些乱七八糟想不出来的东西 解法1: 首先,必须要做的是将每条路径拆成2个直的路径 那么对于那条从深度大的到深度小的路径 dep[x]-dep[y]应该等于观察时间 那么就可以在这些点打标记 那问题在于怎么找这些点 可以把深度为x的数组用vector搞出来 然后每次判断一下x里面的 阅读全文
posted @ 2018-03-09 16:54 尹吴潇 阅读(142) 评论(0) 推荐(0) 编辑
摘要:跟着别人的题表做的 http://blog.csdn.net/tomorrowtodie/article/details/52336931 1.POJ 3744 题意:一条路上有n个地雷,你站在起点1的位置,每次有p的概率走1步,有1-p的概率走2步,给出n,p,和n个雷的坐标xi,问不踩到地雷的概 阅读全文
posted @ 2018-03-09 15:33 尹吴潇 阅读(180) 评论(0) 推荐(0) 编辑
摘要:题意: 每一头牛的愿望就是变成一头最受欢迎的牛。现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎。 这种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也认为牛C受欢迎。你的任务是求出有多少头牛被所有的牛认为是受欢迎的。 题解: 这道题缩点还是挺明显的 先用tarjan缩 阅读全文
posted @ 2018-03-09 13:53 尹吴潇 阅读(87) 评论(0) 推荐(0) 编辑
摘要:线段树优化dp 题解: 首先dp挺简单的 f[i,k]=f[j,k-1]+solve(i+1,j-1) 然后这个是可以n^2*k搞得 然后考虑这个solve(i+1,j-1) 当i延伸了一个位置的时候,就变成了solve(i+1,j) 那么对于与j距离大于s的 我们就需要对其solve(i+1,j) 阅读全文
posted @ 2018-03-09 13:46 尹吴潇 阅读(144) 评论(0) 推荐(0) 编辑
摘要:很不错的一道倍增优化dp?? 第一次做这类题挺难想的 题目大意: 有n个小朋友,m块糖。 给小朋友分糖,如果一个小朋友分不到糖,那他后面的小朋友也分不到糖。 每个小朋友有一个喜悦值,有三个参数,O,S,U,设一个小朋友分到糖数为x,则这个小朋友的喜悦值为O*x x+ S x +U,分不到糖的小朋友的 阅读全文
posted @ 2018-03-08 23:02 尹吴潇 阅读(121) 评论(0) 推荐(0) 编辑
摘要:解析: 这东西其实就是指数型母函数? 所以刚开始读入的值我们都把它前面的系数置为1。 然后其实就是个多项式乘法了。 最大范围显然是读入的值中的最大值乘三,对于本题的话是12W? 用FFT优化的话,达到了O(nlogn),显然可过。 但是这里有一个问题,就是如何处理重复的部分。 重复的部分我们考虑用容 阅读全文
posted @ 2018-03-08 19:52 尹吴潇 阅读(173) 评论(0) 推荐(1) 编辑
摘要:zoj 2314 2.求有源有汇有下界最大流 建图与上面一样,把原来的汇点向源点连边INF 之后先求一遍可行流 之后再割掉t-s的边去求最大流 最终的答案即dinic+e[t >s].flow(就是求可行流的时候的流量) 然后来建图:引入源点S汇点T,n天一天一点,m个少女每人一点。S到每一天连一条 阅读全文
posted @ 2018-03-08 15:02 尹吴潇 阅读(199) 评论(0) 推荐(0) 编辑
摘要:并不会后缀自动机 只能写点部分分 但是感觉好坑啊 前15 刚开始敲hash 然后 当然就wa死了 应该是数太多太容易重复了吧 trie树n^2logn应该可以水过去吧(打挂hash就没写) 发现叶子只有10个 那么把所有链都搞出来,求不同的子串 用后缀数组维护一下 所有串-height和 10^2* 阅读全文
posted @ 2018-03-07 22:44 尹吴潇 阅读(150) 评论(0) 推荐(0) 编辑
摘要:没有权限号就只能对拍了 我们令?代表的T值=0,然后设出这样一个式子 这样一来,只要T和S在j位置匹配,当且仅当Dj=0,然后我们将这个式子拆开,变成下面那样 思路大概就是这样 最后发现答案应该是在ans[lens2-1] ans[lens1-1]之间的 翻转字符用FFT优化是一种常见策略 代码: 阅读全文
posted @ 2018-03-07 00:53 尹吴潇 阅读(196) 评论(0) 推荐(0) 编辑
摘要:。。 阅读全文
posted @ 2018-03-06 21:57 尹吴潇 阅读(110) 评论(0) 推荐(0) 编辑
摘要:题解: 树剖就是裸题吧 当然也可以用差分来实现 阅读全文
posted @ 2018-03-05 00:17 尹吴潇 阅读(127) 评论(1) 推荐(0) 编辑
摘要:https://www.luogu.org/problemnew/show/P3250 [HNOI2016]网络 阅读全文
posted @ 2018-03-04 21:13 尹吴潇 阅读(107) 评论(0) 推荐(0) 编辑
摘要:题意: 强制在线 1.查询树上两点间权值第k小 2.连接两棵树 题解: 首先这题数据不得不吐槽 数据数字大小都是超过1e7的??? 洛谷上又不能下载数据又只能显然re的 对拍了半天也没搞出来错(加上生成器还很难写) 查找第k大显然可以用主席树 而连接两棵树又是lct 考虑一下怎么搞,lct显然是不能 阅读全文
posted @ 2018-03-03 15:16 尹吴潇 阅读(243) 评论(0) 推荐(0) 编辑
摘要:https://www.luogu.org/problemnew/show/P2522 题解: 显然和前一篇题解几乎一样 加上一个容斥就可以了 阅读全文
posted @ 2018-03-03 12:38 尹吴潇 阅读(88) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2018-03-03 10:47 尹吴潇 阅读(3) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1695 第一道莫比乌斯反演 感觉很巧妙的就是利用了F(x)=(n/x)*(m/x) 之后的那个去重也挺不错的 代码: (原题要加个0特判没写) 感觉很巧妙的就是利用了F(x)=(n/x)*(m/x) 之后 阅读全文
posted @ 2018-03-02 13:03 尹吴潇 阅读(142) 评论(0) 推荐(0) 编辑
摘要:题解: 二分答案+最大流 首先二分答案天数x,然后对每个点建立x个点 对相连的两个点ai-bi+1,bi-ai+1连边,流量为1 然后ai-ai+1连边INF 如果最大流达到,那么就满足了条件 代码: 阅读全文
posted @ 2018-03-01 23:33 尹吴潇 阅读(97) 评论(0) 推荐(0) 编辑

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