数论

快速乘:

ll qmul(ll x,ll y,ll mod)
{ll ans=0;while(y){if(y&1) (ans+=x)%=mod;y>>=1;(x+=x)%=mod;}return ans;
}

快速幂:

ll qpow(ll x,ll y,ll mod)
{ll ans=1;while(y){if(y&1) (ans*=x)%=mod;y>>=1;(x*=x)%=mod;}return ans;
}

Gcd:

ll gcd(ll a,ll b)
{return b?gcd(b,a%b):a;
}

Exgcd:

void exgcd(ll a,ll b,ll &x,ll &y)
{if(b) exgcd(b,a%b,y,x),y-=a/b*x;else x=1,y=0;
}

Lucas:

void init()
{f[0]=v[0]=1; for(int i=1;i<=mod;i++) f[i]=f[i-1]*i%mod;v[mod-1]=mod-1; for(int i=mod-2;i;i--) v[i]=v[i+1]*(i+1)%mod;
}
ll lucas(ll a,ll b)
{if(a<b)return 0;if(a<mod&&b<mod)return 1ll*f[a]*v[b]%mod*v[a-b]%mod;return 1ll*lucas(a%mod,b%mod)*lucas(a/mod,b/mod)%mod;
}

ExLucas:

ll num(ll x,ll p)
{ll re=0;while(x){re+=x/p;x/=p;}return re;
}
ll fac(ll n,ll p,ll pc)
{if(!n) return 1ll;ll sum=1ll;for(int i=1;i<pc;i++) if(i%p) (sum*=i)%=pc;ll ans=qpow(sum,n/pc,pc);for(int i=1;i<=n%pc;i++) if(i%p) (ans*=i)%=pc;return ans*fac(n/p,p,pc)%pc;
}
ll inv(ll n,ll p)
{ll x,y;exgcd(n,p,x,y);((x%=p)+=p)%=p;return x;
}
ll C(ll x,ll y,ll p,ll pc)
{if(x<y) return 0ll;int cnt=num(x,p)-num(y,p)-num(x-y,p);return fac(x,p,pc)*inv(fac(y,p,pc),pc)%pc*inv(fac(x-y,p,pc),pc)%pc*qpow(p,cnt,pc)%pc;
}

BSGS:

map<ll,ll>MP;
ll bsgs(ll A,ll B,ll C) // x^A \equiv B (mod\ C)
{ll m=ceil(sqrt(C+0.5));MP.clear();ll now=1;for(int i=1;i<=m;i++){(now*=A)%=C;if(!MP[now]) MP[now]=i;}A=qpow(A,m,C);now=1;for(int i=0;i<=m;i++){ll x,y;exgcd(now,C,x,y);x=(x*B%C+C)%C;if(MP.count(x)) return i*m+MP[x];(now*=A)%=C;}return 0;
}

求原根:

ll get_ori(ll p,ll phi)
{int c=0;for(int i=2;1ll*i*i<=phi;i++) if(phi%i==0){f[++c]=i; f[++c]=phi/i;}for(int g=2;;g++){int j;for(j=1;j<=c;j++) if(qpow(g,f[j],p)==1) break;if(j==c+1) return g;}return 0;
}

线性基:

for(i=1<<30;i;i>>=1)
{for(j=1;j<=n;j++) if(!vis[j]&&a[j].v&i) break;if(j>n) continue;sum-=a[j].num; vis[j]=true;for(k=1;k<=n;k++) if(!vis[k]&&a[k].v&i) a[k].v^=a[j].v;
}

图论

tarjan:

