csp-s模拟95

T1:

\[ \begin{align} & \sum _{i=0}^p \lfloor \frac{iq}{p} \rfloor \\ = & \sum_{i=0}^p \frac{iq-iq \% p}{p} \\ = & \frac{ q*\sum_{i=0}^p i - \sum_{i=0}^p iq \% p }{p} \\ = & \frac{(p+1)q}{2} - \frac{ \frac{p}{gcd(p,q)}*(p-gcd(p,q))*gcd(p,q) }{2p} \\ = & \frac{(p+1)q}{2} - \frac{ (p-gcd(p,q)) }{2} \\ \end{align} \]

 
T2:
  设格式化前的容量为a,格式化后的容量为b
  当a <= b时,贪心的将a从小到大排序依次格式化一定最优
  当a > b时,考虑若原剩余容量为C,那么格式化一个硬盘i,就是:
\(if C \geq a_i C \to C-(a_i-b_i)\)
  我们可以设\(C'=c-(a_i-b_i)\),那么式子就变为了:
\(if C'+(a_i-b_i) \geq a_i C'+(a_i-b_i) \to C'\)
  移项:\(if C' \geq b_i C'+(a_i-b_i) \to C'\)
  发现式子和a<=b时的一样,可以按b从大到小排序贪心
 
T3:
  考试时一看题目,2-SAT!!!
  然而并不能处理第一种话
  又想到侦探推理,然而数据范围又这么大……
 
  (我们钦定说第一种话的人是大佬 orz)
  考虑实际上这个环是被大佬切成了好多段,每段中只需知道大佬的真假就可以推出所以人的真假
  考虑枚举说真话的人的个数,然后check
  发现复杂度是\(O(n^2)\)的,不行
  考虑每次重推每个大佬其实挺蠢的,预处理每个大佬说真话/假话时控制的真话/假话的人就好了

posted @ 2019-11-12 08:42  G_keng  阅读(107)  评论(0编辑  收藏  举报