t1-快速多项式变换(FPT) 题解 看到这个\(f(x)=a_0+a_1x+a_2x^2+a_3x^3+ \cdots + a_nx^n\)式子,我们会想到我们学习进制转换中学到的,那么我们就只需要\(m\)转换成\(n\)进制就可以了. ac代码 #include <bits/stdc++.h> using namespace std; long long n, m, a[1005]; int cnt; int main() { cin >> n >> m; whi…
本片题解设计两种解法 果然是签到题... 因为返回值问题T了好久... 第一眼:搜索大水题? 然后...竟然A了 #include<cstdio> #include<queue> #include<iostream> #include<cstring> #define int long long using namespace std; inline int read(){ ,f=;char chr=getchar(); ;chr=getchar();} )…
题面 这道题虽然是练习匈牙利算法的,但可以用网络流来切掉它: 我们可以建立一个超级源和一个超级汇,超级源连接左部分点,超级汇连接右部分点: 然后在该图上跑最大流就可以了: PS:我设的超级源是2001,超级汇是2002: #include <bits/stdc++.h> using namespace std; struct littlestar{ int to; int nxt; int w; }star[5000010]; int head[5000010],cnt; inline voi…
这是个NOIP原题... 题意: 给定 a b c d 求 gcd(a, x) = b && lcm(c, x) = d 的x的个数. 可以发现一个朴素算法是从b到d枚举,期望得分50分. (为什么lyd大佬的暴力就是90...) 有个要点就是所求的x必定为d的约数. 然后根据lcm和gcd的性质,拆成质因数. x的每个质因数个数是有范围的,可以求出来. 然后乘起来就行了. 注意要分类讨论,别用书上写的,有毒. #include <cstdio> ; int p[N], top…