Difference between revisions of "2019 Multi-University,HDU Day 4"
Xiejiadong (talk | contribs) |
Xiejiadong (talk | contribs) |
||
Line 35: | Line 35: | ||
\end{array} | \end{array} | ||
− | + | 根据规律输出。 | |
能暴力跑规律的题千万不要手推。 | 能暴力跑规律的题千万不要手推。 |
Revision as of 13:24, 31 July 2019
Problem A
Solved by Kilo_5723. 00:12:16 (+1)
Problem B
Unsolved.
Problem C
Upsolved by Kilo_5723. (-3)
题意:$1$ ~ $n$ 的整数,分成 $k$ 组,使得每组的和以及每组的数的个数都相同,求可行解。
题解:首先,如果每组有偶数个整数,显然将首尾的数不断成对压进每组就能满足条件。
如果每组有奇数个整数,此时如果 $2 \mid k$,则 $k \not \mid \frac{n\cdot (n+1)}{2}$。我们只要做 $k$ 为奇数的情况就行了。
令每组的整数数量为 $m$,我们只要处理 $m=3$ 的情况就可以了,因为剩下的情况都可以处理前 $3$ 项之后转化成第一种情况。
令 $m=3,k=2\cdot t-1$,我们可以通过搜索分别找出三个数分布的规律:(第 $i$ 行第 $j$ 个数代表 $j+3 \cdot (i-1)$ 属于的集合编号)。
\begin{array}\\ 1&2&3&4&5&6&\cdots&k-5&k-4&k-3&k-2&k-1&k\\ t+1&t+2&t+3&t+4&t+5&t+6&\cdots&t-5&t-4&t-3&t-2&t-1&t\\ t&k&t-1&k-1&t-2&k-2&\cdots&t+3&3&t+2&3&t+1&1\\ \end{array}
例如当 $k=7$ 时,应为:
\begin{array}\\ 1&2&3&4&5&6&7&\\ 5&6&7&1&2&3&4&\\ 4&7&3&6&2&5&1& \end{array}
根据规律输出。
能暴力跑规律的题千万不要手推。
Problem D
Unsolved.
Problem E
Unsolved.
Problem F
Unsolved.
Problem G
Solved by Xiejiadong && Weaver_zhu. 02:45:41 (+1)
题意:判断十五数码问题是否无解。
题解:在 Xiejiadong 的强行误导下, Weaver_zhu 写了两个小时 A* 。
直接大力猜结论,大概模拟一下 $0$ 位置的变动。
根据 $0$ 所在位置的行列奇偶性和分行和列的逆序对数量奇偶行相同即可。
Problem H
Solved by Xiejiadong. 01:23:54 (+)
题意:询问一段区间 $a_l,a_{l+1},\cdots a_r$ 中元素 $\{|a_l-p|,|a_{l+1}-p|,\cdots ,|a_r-p|\}$ 中的 $k$ 大数。
题解:利用主席树可以维护一个区间里面一段值域里面元素的个数。
对于每个询问二分答案,假设当前答案为 $mid$ ,那么我们需要查询区间里面值域为 $[p-mid,p+mid]$ 的元素个数,元素个数恰好为 $k$ 的就是答案。
Problem I
Unsolved.
Problem J
Solved by Kilo_5723 && Xiejiadong. 04:09:28 (+1)
题意:求整数 $n$ 分解质因数以后,最小的指数。
题解:可以发现 $3982^4 > 10^{18}$ ,于是,我们可以知道 $> 3981$ 的数,指数最多为 $4$ 次。
我们先把 $4000$ 以内的数暴力处理掉,剩下的数就只能是某个数的整数次方了,直接判断开 $x$ 次方是不是整数就好了。