当前位置: 首页 > news >正文

常用模板

常用模板

造数据

#include<bits/stdc++.h>
using namespace std;
int main(){int x = 1;int y = 1000;random_device rd;mt19937 r_eng(rd());//r_eng是变量名uniform_int_distribution <int> dis(x, y);//生成x-y之间的高质量随机数。(dis,x,y是变量名)cout << dis(r_eng);//调用随机数return 0;
}

upd:

in

#include<bits/stdc++.h>
using namespace std;
string A="D:/data/ data/",B=".in",C=".out",op="Subtask";
random_device rd;
mt19937 rg(rd());
int rand(int x,int y) {uniform_int_distribution<int> dis(x,y);return dis(rg);
}
signed main() {for (int data= ;data<= ;data++) {string s=A+op+to_string(data)+B;freopen(s.c_str(),"w",stdout);fclose(stdout);}return 0;
}

out

#include<bits/stdc++.h>
using namespace std;
void solve() {}
string A="D:/data/ data/",B=".in",C=".out",op="Subtask";
signed main() {for (int data= ;data<= ;data++) {string s=A+op+to_string(data)+B;freopen(s.c_str(),"r",stdin);s=A+op+to_string(data)+C;freopen(s.c_str(),"w",stdout);solve();fclose(stdin);fclose(stdout);}return 0;
}

高精度

高精度1(函数包装)

高精度2(符号替换)

高精度3(结构体+函数)(云课堂)

卡常

O3 优化

#pragma GCC optimize(3)

加速器

std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);

各种优化

link

快读快写

超级大快读

link

void

inline void read(int &x){x=0; char c=0; int w=0;  while(!isdigit(c))w=-1,c=getchar();  while(isdigit(c))x=x*10+(c^48),c=getchar();  if(w) x=-x;  
}

int

inline int read(){int s=0,w=1;char ch=getchar();while(ch<'0' || ch>'9') {if(ch=='-') w=-1;ch=getchar();}while(ch>='0' && ch<='9') {s=s*10+ch-'0';ch=getchar();}return s*w;
}

不分整数类型的快读

template<typename T>
inline void read(T &x){x=0; char c=0; T w=0;while(!isdigit(c)) w=-1,c=getchar();  while(isdigit(c)) x=x*10+(c^48),c=getchar();  if(w) x=-x;  
}

位运算优化

inline int read() {register int x=0,f=1;char c=getchar();while(c<'0' || c>'9') {if(c=='-') f=-1;c=getchar();}while(c>='0' && c<='9') {x=(x<<3)+(x<<1)+(c^48); //等价于x*10+c-48,使用位运算加速c=getchar();}return x*f;
}

unlocked

其实就是把 getchar 换成 getchar_unlocked,常数接近 fread

#include<bits/stdc++.h>
using namespace std;
inline int read(){register int x=0,f=1;char c=getchar_unlocked();while(c<'0' || c>'9') {if(c=='-') f=-1;c=getchar_unlocked();}while(c>='0' && c<='9') {x=(x<<3)+(x<<1)+(c^48);c=getchar_unlocked();}return x*f;
}
inline void write(int x){if(x<0) putchar('-'),x=-x;if(x>9) write(x/10);putchar(x%10+'0');
}

fread

//快读优化 
char buf[1<<21],*p1,*p2;
inline char gc(){if(p1==p2) p2=(p1=buf)+fread(buf,1,1<<21,stdin);return *(p1++);
}inline int read(){//快读 int s=0,fu=1;char ch=gc();while(ch<'0'||ch>'9'){if(ch=='-')fu*=-1;ch=gc();}while(ch>='0'&&ch<='9'){s=(s<<1)+(s<<3)+(ch^48);ch=gc();}return s;
}

快写

inline void write(int x){if(x<0) putchar('-'),x=-x;if(x>9) write(x/10);putchar(x%10+'0');return;
}

手写栈优化快写

inline void write(int x) {int p=0,st[35];do {st[p++]=x%10,x/=10;}while(x);while(p) putchar(st[--p]+'0');
}

不分整数类型的快写

template <typename T>
inline void write(T x) {if(x<0) putchar('-'),x=-x;if(x<10) putchar(x+'0');else write(x/10),putchar(x%10+'0');
}

fwrite

#define bsiz 1000000int sta[30];
char buf[bsiz], pbuf[bsiz], *p = pbuf, *s = buf, *t = buf;#define mputc(ch) (p - pbuf == bsiz ? fwrite(pbuf, 1, bsiz, stdout), p = pbuf, *p++ = ch : *p++ = ch)inline void putll(LL x) {register int top = 0;if (x<0) mputc('-'), x = -x;do sta[top++] = x % 10, x /= 10;while (x);while (top) mputc(sta[--top] + '0');
}int main() {LL ans=123;putll(ans);fwrite(pbuf, 1, p - pbuf, stdout);return 0;
}

