====== 2020.07.18-2020.07.24 周报 ====== ===== 团队训练 ===== 2020.07.18 [[https://ac.nowcoder.com/acm/contest/5668|2020牛客暑期多校训练营(第三场)]] ''prob:7:8:12'' ''rnk:112/1175'' [[20200718比赛记录]] 2020.07.20 [[https://ac.nowcoder.com/acm/contest/5669|2020牛客暑期多校训练营(第四场)]] ''prob:4:5:10'' ''rnk:60/1112'' [[20200720比赛记录]] 2020.07.23 [[https://codeforces.com/group/azDPdoF24f/contest/288496|2020.07.23codeforces加训]] ''prob:6:6:11'' ''rnk:7/17'' [[20200723比赛记录]] ===== _wzx27 ===== ==== 专题 ==== 做了点后缀自动机的题。 ==== 题目 ==== 牛客三 | [[20200718比赛记录#A - Clam and Fish|A - Clam and Fish]] | [[20200718比赛记录#F - Fraction Construction Problem|F - Fraction Construction Problem]] | 牛客四 | [[20200720比赛记录#F - Finding the Order|F - Finding the Order]] | [[20200720比赛记录#I - Investigating Legions|I - Investigating Legions]] | ==== 比赛 ==== [[Atcoder Beginner Contest 127 (VP)]] [[Atcoder Beginner Contest 128 (VP)]] ===== Infinity37 ===== ==== 专题 ==== 无 ==== 题目 ==== 牛客三 | [[20200718比赛记录#b_-_classical_string_problem|B - Classical String Problem]] | [[20200718比赛记录#d_-_points_construction_problem|D - Points Construction Problem]] | 牛客四 | [[20200720比赛记录#b_-_basic_gcd_problem|B - Basic Gcd Problem]] | [[20200720比赛记录#c_-_count_new_string|C - Count New String]] | ==== 比赛 ==== [[cfr659 div2_infinity37比赛记录]] ===== Zars19 ===== ==== 专题 ==== [[20200719 - 一些非常简单的计算几何扫描线题]] ==== 题目 ==== 牛客3 | [[20200718比赛记录#C - Operation Love]] | [[20200718比赛记录#G - Operating on a Graph]] | [[20200718比赛记录#L - Problem L is the Only Lovely Problem]] | ==== 比赛 ==== [[Codeforces Round 658 (Div. 2) Zars19]] ===== 本周推荐 ===== ==== _wzx27 ==== 题目链接:[[https://atcoder.jp/contests/abc129/tasks/abc129_f|Takahashi's Basics in Education and Learning]] tag:矩阵快速幂 思维 题意: 给一个等差数列的首项 $A$ 公差 $B$ 和项数 $L$,把这 $L$ 项连接起来得到一个很长的整数。求这个数对 $M$ 取模的结果。 $1 \le L,A,B \le 10^{18}$ $1 \le M \le 10^9$ 保证等差数列的每一项都不超过 $10^{18}$。 题解: 如果暴力维护答案就是 $ans = ans \times 10^{bits} + a_i$,这种线性递推式考虑用矩阵快速幂优化。 把 $L$ 项按照位数划分,对于每一组位数为 $\text{bits}$ 的项,都构造如下矩阵: $$ \begin{bmatrix} 10^{bits} & 1 & 0 \\ 0 & 1 & B \\ 0 & 0 & 1 \end{bmatrix} $$ 左乘矩阵 $$ \begin{bmatrix} ans \\ a_i \\ 1 \end{bmatrix} $$ 代码: #include #define ll long long #define pii_ pair #define mp_ make_pair #define pb push_back #define fi first #define se second #define rep(i,a,b) for(int i=(a);i<=(b);i++) #define per(i,a,b) for(int i=(a);i>=(b);i--) #define show1(a) cout<<#a<<" = "<