void tarjan(int p)
{st[++top]=p; ins[p]=true;dep[p]=low[p]=++cnt;for(int i=head[p];i;i=nxt[i]){if(!dep[to[i]) tarjan(to[i]),low[p]=min(low[p],low[to[i]]);else if(ins[to[i]]) low[p]=min(low[p],dep[to[i]]);}if(dep[p]==low[p]){Number++;int t;do{t=st[top--]; ins[t]=false;f[Number][++f[Number][0]]=t;}while(t!=p);}
}

堆优化Dijkstra:

priority_queue<pair<int,int> >q;
void Dijkstra()
{while(!q.empty()) q.pop();memset(dis,0x3f,sizeof dis); dis[S]=0; q.push(mp(0,S));while(!q.empty()){while(!q.empty()&&-q.top().first>dis[q.top().second]) q.pop();if(q.empty()) return;int x=q.top().second; q.pop();for(int i=head[x];i;i=nxt[i]) if(dis[to[i]]>dis[x]+val[i]){dis[to[i]]=dis[x]+val[i];q.push(mp(-dis[to[i]],to[i]));}}
}

spfa:

queue<int>q;
void spfa()
{while(!q.empty()) q.pop();memset(dis,0x3f,sizeof dis); dis[S]=0; q.push(S);vis[x]=true;while(!q.empty()){int x=q.front(); q.pop(); vis[x]=false;for(int i=head[x];i;i=nxt[i]) if(dis[to[i]]>dis[x]+val[i]){dis[to[i]]=dis[x]+val[i];if(!vis[to[i]]) q.push(to[i]),vis[to[i]]=true;}}
}

倍增lca

void dfs(int p, int fa) {f[0][p] = fa;dep[p] = dep[fa] + 1;for (int i = 1; i <= 20; i ++ )f[i][p] = f[i-1][f[i-1][p]];for (int i = head[p]; i; i = nxt[i]) {if(to[i] != fa) {dfs(to[i], p);}}
}int lca(int x, int y) {if (dep[x] < dep[y]) swap(x, y);for (int i = 20; ~i; i -- ) {if (dep[f[i][x]] >= dep[y]) {x = f[i][x];}}if (x == y) return x;for (int i = 20; ~i; i -- ) {if (f[i][x] != f[i][y]) {x = f[i][x];y = f[i][y];}}return f[0][x];
}

数据结构

非旋转Treap

int merge(int x, int y) {if (!x || !y) return x | y;pushdown(x); pushdown(y);if (a[x].key > a[y].key) {a[x].rs = merge(a[x].rs, y);pushup(x);return x;}else {a[y].ls = merge(x, a[y].ls);pushup(y);return y;}
}par split(int x, int k) {if(!k)return (par) {0, x};pushdown(x);int ls = a[x].ls, rs = a[x].rs;if (k == a[ls].size) {a[x].ls = 0;pushup(x);return (par) {ls, x};}else if (k == a[ls].size + 1) {a[x].rs = 0;pushup(x);return (par) {x, rs};}else if (k < a[ls].size) {par t = split(ls, k);a[x].ls = t.y;pushup(x);return (par) {t.x, x};}else {par t = split(rs, k - a[ls].size - 1);a[x].rs = t.x;pushup(x);return (par) {x, t.y};}
}

转载于:https://www.cnblogs.com/ShuraK/p/10381888.html

OI模板のpoke流[大型考试复习必备/kl]相关推荐

  1. 小学教师资格证计算机知识,小学老师教师资格证复习内容是什么 小学教师资格证考试笔试必备知识点...

    小学老师教师资格证复习内容是什么 教师资格证分为笔试和面试,小学和幼儿笔试难度比较容易,综合科目只考核<综合素质>,而小学还要考核<教育教学知识与能力>,幼儿考核<保教知 ...

  2. [渝粤教育] 西南科技大学 计算机网络应用基础 在线考试复习资料2021版(1)

    计算机网络应用基础--在线考试复习资料2021版 一.单选题 1. 在数字通信中广泛采用CRC循环冗余码的原因是CRC可以(  ). A. 检测出一位差错 B. 检测并纠正一位差错     C. 检测 ...

  3. 计算机文化基础期末考试复习

      计算机文化基础期末考试复习以下是咱们期末考试的复习题,希望大家认真学习: 一.选择题 1. 第一台计算机ENIAC淡生于1946年,是电子管计算机:第二代是晶体管计算机:第三代是中小规模集成电路: ...

  4. [渝粤教育] 西南科技大学 房屋建筑学 在线考试复习资料(1)

    房屋建筑学--在线考试复习资料 一.单选题 1. 一部楼梯由(    )组成. A.楼段.平台.扶手                   B.踏步.栏杆.扶手 C.踏步.平台.扶手           ...

  5. [渝粤教育] 西南科技大学 房屋建筑学 在线考试复习资料

    房屋建筑学--在线考试复习资料 一.单选题 1. 一部楼梯由(    )组成. A.楼段.平台.扶手                   B.踏步.栏杆.扶手 C.踏步.平台.扶手           ...

  6. [渝粤教育] 西南科技大学 网络营销 在线考试复习资料

    网络营销--在线考试复习资料 一.单选题 1.网站用户满意度体现( )对网络营销的影响. A.网站建设 B.服务易用 C.客服价值 D.客户信息 2.企业网站常用的服务包括( )和内容展示等. A.产 ...

  7. JAVA习题大全之java期末考试复习预测题一

    JAVA习题大全 目录 JAVA习题大全 java期末考试复习预测题A java期末考试复习预测题B java期末考试复习预测题C java期末考试复习预测题D java期末考试复习预测题E java ...

  8. 材料成型计算机模拟第三版,材料成型计算机模拟考试复习资料.doc

    材料成型计算机模拟考试复习资料 一.判断题(共5分)1. Anycasting是一款基于有限元原理的模拟铸造成型过程的数值分析软件. ( × ) 2. 相对于有限元法,有限差分法的弱项在于应力分析. ...

  9. OCJP认证考试复习课-张晨光-专题视频课程

    OCJP认证考试复习课-388人已学习 课程介绍         OCJP是甲骨文推出的的国际认证. 本课程由Java总监级讲师专注Java十三年,不但包含OCJP考试全部内容,还特意制作了很有针对性 ...

最新文章

  1. 干货 | 吴恩达亲自为这份深度学习专项课程精炼图笔记点了赞!(附下载)
  2. powertool 使用学习总结
  3. what should we learn from Magnetite?
  4. 使用计算机的优点缺点,计算机使用二进制的优缺点
  5. 【做题记录】CF1428E Carrots for Rabbits—堆的妙用
  6. 计算机图形学颜色表示,计算机图形学 颜色表示模型.ppt
  7. Github | 基于Pytorch可微分计算机视觉库
  8. 比尔盖茨:反垄断案让我分心,不然微软定能打败安卓
  9. Work Queues(点对多)
  10. 如何用java代码实现隐藏自己的电话号码
  11. 爬虫遇到网页审查元素(开发者工具)打不开怎么办?
  12. 生产排程系统_APS自动生产排程系统-用户常见问题及解答
  13. matlab中matconvnet,matlabR2016中配置matconvnet编译时出错
  14. 分享图片至Facebook与Twitter
  15. 电脑文档出现乱码怎么恢复?文档出现了乱码怎么恢复
  16. 数据结构课程设计项目2:校园导游咨询-预习报告
  17. cmd连接oracle数据库常用命令
  18. Ubuntu下连接红米2无法找到设备解决方案
  19. 問題の解決策 [USACO18JAN]Lifeguards P(题解)
  20. 磁感应强度、磁场强度、磁动势之三者间的关系

热门文章

  1. 群晖 设置 php 服务器,群晖NAS服务器iSCSI管理器配置连接及使用说明
  2. Ethermint部署及框架解析
  3. DeepBrain 李传丰:当语义技能商店应用达到百万量级的时候,语音交互时代才会真正成熟 | WARE 2017
  4. LSTM简介以及数学推导(FULL BPTT)
  5. anasys hpc集群_这可能是最简单的并行方案,如何基于 AWS ParallelCluster 运行 ANSYS Fluent...
  6. c++ 二分查找的函数 lower_bound upper_bound binary_search
  7. mysql忽略列,MySQL:使用DISTINCT时忽略选定的列
  8. Qt 控制台 使用connect连接信号和槽
  9. 均分纸牌pascal程序
  10. java如何读取rfid的数据_100G 数据如何先随机读取1%?