2018年2月25日训练日记

  昨天补了补学校里的两篇读书笔记和调查报告的作业...其实早就写完电子版的了有一部分,但是还得抄一遍,拼死拼活快抄完了

  那就实打实的一个一个过呗,大佬的博客里面解释的部分基本没有,可以自己想了。

  容斥定理篇:

  Co-prime:这个题目就是让求一个区间a-b里面和n互素的数的个数,转化成1-b和n互素的数的个数减去1-a-1里面和n互素的数的个数,然后先找n的素因子,存起来进行容斥定理即可(实现方式包括dfs以及位运算)。

  Relatives:思路同Co-prime,就是找1-n和m互素的数的个数,1的时候需要特殊处理。

  Visible Trees:以前看过一个欧拉函数解方阵可视点的题目,这里用了容斥定理的思路,就是行列不能有公约数,否则被挡。(这里因为解这个题目有个非常原始但是会超时的思路,就是斜率,斜率相同,一定被挡,和这里一样的,除去公约数得到的是可视的点,无论分子分母同时乘以多少,结果得到的都是一样的斜率。)然后用容斥定理枚举行就行了。

  找新朋友:思路同Co-prime,就是找1-n-1和n互素的数的个数。

  GCD:一道莫比乌斯反演的题目,这里用容斥定理解,和我最初看到这个题目的时候思路相同,就是用预处理得到1-小的数的所有互素的数的对数,然后往上从n+1-m都用容斥定理搞定。

  仪仗队:思路大致同Visible Trees,不过相当于站在了(1,1)点,进行预处理让他跑到(0,0),然后结果加2就行了。

  欧拉函数篇:

  找新朋友:由于是1-n-1里面和n互素的数的个数,欧拉函数的基本含义,打表直接求都可。

  GCD:就是用到了欧拉函数打表的预处理,解法见容斥定理篇。

  The Euler function:让求a-b的欧拉函数的和,加和预处理然后euler(b)-euler(a-1)。

  Calculation 2:让求1-n里面和n互素的数的和,这里用到了1-n里面和n互素的数是成对存在的,也就是若a和n互素,那么n-a也一定和n互素,然后euler(n)*n/2就是结果了。

  Sum:让求1-n之间和n的最大公约数大于等于m的所有公约数的和。有点绕,但是发现枚举就可以了,若一个数y是n的因数,那么gcd(x,n)=y的数的个数=euler(n/i),这里枚举的时候注意i如果是,那么n/i也是,只用枚举到sqrt(n)就可以了,注意i*i=n的情况。

  GCD:另一个GCD,和上面的sum有相似之处,就是 不是问和了,单纯问多gcd(x,n)>=m的x有多少个,更简单了一点有木有...

  高斯消元篇:

  EXTENDED LIGHTS OUT:就是一个游戏,一个矩阵上有灯,一开始某些灯亮着,某些灯灭了,点一个灯,他自己和周围的四个灯的状态都会发生改变,问怎么点最后都灭了。就是用异或方程组,初始状态为扩展列,dfs找相关点标为1,高斯消元解这个异或方程组,得到结果回代即可,因为一定有解。

  开关问题:大致同 EXTENDED LIGHTS OUT,但是有影响的灯改为指定灯。最后问方案总数。这里方案总数=2^自由元个数。

  Painter's Problem:EXTENDED LIGHTS OUT的再次升级,过程一样,但是存在自由元,问最少涂几个块。由于状态只有涂和不涂,那么,可以用状态压缩表示状态,枚举找到最小解。

  Flip Game:Painter's Problem的翻版。

  The Water Bowls:Painter's Problem压缩一维的翻版。

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值