1001: 假设有4个红球,初始时从左到右标为1,2,3,4.那么肯定存在一种方案,使得最后结束时红球的顺序没有改变,也是1,2,3,4. 那么就可以把同色球都写成若干个不同色球了.所以现在共有n个颜色互异的球.按照最终情况标上1,2,..,n的序号,那么贪心的来每次操作就是把一个区间排序就行了. 1002: 环加树的同构计数问题.假如没有环,那么可以在树上dp来计算答案,具体方法是,把根节点的所有同构的子树看成相同的,然后用隔板法,算组合数即可得到答案.树的同构可以利用哈希来解决.有环的情况就…
2016 Al-Baath University Training Camp Contest-1 A题:http://codeforces.com/gym/101028/problem/A 题意:比赛初始值是1500,变化了几次,得到的正确结果和bug后的是否相等.(Tourist大佬好 Y(^o^)Y) #include <bits/stdc++.h> using namespace std; int main() { int t; cin>>t; while(t--) { in…
官方解题报告:http://bestcoder.hdu.edu.cn/blog/2015-multi-university-training-contest-6-solutions-by-zju/ 表示很难看....orz 1003题      链接:http://acm.hdu.edu.cn/showproblem.php?pid=5355 Cake Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K…
1001. 一个数组上的两个区间求中位数,可以通过分类讨论直接找到中位数,复杂度O(1).不过本题数据较小,优美的log(n)也可过. 1002. 直接求得阴影面积表达式即可. 1003. 二分完成时间判是否可行.不妨设A的deadline比B的deadline短,对于一次判断内,由于总时间固定,两类任务完成的总时间固定,则可用来练习的时间也固定,首先找到可完成的收益最大的A类任务,若找不到则在B里找,此时若B类的收益还不如去练习,而且练习时间有剩余的话,就先去练习.A类任务若能做则不需要考虑收…
A Poor King Tag: Reversed BFS Preprocessing is needed to calculate answers for all positions (states). Beginning with all checkmate states, you should do reversed Breath-First Search (BFS) to update values. The state can be specified by three positio…
Ants 首先求出每个点的最近点. 可以直接对所有点构造kd树,然后在kd树上查询除本身以外的最近点,因为对所有点都求一次,所以不用担心退化. 也可以用分治做,同样是O(NlogN)的复杂度. 方法是每次用一条竖直线将平面划分成左右两半(平行线划分上下两半也可以),对两半中的点分别递归求每个点的最近点. 然后对左半边的一个点p,如果以它到左半边的最近点的距离为半径画出来的圆和右半边相交,则需要判断右半边是否有距离p更近的点. 我们求出这些圆和竖直平分线的交点,并将右半边的点投影到竖直平分线上,显…
A Boring Question \[\sum_{0\leq k_{1},k_{2},\cdots k_{m}\leq n}\prod_{1\leq j< m}\binom{k_{j+1}}{k_{j}} \] \[=\sum_{0\leq k_{1}\leq k_{2}\leq\cdots \leq k_{m}\leq n}\prod_{1\leq j< m}\binom{k_{j+1}}{k_{j}} \] \[=\sum_{k_{m}=0}^{n}\sum_{k_{m-1}=0}^{k…
ATM Mechine E(i,j):存款的范围是[0,i],还可以被警告j次的期望值. E(i,j) = \(max_{k=1}^{i}{\frac{i-k+1}{i+1} * E(i-k,j)+\frac{k}{i+1}*E(k-1,j-1)+1}\) 这样时间复杂度是\(O(K^2W)\)的. 假如Alice使用的是二分策略,那么在最坏情况下至多被警告\(\left \lceil log_{2}{K} \right \rceil\) 次. 于是W:=min(W,15)就可以了. 然后cla…
1001 Another Meaning 对于这个问题,显然可以进行DP: 令dp[i]表示到i结尾的字符串可以表示的不同含义数,那么考虑两种转移: 末尾不替换含义:dp[i - 1] 末尾替换含义:dp[i - |B|] (A.substr(i - |B| + 1,|B|) = B) 那么对于末尾替换含义的转移,需要快速判断\(B\)能不能和当前位置的后缀匹配,kmp或者hash判断即可. 复杂度:O(N) 1002 After a Sleepless Night 假设根已确定,可以发现新树若…
1001 Sqrt Bo 由于有\(5\)次的这个限制,所以尝试寻找分界点. 很容易发现是\(2^{32}\),所以我们先比较输入的数字是否比这个大,然后再暴力开根. 复杂度是\(O(\log\log n)\). 注意特判\(n=0\)的情况. 1002 Permutation Bo 根据期望的线性性,我们可以分开考虑每个位置对答案的贡献. 可以发现当\(i\)不在两边的时候和两端有六种大小关系,其中有两种是对答案有贡献的. 那么对答案的贡献就是\(\frac{c_i}{3}\). 在两端的话有…