封装成类

#include<bits/stdc++.h>
using namespace std;
class GET{
private:int num;char c;string str;long long lng;stringstream strr;double d;
public:GET(){num=0;c=' ';str="";lng=0;strr.clear();}int get_int(char end='\n'){lng=0;c=getchar();while(c!=end){num=num*10+(c-48);c=getchar();}GET();return num;}long long get_long(char end='\n'){lng=0;c=getchar();while(c!=end){lng=lng*10+(c-48);c=getchar();}return lng;}string get_str(char end='\n'){strr.clear();str="";c=getchar();while(c!=end){strr<<c;c=getchar();}strr>>str;return str;}char get_char(void){return getchar();}double get_double(char end='\n'){d=0;int t=0;c=getchar();while(c!='.'){d=d*10+(c-48);c=getchar();}c=getchar();while(c!=end){d=(d*10+(c-48));t++;c=getchar();}return d/pow(10,t);}
};

namespace

namespace FAST_IO {template<typename T> void read(T &a) {a=0;int f=1;char c=getchar();while(!isdigit(c)) {if(c=='-') f=-1;c=getchar();}while(isdigit(c))a=a*10+c-'0',c=getchar();a=a*f;}template <typename T> void write(T a) {if(a<0) {a=-a;putchar('-');}if(a>9) write(a/10);putchar(a%10+'0');}template <typename T> void writeln(T a) {write(a);puts("");}
}
http://www.hskmm.com/?act=detail&tid=34529

相关文章:

  • C++ std::forwardT 的使用
  • tryhackme-预安全-网络基础知识-数据包和帧-07
  • 迈向零信任存储:基于RustFS构建内生安全的数据架构
  • 如果这就是人类脑海的话 雪白纸上划出血红层层痕迹 不如杀死这些记忆
  • 嗣澳——扫,墨依奥——描,希伊桉——线
  • 服务器被攻击!原因竟然是他?真没想到...
  • 得到的眼泪学会了哭泣 得到的悲伤缓慢摧残肉体 被所爱之人踩在地
  • 框架架构的多维赋能——论其对自然语言处理深层语义分析的影响与启示
  • 使用 robocopy 命令备份还原数据速度统计
  • 顺天地之自然
  • Mac 打开终端方式
  • PWN手的成长之路-20-cgpwn2
  • 树状数组和线段树基础
  • C++ofstream写文件bug
  • Debian13中使用Virtual-box安装Window10虚拟机并设置USB直通
  • 2024长城杯决赛-溯源取证1
  • [Agent] ACE(Agentic Context Engineering)和Dynamic Cheatsheet学习笔记
  • 2025年9月模拟赛整合
  • 软工问题总结10.19
  • AI元人文构想研究:理论溯源、跨学科审视与技术路径探析
  • NOAI官方学术支持
  • 【ARM CoreLink 系列 4.1 -- NI-700 interconnect hub 控制器详细介绍】
  • NPM(更新中)
  • 使用DAO模式改造学生信息管理系统
  • 【ARM CoreLink 系列 4 -- NIC-400 控制器详细介绍】
  • Linux反弹shell解析
  • 2025-10-18 MX-S 模拟赛 赛后总结【MX】
  • P1854 花店橱窗布置 解题笔记
  • P1896[SCOI2005]互不侵犯 解题笔记
  • habse