快速幂
二分抄代码
去了18ec没资格去19ec的反向训练选手
展开
-
AtCoder Beginner Contest 199 F - Graph Smoothing
https://atcoder.jp/contests/abc199/tasks/abc199_f我们发现可以知道每一次随机选边后的值的变化假设i与deg条边,那么ai= {(ai+aj)/2 /m} + (m-deg)/m * ai那么就相当于每次随机选边后都有一个与上一次的值有关的等式k=1e9,所以用矩阵快速幂,复杂度是n^3 logk#include<bits/stdc++.h>using namespace std;typedef long long ll;原创 2021-04-25 00:16:38 · 350 阅读 · 0 评论 -
J-Josephus Transform 2020牛客暑期多校训练营(第六场)
https://ac.nowcoder.com/acm/contest/5671/J这题一开始数据错了,没人写,其实是个水题。。。首先我们可以把进行一次k-约瑟夫变换的置换序列用树状数组求出来然后要做完整的x次,由于置换满足结合律,所以可以直接快速幂求x次后的置换序列,对原数组按这个置换变一下就行了。于是就是m*n(logn+logk)的复杂度#include<iostream>#include<cstdio>using namespace std;con原创 2020-07-27 17:01:50 · 985 阅读 · 0 评论 -
HDU6395 Sequence
看到向下取整,就要想到sqrt(n)分块,然后那一部分要加的数字都是相同的,那么在这一段里面矩阵快速幂就行了考场上没写出来= =,这题太晚写了,结果有些细节下标想不清楚,而且一开始我的ans矩阵每一位都是1了,而单位矩阵应该是对角线是1。。。不枉我线代78分#include<cstdio>#include<cstring>#include<cmath&g...原创 2018-08-14 15:11:41 · 139 阅读 · 0 评论 -
2019南昌邀请赛网络赛 C. Angry FFF Party
一个数字用斐波那契数列是唯一分解的,然后这个数列增长更快一些,那么要么是唯一分解,要么就无法分解,通过使用java大数发现到f[f[29]]的时候就已经超过10^(1e6)了。那么只要求这28个数就行了。在比赛的时候我先用c++写暴力,发现要一分钟多才能预处理完,但是java的BigInteger几乎是秒出,但是后期一直在讲话,浪费了很多时间,然后最后才发要按照字典序最小的答案输出,就没时间处...原创 2019-04-25 19:10:57 · 554 阅读 · 0 评论 -
2019牛客多校第五场 B generator 1
传送门:https://ac.nowcoder.com/acm/contest/885/B据说这题byf在他自己讲课的时候讲过这个方法,然后其他队都做出来了,byf在巨大压力下脑补出了这个10次幂的矩阵快速幂,最后两分钟过了。然后一堆水题没看时限卡得比较死,我最后一起写,每次自己乘10次,超时了,还是得用2次幂的快速幂算这10次才能过#include<bits/stdc++.h...原创 2019-08-01 22:38:41 · 237 阅读 · 0 评论