随笔分类 -  其它--乱搞与思维

摘要:题面 "传送门" Sol 有一个显然的想法 处理出$y, z$能凑出的高度 然后这些高度凑一些$x$就可以得到其它的高度 那么可以把这些$y, z$凑出的高度对$x$取模,其它的用$x$来填补 所以设$f[i]$表示$y, z$凑出高度$\%x$为$i$需要的最低高度 那么答案就是 $$\sum_{ 阅读全文
posted @ 2018-04-02 14:24 Cyhlnj 阅读(149) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol ~~以下多数东西都是复制题解的~~ 外省体验赛这题顺利获得了$10$分的好成绩。。。 显然是$Access$操作,已知每个点$Access$的次数,确定一种顺序,问轻重链切换次数的最大值 考虑$i$处的切换次数,如果连续两次$Access$在同一子树或者都是它自己,那么显然 阅读全文
posted @ 2018-03-31 08:04 Cyhlnj 阅读(337) 评论(3) 推荐(0)
摘要:题面 "传送门" Sol 巧妙的建图+$Dijkstra$ 考虑把边看成点,那么显然暴力建图的边数是$m^2$的 考虑优化 把$max(a, b)$变成$a+max(b a,0)$ 把每个点连出的边按权值从小到大排序 每个边向后面的边连$b a$, 后面向前面连$0$ 连向它的边向连出去的边连$a$ 阅读全文
posted @ 2018-03-28 13:48 Cyhlnj 阅读(181) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol 假如我们知道所有的前缀和数组,差分以下就得到了答案 对于一组区间$[l, r]$ 我们就知道了$S[r] S[l 1]$的值,$S$即前缀和 那么如果把这看成一条边$(l 1,r)$,那么最后只需要所有的点联通就可以求出所有点对之间的关系 那不就是最小生成树了 直接$n^2 阅读全文
posted @ 2018-03-28 13:26 Cyhlnj 阅读(143) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol 分别按$X$轴,$Y$轴从小到大排序,相邻两个点建边权为$\Delta x$或$\Delta y$的边 然后跑$Dijkstra$ cpp include define RG register define IL inline define Fill(a, b) memse 阅读全文
posted @ 2018-03-28 13:20 Cyhlnj 阅读(159) 评论(0) 推荐(0)
摘要:题面 "UOJ" Sol 玄学,不会势能分析 所以 维护区间最大最小值 把开根变成区间减法 如果最大值开根后的变化量和最小值的相等,就直接打个减法$lazy$ 阅读全文
posted @ 2018-03-16 15:57 Cyhlnj 阅读(212) 评论(0) 推荐(0)
摘要:题目 "Bzoj" Sol 神题! 二分所有的白边减去一个值,这样做$kruskal$就会多选一些白边 就这样 二分范围为$[ 101, 101]$!!! 阅读全文
posted @ 2018-03-14 15:37 Cyhlnj 阅读(135) 评论(0) 推荐(0)
摘要:题面 "Bzoj" 我写这篇题解的原因 证明我是一个有耐心的人 Sol 爆搜 先判断有没有小于三的联通块 然后$AC$ 其实不用像我这样打的 主要是打了一半时发现可以打个表循环找,然而打了一半,所以就只写了$20k$(逃 其实也就写了不到一个小时 其实也就调了几分钟 。。。 。。。 。。。 我代码又 阅读全文
posted @ 2018-02-27 21:00 Cyhlnj 阅读(199) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol 最小生成树的性质: 对于每一个$MST$,每一种边权所使用的边数相同 所有$MST$中边权$≤w$的边组成的图的连通性相同 那么这道题就枚举没个权值选那些边,如果连的个数和原来的相同就统计 最后乘法原理即可 如果同边权过多就只能用矩阵树定理了 然而我太菜了不会。。 cpp 阅读全文
posted @ 2018-02-27 15:02 Cyhlnj 阅读(185) 评论(0) 推荐(0)
摘要:题面 "清橙" Sol 一种新的树上$DP$姿势 从左往右按链$DP$ 做法: 维护两个栈$S1$,$S2$ $S1$存当前的链 $S2$存分叉点以下要改的链 $Dfs$,弄一个分叉点,之前的链经过它,并且另一条要转移到的链也经过它 那么每次在叶节点时就把$S1$最下面的一部分变成$S2$ 转移 两 阅读全文
posted @ 2018-02-27 07:55 Cyhlnj 阅读(142) 评论(0) 推荐(0)
摘要:题面 "Bzoj" Sol 暴力开根,一个数开根到小于等于$1$就不用管了,维护区间$max$,$max define RG register define IL inline define Fill(a, b) memset(a, b, sizeof(a)) using namespace std 阅读全文
posted @ 2018-02-23 11:50 Cyhlnj 阅读(191) 评论(0) 推荐(1)
摘要:题面 "UOJ" Sol 神题 给每个点对随机一个权值,把这两个点的权值异或上这个随机的值 用$LCT$维护子树信息,若子树异或和为所有点对的异或和那么就是答案 大常数代码 cpp include define RG register define IL inline define Fill(a, 阅读全文
posted @ 2018-02-07 17:01 Cyhlnj 阅读(149) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol 这题可能是假的 离线莫队搞一搞,把数字再分块搞一搞,就行了 cpp include define IL inline define RG register define Fill(a, b) memset(a, b, sizeof(a)) using namespace s 阅读全文
posted @ 2018-01-27 11:22 Cyhlnj 阅读(133) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol 求个以$i$为结尾的$AA$串的个数和以$i$为开头的$AA$串的个数 乘法原理即可,暴力求有95分 而你会发现,枚举l,经过$i$和$i+l$的只要算出它左右各能扩展到哪里,然后这个区间内的都要$+1$ 差分一下+后缀数组 cpp include define RG re 阅读全文
posted @ 2018-01-26 20:47 Cyhlnj 阅读(148) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol AC自动机+栈,每次匹配到栈顶减去这个单词的长度,回到之前的状态 最后栈中留下的就是答案 cpp include define IL inline define RG register define Fill(a, b) memset(a, b, sizeof(a)) us 阅读全文
posted @ 2018-01-22 19:04 Cyhlnj 阅读(206) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol 就相当于从$x_0$开始左右横走,显然可以设$f[0/1][i][j]$表示左到$i$右到$j$,当前在左/右的代价 但是不好记转移代价,因为不知道时间 那么可以把它变成最小损失,每次转移就是加上两边没走的蛋降落的损失,最后用总代价相减即可 阅读全文
posted @ 2018-01-20 08:41 Cyhlnj 阅读(106) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol 摆定理 $$ a^b\equiv \begin{cases} a^{b\%\phi(p)}~~~~~~~~~~~gcd(a,p)=1\\ a^b~~~~~~~~~~~~~~~~~~gcd(a,p)\neq1,b define RG register define IL in 阅读全文
posted @ 2018-01-19 22:40 Cyhlnj 阅读(175) 评论(0) 推荐(1)
摘要:题面 T组询问,每组询问是一个偶数n 验证哥德巴赫猜想 回答n=a+b 且a,b(a define RG register define IL inline define Fill(a, b) memset(a, b, sizeof(a)) using namespace std; typedef 阅读全文
posted @ 2018-01-09 11:09 Cyhlnj 阅读(151) 评论(0) 推荐(0)
摘要:题面 给定两个数n,k 求n^k的前三位和最后三位 Input Input starts with an integer T (≤ 1000), denoting the number of test cases. Each case starts with a line containing tw 阅读全文
posted @ 2018-01-09 10:57 Cyhlnj 阅读(120) 评论(0) 推荐(0)
摘要:题意 求和运算是一种有趣的操作,它来源于古希腊字母σ,现在我们来求一个数字的所有因子之和。例如σ(24)=1+2+3+4+6+8+12+24=60.对于小的数字求和是非常的简单,但是对于大数字求和就比较困难了。现在给你一个n,你需要求出有多少个数字的σ是偶数。 注:一个数字的σ指这个数的所有因子之和 阅读全文
posted @ 2018-01-09 10:31 Cyhlnj 阅读(152) 评论(0) 推荐(0)