- 博客(10)
- 收藏
- 关注
原创 【YBTOJ】质数距离
思路:先筛出根号r内所有质数,然后再用这些质数去筛l~r的合数codecodecode#include<iostream>#include<cstdio>#include<cstring>using namespace std;long long l, r;long long tot, a[10001000];long long prim[10010000], v[10001000];long long bz[10010000];void..
2021-12-25 09:35:31 297
原创 【YBTOJ】线性筛素数
思路:线性筛素数模板codecodecode#include<iostream>#include<cstdio>using namespace std;int n, q;int v[100000001], prim[6001000];void prime(int n){ int tot=0; for(int i=2; i<=n; i++) { if(v[i]==0) { prim[++tot]=i; v[i]=i; }..
2021-12-25 08:36:31 160
原创 【YBTOJ】行为方案
思路:设fi,j,kf_i,_j,_kfi,j,k表示从i到j走k步的方案fi,j,k=∑fi,p,k−1+fp,j,1f_i,_j,_k=\sum f_i,_p,_{k-1}+f_p,_j,_1fi,j,k=∑fi,p,k−1+fp,j,1显然fp,j,1f_p,_j,_1fp,j,1=1,所以方程就可以优化为二维fi,j=∑fi,p∗fp,jf_i,_j=\sum f_i,_p*f_p,_jfi,j=∑fi,p∗fp,j矩阵乘法直接搞codec..
2021-12-25 08:22:58 268
原创 【YBTOJ】斐波那契数列
思路:矩阵乘法很容易推出转移[11]∗[0111]\begin{bmatrix}1 & 1\end{bmatrix}*\begin{bmatrix}0 & 1\\1 & 1\end{bmatrix}[11]∗[0111]codecodecode#include<iostream>#include<cstdio>using namespace std;long long mod=1e9+7;long long n;long l..
2021-12-24 19:44:49 147
原创 【YBTOJ】序列的第k个数
思路:分类讨论codecodecode#include<iostream>#include<cstdio>using namespace std;long long t, a, b, c, n;long long ksm(long long x, long long k){ long long ans=1; while(k) { if(k&1) ans=ans*x%200907; x=x*x%200907; k>>..
2021-12-24 19:22:18 546
原创 【YBTOJ】耗费体力
思路:设fif_ifi表示到第i个人要用的最小花费,然后从前k个转移过来,用单调队列来维护codecodecode#include<iostream>#include<cstdio>using namespace std;int n, t;int a[1000100], f[1000100];int q[1000100];int main(){ scanf("%d", &n); for(int i=1; i<=n; i++) s..
2021-12-24 19:14:17 388
原创 【YBTOJ】粉刷木板
思路:设f[i][j]表示到第i个人,涂前j个所以f[i][j]=max(f[i−1][k]+(j−k)∗p[i])f[i][j]=max(f[i-1][k]+(j-k)*p[i])f[i][j]=max(f[i−1][k]+(j−k)∗p[i])用单调队列滚掉f[i−1][k]−k∗p[i]f[i-1][k]-k*p[i]f[i−1][k]−k∗p[i]然后滚动数组滚掉icodecodecode#include<iostream>#include<cstdio>..
2021-12-24 18:56:13 346
原创 【YBTOJ】涂抹果酱
思路:就是把二进制转换成三进制然后状压DPcodecodecode#include<iostream>#include<cstdio>using namespace std;int n, m, tot, ks;int tmp[10], idx[100100], st[1100][10];int k, b[10], f[10010][300], a[300][300];void get_(){ int power=1; for(int i=1; i&..
2021-12-11 09:16:34 358
原创 【YBTOJ】最短路径
思路:状压走过哪些点,然后枚举当前点和上一个点,进行转移codecodecode#include<iostream>#include<cstdio>#include<cstring> using namespace std;int n;int a[25][25];int f[25][1001000];int main(){ scanf("%d", &n); for(int i=1; i<=n; i++) for(in..
2021-12-03 21:51:58 222
原创 【YBTOJ】种植方案
思路:直接先筛出所有合法的放置,然后状压当前行,在状压上一行,判断然后转移。codecodecode#include<iostream>#include<cstdio>using namespace std;int n, m;int a[14][15], v[15]; int q[1<<13], tot;int f[15][1<<13];int main(){ scanf("%d%d", &n, &m); fo..
2021-12-03 21:49:33 326
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人