CSP-S 模拟95

 

  简单计算

                $large 2*sumlimits_{i=0}^{p} left lfloor frac{i*q}{p} ight floor=sumlimits_{i=0}^{p}left lfloor frac{i*q}{p} ight floor*leftlfloor frac{(p-i)*q}{p} ight floor$

    $$large =sumlimits_{i=0}^{p} q-[(p|(i*q))?0:1] $$
    $$large =(p+1)*q-gcd(p,q)$$

   

  格式化

    对于格式化后有增益的按容量从小到大格式化,格式化后有损耗的按容量从大到小格式化

  

  真相

    枚举说第一种话且说的是真话的人,对于说的相同的第一种话的人一定同时真或假,对于说不同第一种话的人一定不同时为真

    确定了一个说第一种话的人说的话的真假,那么可以逆时针倒推出说第二三种话的真假,一直到逆时针的上一个说第一种话的人(不包括)

    那么可以统计出每一个说第一种话的人为真为假时,逆时针的一段的真话个数

    枚举说第一种话的人全部说假话及某一个人说真话的情况,计算说真话的人的个数,再看是否满足说第一种话的人的真假条件

原文地址:https://www.cnblogs.com/heoitys/p/11771316.html