本来想说这场放掉了,算了还是补了吧...
以下题解包括:
\[1001【HDU-6614】 \\ 1003【HDU-6616】 \\ 1007【HDU-6620】 \\ 1008【HDU-6621】 \\ 1010【HDU-6623】\]
【1001】 思维 HDU-6614 AND Minimum Spanning Tree
http://acm.hdu.edu.cn/showproblem.php?pid=6614
需要建一颗树,使得边权值和最小,边权为两点的 “&” 值。
假设二进制位 101,那就和 2 连接;假设为 111,那就看一下有没有 8 这个点,没有的话就和点 1 连接。
#include
【1003】 思维 HDU-6616 Divide the Stones
http://acm.hdu.edu.cn/showproblem.php?pid=6616
给定重量 \(1\) 到 \(n\) 的 \(n\) 个石头,让你分成重量相等,数量也相等的 \(k\) 组,保证 \(k\) 是 \(n\) 的约数。输出具体的分配方案。
参考:https://www.cnblogs.com/isakovsky/p/11281662.html
首先,如果 \(1\) 到 \(n\) 之和不能整除 \(k\),那么一定不能分配;否则一定能。
设 \(m=n/k\)。\(m\) 是每组分到的石头块数。我们把n块石头排成这样 \(m*k\) 的矩阵,假设 12 块石头,分成 3 组。
\[ \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \\ 10 &11 &12 \end{bmatrix} \]
- m为偶数,只要每次取头尾各 \(m/2\) 个即可。
- m为奇数,将后两列之和构造成从上到下递增1,然后剩下的奇数个,一行构造成递增,一行构造成递减。
#include
【1007】 思维 HDU-6620 Just an Old Puzzle
http://acm.hdu.edu.cn/showproblem.php?pid=6620
给定一个数字拼图,问能否能复原成原来的样子(120步以内)。
经典的华容道问题变形。
定理:逆序数奇偶相同时,可以互相转化,逆序数奇偶不同,不能互相转化。
#include
【1008】 主席树 HDU-6621 K-th Closest Distance
http://acm.hdu.edu.cn/showproblem.php?pid=6621
给定 \(n\) 个数,\(q\) 次查询,每次查询 \([l , r]\) 内, \(| a[i] - p |\) 第 \(k\) 大的数,且强制要求在线。其中 \(n \leq 1e^5 \ \ q \leq 1e^5\)
比赛时候一直想着主席树,一直没办法吧 k 这个大常数优化掉,就 T 了一整场。结果发现可以换一种存法就行了,或许应该叫权值主席树?QAQ
主席树的结点直接就是 \(1e^6\) 个值,不进行离散化,对每个值都单独统计出现的次数。二分查询 \((p-mid,p+mid)\) 中数的个数。
#include
【1010】 数学 HDU-6623 Minimal Power of Prime
http://acm.hdu.edu.cn/showproblem.php?pid=6623
给定一个数 \(n\),求它的素因子里最大的指数是多少。
考虑 \(n^{1/5}\) 范围内的素数,计算范围内的最小素数的次数是多少,然后除去这些素数,得到剩余的数字 \(m\),考虑 \(m\) 如果大于 10009(就是素数1~n^(1/5)范围内的素数,n的范围是(10009,1e18),此时已知最小素数时10009,所以最是最小素数的4次方,分别讨论m是否为素数的2,3,4次方即可,如果都不是,就是1次方)。要特判1。
#include