卡常小技巧

  • 使用递归次数较多的函数时(如:分治、\(\text{DFS}\) 时)使用 inline
  • 使用 string 做为字符串时:
模板
inline read(string &x){
	char tmp;read(tmp);
	while(tmp!=' '&&tmp!='\n'&&tmp!='\r'){
	x.push_back(tmp);tmp=getchar();
	}
}
  • 取模次数过多?使用快速取模!
模板
	long long QMMM, QMPP;
	void init(int pp) { QMMM = ((__int128)1 << 64) / pp; QMPP = pp; }
	inline int o(int x){
		return x - ((__int128(x) * QMMM) >> 64) * QMPP;
	}
posted @ 2024-11-13 15:33  辜铜星  阅读(6)  评论(0编辑  收藏  举报