Amber
2024-09-05 22:47:30
训练做的题里有板子单独拉出来。
欧拉筛
int vis[N+],prim[N+];
int cnt;
void Eular()
{
vis[]=vis[]=;
for(int i=;i<N;i++)
if(!vis[i])
{
prim[cnt++]=i;
for(ll j=(ll)i*i;j<N;j+=i) vis[j]=;
}
}
辗转相除法求逆元
ll ans,re;
void e_gcd(ll a,ll b)
{
if(b==)
{
ans=,re=;
return;
}
e_gcd(b,a%b);
ll temp=ans;
ans=re; ///***
re=temp-a/b*re;
}
SPFA找环【bfs
int vis[N];
bool spfa_bfs()
{
ans[s]=v;
vis[s]=;
queue<int> qu;
qu.push(s);
while(!qu.empty())
{
int node=qu.front();
qu.pop();
vis[node]=;
for(int i=;i<=n;i++)
{
if(ans[i]<(ans[node]-ma2[node][i])*ma1[node][i])
{
ans[i]=(ans[node]-ma2[node][i])*ma1[node][i];
if(ans[s]>v) return true;
if(!vis[i]) qu.push(i),vis[i]=;
}
}
}
return false;
}
二维树状数组
int ma[N][N];
int n,m;
inline int lowbit(int x){return x&-x;}
void updata(int x,int y)
{
for(int i=x;i<=n;i+=lowbit(i))
for(int j=y;j<=m;j+=lowbit(j)) ma[i][j]++;
}
int query(int x,int y)
{
int res=;
for(int i=x;i>;i-=lowbit(i))
for(int j=y;j>;j-=lowbit(j)) res+=ma[i][j];
return res;
}
矩阵相乘&矩阵快速幂
int n;
struct p{
double matris[][];
}Rl,tep,res,wat,ans;
void init()
{
memset(Rl.matris,,sizeof(Rl.matris));
memset(res.matris,,sizeof(res.matris));
memset(tep.matris,,sizeof(tep.matris));
memset(wat.matris,,sizeof(wat.matris));
for(int i=;i<=n;i++) tep.matris[i][i]=;
}
p Matris(p a,p b)
{
p tem;
memset(tem.matris,,sizeof(tem.matris));
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
for(int k=;k<=n;k++)
tem.matris[i][j]+=a.matris[i][k]*b.matris[k][j];
return tem;
}
p quick_mi(ll n)
{
p m=Rl,b=tep;
while(n)
{
if(n&) b=Matris(b,m);
m=Matris(m,m);
n/=;
}
return b;
}
最新文章
- 第一篇:Entity Framework 简介
- [转] 添加新的系统调用 _syscall0(int, mysyscall)
- mvc图片上传到服务器
- jquery层级原则器(匹配前一个元素后的下一个元素,必须是挨着的)
- Linux混杂设备驱动学习
- HTTP协议的chunked编码
- Sprint第二个冲刺(第四天)
- ADO.NET中的DataSet和DataAdapter
- Java把内存划分为4个部分 1. 代码区 1、栈区 3、堆区 4、静态区域
- hdu 4462(状态压缩)
- 九度OJ 1385 重建二叉树
- weekend110(Hadoop)的 第五天笔记
- SQL从入门到基础 - 01 数据库开发及ADO.Net
- CodeFirst EF中导航属性的个人理解
- RecyclerView 小记
- CC攻击网站和游戏如何针对性预防?
- Python跨目录调程序
- ViewpageWebview
- form的重置reset
- Sql Server 数据类型与 C# 数据类型对照