2017 CCPC 哈尔滨站 HDU 6242】的更多相关文章

Geometry Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 1091    Accepted Submission(s): 208Special Judge Problem Description Alice is interesting in computation geometry problem recen…
题目链接  2017 CCPC Harbin Problem K 题意  给定若干物品,每个物品可以覆盖一个区间.现在要覆盖区间$[1, t]$. 求选出来的物品的$\frac{∑a_{i}}{∑b_{i}}$的最小值. 首先二分答案,那么每个物品的权值就变成了$x * b_{i} - a_{i}$ 在判断的时候先把那些权值为正的物品全部选出来, 然后记录一下从$1$开始可以覆盖到的最右端点的位置. 接下来开始DP,按照区间的端点升序排序(左端点第一关键字,右端点第二关键字) 问题转化为能否用剩…
题目链接  2017 CCPC Harbin Problem A Problem B Problem D Problem F Problem L 考虑二分答案. 设当前待验证的答案为x 我们可以把第二个条件转化为在子树中最多有几个点是黑色的. 那么我们可以根据这些条件求出以每个点为根的子树的黑点数范围,做一次dfs. 最后看看根结点的范围是否包含x即可. #include <bits/stdc++.h> using namespace std; #define rep(i, a, b) for…
2017 ccpc哈尔滨 A题 Palindrome 题意: 给一个串\(T\),计算存在多少子串S满足\(S[i]=S[2n−i]=S[2n+i−2](1≤i≤n)\) 思路: 很明显这里的回文串长度为奇数,所以用\(manacher\)处理时不需要添加间隔字符 所以这里的\(Len[i]\)表示的就是以\(i\)为中心的回文串向左右最远能延伸的长度 那么\(S[i]=S[2n−i]=S[2n+i−2](1≤i≤n)\)就等价于 找到一对$(i,j), 满足i - Len[i] + 1 <=…
题目链接  2017 CCPC Hangzhou Problem H 思路:对树进行分块.把第一棵树分成$\sqrt{n}$块,第二棵树也分成$\sqrt{n}$块.    分块的时候满足每个块是一个连通块,那么每个块就有一个共同的祖先. 把询问按照第一个点被第一棵树的哪个祖先管辖和第二个点被第二棵树的哪个祖先管辖,分成$n$类. 每一类询问一起处理,处理完后用可撤销并查集恢复到之前的状态. 每一类询问之间依次转移,每次转移,移动次数不会超过$\sqrt{n}$次. 最后总时间复杂度$O(n^{…
题目链接  2017 CCPC Hangzhou Problem G 题意描述很清晰. 考虑每个家庭有且仅有$k$对近亲的方案数: $C(a, k) * C(b, k) * k!$ 那么如果在第$1$个家庭里面选出$k_{1}$对近亲,在第$2$个家庭里面选出$k_{2}$对近亲......在第$n$个家庭里面选出$k_{n}$对近亲, 剩下那些人自由组合的话,那么最后这种方案至少会有$∑k$对近亲. 说是至少,因为同一个家庭里面没被强行选择的男女还是可能被组到了一起. 那么考虑如何求至少有$k…
题目链接  2017 CCPC Hangzhou  Problem E 题意  给定一棵树,每个点有一个权值,现在我们可以选一些连通的点,并且把这点选出来的点的权值相加,得到一个和. 求$[1, m]$里面哪些值可以被表示成选出来的点的权值和.用$01$序列的方式输出. 重现赛赛场上的我英勇无畏,大胆做$3000$次FFT合并两个bitset表示的答案. 然后TLE到结束(活该) 其实这个题确实要用bitset,关键是能不能把合并两个bitset转化成合并一个数和一个bitset. 考虑点分治.…
Ccpc杭州站赛后总结 2017年11月4号五号,我参加了ccpc杭州站的比赛,我的队友是聂少飞和王艳,在4号一点半,举行了比赛开幕式,听着教练代表的发言,听着参赛选手代表的发言,听着志愿者的发言,都令人感觉到这场比赛准备的充足与正式,开幕式结束后就是热身赛了,热身赛只有三道题,第一题翻译不难,很快就读懂题了.但是一时间没有头绪,三个人在那想了几分钟才想到方法写出来,一提交,A了,然后我和王艳看第二题,聂少飞在测编译环境.第二题的题意不长,但是总是和样例对不上,然后又回去读题,继续猜题意,琢磨了…
# ccpc 网络赛 hdu 6155(矩阵乘法 + 线段树) 题意: 给出 01 串,要么询问某个区间内不同的 01 子序列数量,要么把区间翻转. 叉姐的题解: 先考虑怎么算 \(s_1, s_2, \ldots, s_n\)的答案. 设 \(dp(i, 0/1)\) 表示考虑到 \(s_i\) ,以 \(0/1\) 结尾的串的数量. 那么 \(dp(i, 0) =dp(i - 1, 0) + dp(i - 1, 1) + 1\),\(1\)也同理. 那么假设在某个区间之前,\(dp(i, 0…
2017 多校3 hdu 6061 RXD and functions(FFT) 题意: 给一个函数\(f(x)=\sum_{i=0}^{n}c_i \cdot x^{i}\) 求\(g(x) = f(x - \sum a_i)\)后每一项\(x^{i}\)的系数mod998244353 \(n <= 10^{5},m <= 10^{5}\) \(0 <= c_i < 998244353\) \(0 <= a_i < 998244353\) 思路: 令\(d = -\s…