题目描述 给定一棵 $n$ 个点的树,边有边权.求简单路径上的边的乘积为完全平方数的点对 $(x,y)\ ,\ x\ne y$ 的数目. 题解 Hash 一个数是完全平方数,当且仅当每个质因子出现次数都是偶数. 因此给每一个质因子赋一个随机权值,一个数的权值等于它所有出现次数为奇数的质因子权值的异或.那么边权乘积的权值就是边权权值的异或.问题转化为求有多少条路径异或值为0. 显然, $x$ 到 $y$ 异或和为0,等价于 $x$ 到根和 $y$ 到根异或和为0.因此求出一个点到根节点的路径的权值…
(开头先Orz myh) 原题目: 在人类和跳蚤的战争初期,人们凭借着地理优势占据了上风——即使是最强壮的跳蚤,也无法一下越过那一堵坚固的城墙. 在经历了惨痛的牺牲后,跳蚤国王意识到再这样下去,跳蚤国必败无疑.然而为了震慑跳蚤国的老冤家——猴族,跳蚤国那世界上最跳的坦克只能留在跳蚤国本土,无法派上用场. 于是跳蚤国王决定利用跳蚤国最尖端的技术,创造出最强的跳蚤来挽回败局. 为了避免这样的低级失误,跳蚤国王决定使用机器来帮助他创造跳蚤.他把它拥有的 n 种属性放在了 n 个容器中,然后他使用了n−…
和泉纱雾与烟花大会 题目来源: UOJ 192 最强跳蚤 (只改了数据范围) 官方题解: 在这里哦~(说的很详细了 我都没啥好说的了) 题目大意: 求树上各边权乘积是完全平方数的路径数量. 这种从\(n^2\)条路径中找出满足xx条件的路径的条数的题, 我们可以根据常识判断要用到点分治. 不过这题并没有用到点分治, 这个一会再说, 我们先来看部分分. 哎呀其实这题好多部分分我都不会写(捂脸 算法1: 直接乘边权处理显然是不行哒, 怕是\(w\leq2\)怕是都要用到高精度了(什么你说\(w\le…
题目链接 http://uoj.ac/problem/192 暑期课第二天 树上问题进阶 具体内容看笔记博客吧 题意 n个节点的树T 边有边权w 求满足(u, v)上所有边权乘积为完全平方数的路径有多少条 看到“所有边权乘积为完全平方数” 想到完全平方数的特殊性 就是分解质因数后 质因数指数都为偶数 然后就想到分解边权质因数+判质路径边权奇偶性 后者由于奇数偶数的和的规律 可以使用抑或 偶就表示为0 奇就表示为一 那么如何存储呢? 状压? 空间之大 状压压不下 所以hash 对每一个要用的质数…
题目链接:最强跳蚤 这道题本来不想写博客的--但是鉴于自己犯了低级错误,还是写篇博客记载一下. 一开始我的想法和题解里面的算法而比较类似,也是先分解质因数,然后用质因子是否出现偶数次来判断当前这个数是否是完全平方数-- 然而这样并不能AC,于是我去翻了题解--\(get\)了一个新做法,就是给每个出现过的质因子赋一个\([0,2^{64})\)的随机值,那么判断一个质因子是否出现偶数次就只需要判断异或和是否为零了.算一算可以发现冲突的概率非常小(但是我不会算). 然后--我就愉快的写了一发树分治…
题目 题目大意 在一个二维的平面上,有一堆有颜色的点,你需要找出一条水平线段,使得这个线段上面(或者是下面)的点的颜色不包含所有的颜色.问点数最大是多少. 思考历程 在一开始,我看错了题目大意. 题目说的是线段,而我理解的是直线. 然后推了好多遍样例,觉得样例错了. 后来才发现题目给的是线段. 不然这题就是一个大大的水题了 估计一下时间复杂度,嗯,应该是O(nlg⁡n)O(n \lg n)O(nlgn)或O(nlg⁡2n)O(n \lg^2 n)O(nlg2n). 往这个方面想了好久,想不出来.…
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)➤GitHub地址:https://github.com/strengthen/LeetCode➤原文地址:https://www.cnblogs.com/strengthen/p/10359062.html ➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章…
[UOJ#62]怎样跑得更快 题面 这个题让人有高斯消元的冲动,但肯定是不行的. 这个题算是莫比乌斯反演的一个非常巧妙的应用(不看题解不会做). 套路1: 因为\(b(i)\)能表达成一系列\(x(i)\)的和,所以我们尝试通过反演将\(x(i)\)表达成一系列\(b(i)\)的和的形式,那么就可以解出来了. 然后一个简单的化简:\(gcd(i,j)^c\cdot lcm(i,j)^d=i^d\cdot j^d\cdot gcd(i,j)c-d\). \[ \displaystyle b_i=\…
目录:[Swift]Xcode实际操作 本文将演示如何使用富文本CoreText框架创建丰富多彩的文本图形. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //导入需要用到的富文本CoreText框架 import CoreText class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any…
LINK:#22. UR #1 外星人 给出n个正整数数 一个初值x x要逐个对这些数字取模 问怎样排列使得最终结果最大 使结果最大的方案数又多少种? n<=1000,x<=5000. 考虑一个排列真正的有效取模只有当 \(x\geq a_i\)时才行 所以x通过一个排列真正有效的数字必然是从大到小排列的. 求第一问 不难想到将模数从大到小排列 设f[i][j]表示到达第i个模数此时值为j是否可行. 这样dp下来我们只需要取出小于minn的那个可行值最大的即可. 考虑方案数 这样dp同样有效.…