08 2019 档案
摘要:题意: 给定一颗无向无根树,求一大小为K的联通子图使得非子图最远点距离子图距离最小 树, 且联通 考虑平均砍去部分子树使得答案最优即可 所以从叶子入手一层一层往里砍, 砍几层答案是几 那么需要记录信息 p[y] 为以 y 为根的子树最大深度为多少 所以要找个根,当树的中心为根时 p[y]最平均 所以
阅读全文
摘要:希尔伯特曲线如图所示 观察易得为分形 暴力分形过程很容易,但是时间爆炸 逆向思考,对于任意点,可以递归求得分型过程 (设 左上角为第1进入块 左下2块 右下3块 右上4块) 且左上为原图形左旋, 下边两个都是原图形, 右上是原图形关于x = y对称 将以上分形过程做唯一映射并排序输出即可 有点卡常,
阅读全文
摘要:离散后用线段树维护最大子段和 枚举上界遍历下界更新答案 时间复杂度 代码: /* Zeolim - An AC a day keeps the bug away */ //pragma GCC optimize(2) #include <bits/stdc++.h> using namespace
阅读全文
摘要:一、扫描线求矩形面积并 如图所示 总矩形面积并等于每两根蓝线间的面积和。 考虑将矩形按x轴排序,只需要知道每个离散的x点上被矩形覆盖的长度, 和下一条扫描线的x轴可知之间面积为 所以只需要维护每一条扫描线的长度即可,线段树 暴力维护 题目链接 https://vjudge.net/problem/P
阅读全文
摘要:蓝书P208 https://vjudge.net/problem/SPOJ-GSS1 若将一区间分为两部分,则必有最大子段存在于左区间 / 右区间 / 跨越中间 因此当前节点记录该段的最大前缀和,最大后缀和,段和,区间内最大子段和 now.sum = ls.sum + rs.sum; now.lm
阅读全文
摘要:先将题意转换为求A和B中的最小最优异或对并排序输出 所以可以建两颗trie并同时在两颗树内贪心跳转找最小异或对排序输出 贪心匹配可以建cnt数组记录当前节点个数,匹配时走过节点个数就直接减一 最优匹配顺序必然是先相同0 0 , 1 1 再不同 0 1 , 1 0 完! /* Zeolim - An
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=6628 数据范围T = 40 N = 20 K <= 1e4看起来好像很大的样子 但如果仔细分析复杂度的话暴力搜索 1e4个叶子节点的复杂度最多也不会超过1e5(带常数) 因此这个题可以构造一种搜索序列硬生生遍历1
阅读全文
摘要:最大流 = 最小割 #pragma GCC optimize(2) #include <bits/stdc++.h> #define m(x) memset(x, 0, sizeof(x)) using namespace std; typedef long long ll; const int M
阅读全文
摘要:因为矩阵的运算性质,所以欧拉降幂这种骚操作是假的; 而对于a的b次方非常大时就只能用的十进制快速幂 或者 奇怪的循环节性质解决 例题: 已知数列 给定 求数列第 N 项 同时对 M 取模。 则有公式: 然后套十进制快速幂求解即可 #include<bits/stdc++.h> typedef lon
阅读全文

浙公网安备 33010602011771号