吃瘪#9

来源:互联网 发布:php argv 1 编辑:程序博客网 时间:2024/04/28 19:53

A http://acdream.info/problem?pid=1071

先对数组排序 因为ai一定大于aj 考虑从前往后排除可以整除的情况
首先组合是有n*(n-1)/2种
对每个数标记一下他的倍数 后面遇到的时候减掉
1的话对所有数都可以直接减掉n-i

http://paste.ubuntu.com/25168815/

B https://cn.vjudge.net/problem/71677/origin

求出某一层的循环节
然后改变模数一层一层计算

http://paste.ubuntu.com/25170140/

需要学习的地方:关于矩阵快速幂
观察幂次数和矩阵中答案的位置的关系
做相应的修改也许可以解决不必要的麻烦

C http://codeforces.com/problemset/problem/375/A

题目中说了一定会有1869四个数字
可以观察到1869四个数字可以组成%7为0~6的数字
所以对输入提取1869和0剩下的存起来
检查剩下的部分%7余数再排列1869四个数字
最后补0

http://paste.ubuntu.com/25169887/

需要学习的地方:需要注意题目中特别说明的地方

D http://codeforces.com/problemset/problem/95/C

先对输入的图做一个最短路
如果距离符合要求则说明这个司机能到达这个点
再对新建的图做一个最短路

(如此神奇)

http://paste.ubuntu.com/25170938/

E http://codeforces.com/problemset/problem/375/D

无敌的树上莫队
过两天休息的时候补

F https://cn.vjudge.net/problem/CodeChef-FORESTGA
简单二分 解决一下ll乘爆的问题即可

需要注意的地方 : 二分取值边界
http://paste.ubuntu.com/25168797/
G https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1629
手推公式
(借用大佬博客的图片)
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
另外:三分也可以

H https://hihocoder.com/problemset/problem/1514

对abc去重 然后枚举每个ai
在b和c中找到最接近ai的区间后直接暴力

(不过我这个做法的正确性我是有点怀疑的)
http://paste.ubuntu.com/25168840/