09 2021 档案
余数有关
摘要:1. 约瑟夫数论问题 uva1363 我们发现 k/i的整数部分为p 如果k/(i+1)也为p 则有kmod(i+1)=k-(i+1)/p=k-i*p-p=kmodi-p 则为一个等差数列 然后从尾项倒着查.
gym 102263 D 思维+gcd
摘要:https://codeforces.com/group/uVAsoW2Jkj/contest/336856/problem/D 给你一个数组A 让你随便加减数组B任一数 问能否把A全相等 首先 一整个数组可以凑出一个数x=k1*b1+.... 即 x=k*gcd(b1....) 那么如何让A全相等
uva12716 xor与gcd xor得转化思想
摘要:题意 求小于等于n的数对(a,b) 要求gcd(a,b)==a xor b n<=3e7 如果单纯枚举 n^2 一定是T掉的 显然要优化一层循环 又因为 a xor b=c 则a xor c=b 那么把gcd(a,b)看作c 寻找b即可 而c是a的约数 为根号n 则循环化简到nlogn
LIS nlogn优化板子
摘要:for(int i=1;i<=n;i++) 初始化 for(int i=0;i<n;i++) { int k=lower_bound(g+1,g+n+1,A[i])-g; d[i]=k; g[k]=A[i]; } 假设我们已经算出来了d(以i为结尾的最长上升子序列) d[a]=d[b] 那么 如果a
uva10755 子长方体最大和 降维+dp
摘要:这里我们先将其看作2维问题 给定一个长方形 让你求他的最大子矩阵, 我们枚举长方形的y1与y2 并将它压缩成1维 而1维的最大子区间我们非常好考虑 那3维同理 我们给定一个长方体 枚举她的z1与z2 压缩成一个二维矩阵 然后我们再枚举y1 y2 继续压缩 既可求得该长方体
最大子矩阵 递推 扫描线
摘要:#include<bits/stdc++.h> #include<iostream> using namespace std; typedef long long ll; int dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}}; ll mod=19260817; char
正方体存在的24种排列
摘要:vector<vector<int>> d = { {2, 1, 5, 0, 4, 3}, {2, 0, 1, 4, 5, 3}, {2, 4, 0, 5, 1, 3}, {2, 5, 4, 1, 0, 3}, {4, 2, 5, 0, 3, 1}, {5
同余定理 卷积 FFT优化
摘要:#include<bits/stdc++.h> using namespace std; using ll=long long; const int maxn=(1<<20)+5; const double PI=acos(-1); struct Complex { double x,y; Comp
KMP算法板子
摘要:int next[100]; void getnext() { string a//(查找的串) next[0]=-1; int j=0,k=-1; for(j=0;j<a.size();j++) { if(k 1||a[j]==a[k]) { next[++j]=++k; } else { k=n