博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
代码大全
阅读量:6248 次
发布时间:2019-06-22

本文共 2378 字,大约阅读时间需要 7 分钟。

代码大全

常数优化

编译器卡常优化(CF上比较有用)

#pragma GCC optimize("Ofast")#pragma GCC optimize("unroll-loops")#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")

读入优化:

inline int getint() {    register char ch;    while(!isdigit(ch=getchar()));    register int x=ch^'0';    while(isdigit(ch=getchar())) x=(((x<<2)+x)<<1)+(ch^'0');    return x;}

mmap读入优化:

#include
#include
class MMapInput { private: char *buf,*p; int size; public: MMapInput() { register int fd=fileno(stdin); struct stat sb; fstat(fd,&sb); size=sb.st_size; buf=reinterpret_cast
(mmap(0,size,PROT_READ,MAP_PRIVATE,fileno(stdin),0)); p=buf; } char getchar() { return (p==buf+size||*p==EOF)?EOF:*p++; }};MMapInput mmi;inline int getint() { register char ch; while(!isdigit(ch=mmi.getchar())); register int x=ch^'0'; while(isdigit(ch=mmi.getchar())) x=(((x<<2)+x)<<1)+(ch^'0'); return x;}

数论

扩欧求逆元:

void exgcd(const int &a,const int &b,int &x,int &y) {    if(!b) {        x=1,y=0;        return;    }    exgcd(b,a%b,y,x);    y-=a/b*x;}inline int inv(const int &x) {    int ret,tmp;    exgcd(x,mod,ret,tmp);    return (ret%mod+mod)%mod;}

多项式

FFT

inline void init_ru(const int &n) {    for(register int i=0;i
j) std::swap(f[i],f[j]); for(register int l=n>>1;(j^=l)
>=1); } for(register int i=2;i<=n;i<<=1) { const int m=i>>1; for(register int j=0;j

FWT异或:

inline void fwt(int a[]) {    for(register int j=0;j
>j&1) continue; const int x=a[i],y=a[(1<

字符串

后缀数组求sa[i]rank[i]

inline bool cmp(const int &i,const int &j) {    if(rank[i]!=rank[j]) return rank[i]

后缀数组求lcp[i]

inline void init_lcp() {    for(register int i=0,h=0;i
0) h--; const int j=sa[rank[i]-1]; while(j+h

计算几何:

自适应辛普森法:

inline double simpson(const double &a,const double &b) {    const double c=(a+b)/2;    return (F(a)+4*F(c)+F(b))*(b-a)/6;}inline double asr(const double &a,const double &b,const double &eps,const double &s) {    const double c=(a+b)/2,ls=simpson(a,c),rs=simpson(c,b);    if(fabs(ls+rs-s)<15*eps) return ls+rs+(ls+rs-s)/15;    return asr(a,c,eps/2,ls)+asr(c,b,eps/2,rs);}

转载于:https://www.cnblogs.com/skylee03/p/9154114.html

你可能感兴趣的文章
如何登陆进入Unix体验中心的PE860/FreeBSD系统?
查看>>
CPU Segments
查看>>
如何用数据分析给直播行业再添一把火?
查看>>
AI与IoT为主要发力点,带你看看2016 Hot Chips大会究竟发生了什么?!
查看>>
Java中使用CompletableFuture处理异步超时
查看>>
《21世纪机器人》——DeutchConn第5晶圆厂,装载码头:重启前5小时
查看>>
《中国人工智能学会通讯》——4.28 数据挖掘技术在电子数据取证中的应用
查看>>
【模式识别国家重点实验室】深度学习教你 “以貌取人”
查看>>
搞定全渠道用户体验不是梦,看这家零售巨头怎样做
查看>>
小程序分销商城开发功能
查看>>
数据中心的区块链硬件可能不会解决任何问题
查看>>
中国电信发布低时延光网络白皮书
查看>>
富瑞特装的物联网“情结”
查看>>
从“拖拽”编程开始到一个合格的程序员
查看>>
再破魔力象限 山石网科入选Gartner IDPS MQ
查看>>
从传统归档到云存储归档的演变
查看>>
灯下黑:业务安全成政企行业重大隐患
查看>>
企业级移动市场一股不能忽视的新兴势力“钉钉+”
查看>>
从零学React Native之01创建第一个程序
查看>>
一个前端与后端分离的架构实例
查看>>