共 8 页: 上一页 1 2 3 4 5 6 下一页 末页
摘要:"传送门" 好神的状压dp啊 首先考虑一个性质,删掉之后的图一定是个联通图 并且每个点最多只与保留下来的那条路径上的一个点有边相连 然后设状态:$f[s][t]$代表当前联通块的点的状态为$s$和路径结尾的点$t$ 然后考虑转移,要么拓展一个点作为路径,要么挂一个联通块到当前路径结尾的点上 代码: 阅读全文
posted @ 2019-04-16 18:42 蒟蒻--lichenxi 阅读 (24) 评论 (0) 编辑
摘要:"传送门" 还是猜结论呢 然后我们就想我们可以每次去掉尽量多的位数来保证次数最小,假装这是对的,先写一发,A了 考虑如何去掉尽量多的位数,我们可以找到最大的几位的不下降序列,把最后一个 1,后面全部改成9,这样我们就得到了一个每次去掉数字最前的一个不下降序列,然后将最后一位+1的做法 然后发现有一种 阅读全文
posted @ 2019-04-15 13:04 蒟蒻--lichenxi 阅读 (15) 评论 (0) 编辑
摘要:"传送门" 还是看题解的啦 先考虑一个显而易见的结论:A和B二进制下最高的几位相同是没用的(设去掉的那些位之和为sum) 然后我们设$d$为二进制下从高位到低位第一位不相同的,$k$为B从高位到低位第二个不为0的 然后我们分几段来统计答案 首先,$[A,2^d 1+sum]$显然是可以凑出来的 然后 阅读全文
posted @ 2019-04-14 21:57 蒟蒻--lichenxi 阅读 (30) 评论 (0) 编辑
摘要:"传送门" 感觉性质挺好想的,就是二分答案怎么就是想不到呢 考虑先二分出一个值,比他大的设为1,比他小的设为0 然后就可以$O(n)$地推出第一行是0还是1: 1、如果没有两个相邻且相等的,那么中间那个也就是第一行的 2、如果有两个相邻且相等的,那么第一行显然就是离底层最近的那个相邻且相等的 性质就 阅读全文
posted @ 2019-04-14 10:43 蒟蒻--lichenxi 阅读 (20) 评论 (0) 编辑
摘要:"传送门" 乍一看像是一个计算几何,然后想到了BFS,但是苦于无奈$O(n^2)$不会优化 然后以下参考zjq_shadow大佬的思路 显然发现曼哈顿距离很麻烦,除了暴力枚举貌似没什么很好的办法 考虑将坐标轴旋转$45^\circ$,然后就可以将曼哈顿距离转化为切比雪夫距离,坐标为$(x,y)$的点 阅读全文
posted @ 2019-04-12 15:23 蒟蒻--lichenxi 阅读 (186) 评论 (0) 编辑
摘要:"传送门" 考虑到这样一个性质,一个入度为0的点连一条边到一个DAG中,依然是一个DAG 于是设$f(i)$为$i$个点组成的DAG方案数, 那么$n$个节点的DAG中至少有$i$个节点入度为$0$方案数为$f(n i)\binom{n}{i}2^{i(n i)}$ 但是入度为$0$的点数为$0$时 阅读全文
posted @ 2019-04-11 19:20 蒟蒻--lichenxi 阅读 (20) 评论 (0) 编辑
摘要:"传送门" ~~dp套dp的板子题~~ 对于我这种垃圾来说:神仙题 考虑到最长公共子序列的dp做法 $dp[i][j]=max{dp[i 1][j],dp[i][j 1],dp[i 1}[j 1]+(a[i]==b[i])$ 然后发现对于一种状态,我们只需要考虑当前这个字符填的是什么就好了 那么这个 阅读全文
posted @ 2019-04-11 13:02 蒟蒻--lichenxi 阅读 (12) 评论 (0) 编辑
摘要:"传送门" 惯用套路 $$ f(d)=d\sum_{i=1}^{n}\sum_{j=1}^{n}ij[gcd(i,j)==d]\\ $$ 然后简单的莫比乌斯反演一下,得到 $$ f(d)=d^3\sum_{T=1}^{n/d}\mu(T)T^2\sum_{i=1}^{n/Td}\sum_{j=1}^ 阅读全文
posted @ 2019-04-10 20:51 蒟蒻--lichenxi 阅读 (18) 评论 (0) 编辑
摘要:"传送门" 简单dp题,容易得到一个结论,填的数字一定单调不降 设$f[i][j]$表示当前是第$i$个,上一次填的数字是$j$ 对于dp转移,如果暴力转移,那么时间复杂度是$O(nk^2)$,无法通过 所以考虑记下前缀min,复杂度就可以优化到$O(nk)$ 代码: c++ include inc 阅读全文
posted @ 2019-04-10 16:28 蒟蒻--lichenxi 阅读 (9) 评论 (0) 编辑
摘要:"传送门" "%%%myy" 考虑30分做法:暴力bfs,$f[i][j]$表示$i$到$j$可以形成回文串 ~~然而为什么我场上只想到了70分做法,完全没想到30分怎么写。。~~ 100分: 考虑缩边,对于每条边分3种情况:标号同为1,标号同为0,标号不同 1、同为1:考虑如果这是个二分图,那么可 阅读全文
posted @ 2019-04-08 19:58 蒟蒻--lichenxi 阅读 (27) 评论 (0) 编辑
摘要:Day 0 说好的9点坐大巴出发貌似因为大雾的原因,变成了高铁,并且咕到了12点,早上就在机房里写了个模板列表,准备当天写完(然而最后只完成了$\frac{1}{3}$) 到长沙后就完全忘却了写模板的事了,然后写模板的事就推到了晚上 然后晚上睡觉前想起来了,忽然感到心里好慌,然后晚上12点爬起来写了 阅读全文
posted @ 2019-04-08 16:44 蒟蒻--lichenxi 阅读 (41) 评论 (0) 编辑
摘要:"传送门" 作为$HNOI2018$最简单的题,这个题确实不算难 虽然我一开始也没想出满分 看了眼题解,考虑到了倒推,这题差不多就没了 当走到叶子节点的时候考虑一下选了多少条公路翻修和多少条铁路翻修 对于非叶子节点就枚举翻修哪条边,转移就好了 一个小插曲: 本来写的记搜,由于看错题了,以为自己写错了 阅读全文
posted @ 2019-04-03 20:54 蒟蒻--lichenxi 阅读 (12) 评论 (0) 编辑
摘要:"传送门" 这真的是个很简单的树形背包,~~因为我都会写~~ 首先设$f[i][j][0/1][0/1]$表示$i$节点的子树内放了$j$个监听器,$i$点上是否放了监听器,$i$是否被监听 接下来推方程(情况有点多,但是确实好想): $son$为$i$节点的子节点集合 1、$i$节点没有被监听也没 阅读全文
posted @ 2019-04-03 16:28 蒟蒻--lichenxi 阅读 (12) 评论 (0) 编辑
摘要:"传送门" 首先设$m$为随从个数,$k$为暗影打击装甲的个数,$p$为剩余生命值,$n$为生命上限 然后考虑每个回合受到伤害,设$A_i$为每个回合被攻击$i$次的概率 $$ A_i=C^{i}_{k} (\frac{1}{m+1})^i (\frac{m}{m+1})^{k i}\\ $$ 然后 阅读全文
posted @ 2019-04-02 22:10 蒟蒻--lichenxi 阅读 (20) 评论 (0) 编辑
摘要:"传送门easy" "传送门hard" ~~切水题的感觉真好~~ 看到数据范围这么小,所以暴力枚举所有的可能,然后用map+vector存下每种值的区间,然后贪心去选 代码: c++ include include include include include include using name 阅读全文
posted @ 2019-04-02 15:03 蒟蒻--lichenxi 阅读 (55) 评论 (0) 编辑
摘要:"传送门" 这居然是个 1800的题,有点无法接受,可能自己$dp$方面确实差了点 考虑按位$dp$,从高位到低位枚举,然后用$dp$去判断是否可行。 然后设$f[i][j]$表示前$i$个分成$j$块能否满足当前枚举的答案 代码: c++ include include include inclu 阅读全文
posted @ 2019-04-01 21:48 蒟蒻--lichenxi 阅读 (200) 评论 (0) 编辑
摘要:"传送门" 感觉自己真的蠢 这题用堆来做 对于每个数都考虑当前时间点强制卖出,所以每次选择堆中最小的去统计答案 这样不一定最优,所以考虑将除了第一个点外的其他点加两次 这样统计答案时,如果堆中找到的是当前点,那么直接去掉,不产生贡献,说明当前点只能买入 否则找到其他点,就视作在当前点卖出,无脑在当前 阅读全文
posted @ 2019-04-01 21:05 蒟蒻--lichenxi 阅读 (97) 评论 (0) 编辑
摘要:"传送门" 已经极其接近的想到过正确做法了,但是没想到标记永久化,所以复杂度炸了 树链剖分,对于线段树每个节点开个堆(一开始用multiset,结果MLE了,想不通为什么) 考虑对于一次请求$u,v$,只有当它的路径上的点坏掉的时候,它才会受到影响,所以除去这条路径上的所有点都应该有这个贡献 代码: 阅读全文
posted @ 2019-04-01 18:45 蒟蒻--lichenxi 阅读 (35) 评论 (0) 编辑
摘要:"传送门" 主席树裸题,考虑出现一半次数以上的数一定是这个区间的中位数,查询中位数再判断一下中位数出现的次数就好了 注意要离散化 代码: c++ include include include include using namespace std; void read(int &x) { char 阅读全文
posted @ 2019-03-31 21:55 蒟蒻--lichenxi 阅读 (14) 评论 (0) 编辑
摘要:"传送门" 二元组建图 一共有四种二元关系,对于同选文和同选理的情况需要新开两个点来计算 代码: c++ include include include include include using namespace std; void read(int &x) { char ch; bool ok 阅读全文
posted @ 2019-03-31 17:13 蒟蒻--lichenxi 阅读 (11) 评论 (0) 编辑
摘要:"传送门" 感觉这题好难呢,全程抄代码 题解就懒得写了,推出式子后暴力+剪枝。反正不是自己想的 就安利大佬的博客吧: "大佬的题解" 代码: 阅读全文
posted @ 2019-03-31 13:58 蒟蒻--lichenxi 阅读 (48) 评论 (0) 编辑
摘要:FFT 给定一个$n$次多项式$F(x)$,和一个$m$次多项式$G(x)$,请求出$F(x)$和$G(x)$的卷积。 c++ include include include include using namespace std; void read(int &x) { char ch; bool 阅读全文
posted @ 2019-03-30 18:59 蒟蒻--lichenxi 阅读 (19) 评论 (0) 编辑
摘要:"传送门" $$ F_j=\sum_{ij}\frac{q_iq_j}{(i j)^2}\\ E_j=\frac{\sum_{ij}\frac{q_iq_j}{(i j)^2}}{q_j}\\ =\sum_{ij}\frac{q_i}{(i j)^2} $$ 然后设 $$ a_i=\frac{1}{ 阅读全文
posted @ 2019-03-30 12:04 蒟蒻--lichenxi 阅读 (16) 评论 (0) 编辑
摘要:"传送门" 没想到湖南省选也出板子题啊 先把题目要求的式子拆一下 $$ \sum_{i=1}^{n}(a_i+x b_i)^2\\ =\sum_{i=1}^{n}(a_i^2+b_i^2+x^2+2a_ix 2b_ix 2a_ib_i)\\ =\sum_{i=1}^{n}(a_i^2+b_i^2)+ 阅读全文
posted @ 2019-03-29 23:11 蒟蒻--lichenxi 阅读 (20) 评论 (0) 编辑
摘要:"传送门" 很显然可以用圆方树转成一棵树,然后就可以愉快的上树剖了 接下来考虑方点,当路径经过方点的时候,这个方点的贡献应该是它所表示的点双内的所有点的最小值 然后我们可以考虑将每个方点用一个multiset存下当前点双内的所有点权 但是发现修改时需要枚举包含当前圆点相邻的所有方点,当该图是菊花图时 阅读全文
posted @ 2019-03-28 19:26 蒟蒻--lichenxi 阅读 (23) 评论 (0) 编辑
摘要:"传送门" 考虑建立圆方树,然后将圆点权值定为$ 1$(考虑到每个圆点都会被两个方点计算进去,要去重),方点权值定为点双内的点数 然后对于每个起点$s$和终点$f$,中间点的选择方案就是路径权值和,然后对于每个点为中间点计算贡献,$O(n)$dp就好了 代码: c++ include include 阅读全文
posted @ 2019-03-28 16:22 蒟蒻--lichenxi 阅读 (44) 评论 (0) 编辑
摘要:"传送门" 好题啊,就是有点难写 对于给出的图建广义圆方树,建出广义圆方树圆方树后建虚树,然后统计虚树上的点数(包括虚边上的原树的点) 注意特判$1$不为关键点时将$1$以及$1$连出去的边产生的贡献去掉 还有方点不产生贡献这个有点细节 代码(真的精神污染,没什么好看的): c++ include 阅读全文
posted @ 2019-03-27 21:20 蒟蒻--lichenxi 阅读 (16) 评论 (0) 编辑
摘要:"传送门" 不算太难,后缀数组 将所有的字符串都连起来,就是注意减$height$的时候会有一部分被多减,加回来就好了 代码: c++ include include include include using namespace std; void read(int &x) { char ch; 阅读全文
posted @ 2019-03-27 14:52 蒟蒻--lichenxi 阅读 (15) 评论 (0) 编辑
摘要:"传送门" 树上差分+线段树合并+离散化 对于修改的路径,树上差分就好了 代码: c++ include include include include include using namespace std; void read(int &x) { char ch; bool ok; for(ok 阅读全文
posted @ 2019-03-26 22:01 蒟蒻--lichenxi 阅读 (8) 评论 (0) 编辑
摘要:"传送门" 思路确实简单,很容易想到差分 差分完了之后就是一个求$n$个字符串的最长公共子串,先将所有串拼成一个串,中间加些特别大的数,为了防止差分后出现负数,也要加一个大数,这些细节自己处理下,接下来用$sa$就可以了 二分答案之后拿$height$数组判定就好了 这里说一下判定,如果出现了一个$ 阅读全文
posted @ 2019-03-26 13:50 蒟蒻--lichenxi 阅读 (11) 评论 (0) 编辑
摘要:"传送门" 显然还是虚树,虚树之后树形dp 然后我没想到正确的树形dp,只想到一个错误的二次换根 写到一半发现错了,只能写了颗线段树+二次换根,线段树记的就是所有关键点到当前根的距离 写到一半又想到了正确的树形dp,然而真的不想再改了,感觉二次换根也能过: 就是每次对于当前走到的节点记一下它子树里深 阅读全文
posted @ 2019-03-26 10:00 蒟蒻--lichenxi 阅读 (6) 评论 (0) 编辑
摘要:"传送门" 二分答案是显然的啊,然后对于比二分出的值大的直接跑最大匹配,然后判定就好了 代码: 阅读全文
posted @ 2019-03-25 16:36 蒟蒻--lichenxi 阅读 (20) 评论 (0) 编辑
摘要:"传送门" 又做一次题解的搬运工,神仙题 分解质因数很显然是能想到的,不过纯粹的分解质因数只能得到可惜的30分 可以发现一个小于$500$的数,大于$22$的质因数最多只有$1$个 所以我们就可以将小于$22$的质数状压起来 然后对于大于$22$的质数进行讨论 可以知道对于一段大于$22$的质数相同 阅读全文
posted @ 2019-03-24 21:56 蒟蒻--lichenxi 阅读 (17) 评论 (0) 编辑
摘要:"传送门" 第一问是sb题,求$a[i]$严格上升转化为求$a[i] i$的不下降就好了,答案就是$n len$ 第二问好神仙啊,首先也没想到$O(n^3)$能过$35000$ 结论也很nb,对于区间$[l,r]$,要使不降最小代价一定是存在一个分割点$k$,使得前一半都等于$a$,后一半为$b$, 阅读全文
posted @ 2019-03-24 17:20 蒟蒻--lichenxi 阅读 (12) 评论 (0) 编辑
摘要:"传送门" 我是真的垃圾啊,我就不能独立的做完一道题吗 这个题还是莫比乌斯反演 但是很神奇的出现了$\prod$,先不管它,先把答案式写出来 $$ ans=\prod_{i=1}^{n}\prod_{j=1}^{m}f[gcd(i,j)] $$ 然后一贯的套路,枚举$gcd$的值 $$ ans=\p 阅读全文
posted @ 2019-03-24 13:39 蒟蒻--lichenxi 阅读 (12) 评论 (0) 编辑
摘要:"传送门" 好像还是个比较简单的网络流 说实话我不知道网上双向边建成容量为$2$的为什么是对的,我感觉容量为$1$才是对的啊 然后唯一的坑点就是直接建图$a1$可能会流到$b2$,$b1$可能会流到$a2$,这就会误判 然后交换一组起点和终点就好了,再跑就行了(这也是我看了题解的地方) 代码: c+ 阅读全文
posted @ 2019-03-24 08:44 蒟蒻--lichenxi 阅读 (35) 评论 (0) 编辑
摘要:"传送门" 开始刷第一版的题,一个dp+最短路的题,不算太难 设出状态$f[i]$表示当前到第$i$天的最小成本 由于变更路线是要花钱的,那么转移考虑上一次变更道路的位置就好了 代码: 阅读全文
posted @ 2019-03-23 16:01 蒟蒻--lichenxi 阅读 (9) 评论 (0) 编辑
摘要:"传送门" 容斥。 发现$H L$范围很小 设$f[i]$为最大公约数为$i$且选的数不全相同的方案数 考虑将$H$和$L$除以$k$,设$l=\lfloor L/k \rfloor,r=\lfloor H/k \rfloor$ 那么答案就是$f[1]+[L include include usin 阅读全文
posted @ 2019-03-23 10:34 蒟蒻--lichenxi 阅读 (12) 评论 (0) 编辑
摘要:"传送门" 好神的树形dp啊! 首先考虑=的情况,显然可以将他们缩成一个点 然后=k$ 那么$a$个白球放的方案数就是$C^{a}_{k}$ 然后$b$个黑球部分要与白球合并,那么合并的方案数就是$C^{b (k a)}_a$ 代码: c++ include include include usin 阅读全文
posted @ 2019-03-22 15:15 蒟蒻--lichenxi 阅读 (11) 评论 (0) 编辑
摘要:"传送门" 一开始想着二维线段树+二次换根来着,然而空间不够并且强制在线 然后就想到了一个比较好的计算方式,详见 "bzoj3626[LNOI2014]LCA" 就是类似这个统计距离和的方法,不过这次是有边权的,区间修改的话,预处理路径的长度就好了 然后发现还是不好做,看题解去 然后看到了动态点分治 阅读全文
posted @ 2019-03-21 19:51 蒟蒻--lichenxi 阅读 (15) 评论 (0) 编辑
共 8 页: 上一页 1 2 3 4 5 6 下一页 末页