随笔分类 -  杂项

摘要:namespace GSM{ int pw1[N],pw2[N],p; void init(){ pw1[0]=1;for(int i=1;i<=len;i++)pw1[i]=1ll*pw1[i-1]*2%p; pw2[0]=1;for(int i=1;i<=N/len;i++)pw2[i]=1ll 阅读全文
posted @ 2025-09-08 22:05 all_for_god 阅读(16) 评论(0) 推荐(0)
摘要:枚举二进制下的子集 for(int s=S;s;s=(s-1)&S) 然后 \(s\) 就枚举了 \(S\) 二进制下的所有子集。 全排列 c++ 内置了一个比较方便的函数: next_permutation() 我们可以通过这个直接得到下一个全排列。 具体的使用方法是开一个数组初始塞上一个排列然后 阅读全文
posted @ 2025-07-18 08:16 all_for_god 阅读(11) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2025-07-16 21:59 all_for_god 阅读(2) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2025-06-14 17:04 all_for_god 阅读(12) 评论(0) 推荐(0)
摘要:这个东西的主要应用是对 pair 类型排序。 priority_queue <pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>> t; 阅读全文
posted @ 2025-06-13 20:12 all_for_god 阅读(25) 评论(0) 推荐(1)
摘要:学校+经典符号+为什么 阅读全文
posted @ 2025-05-28 10:35 all_for_god 阅读(26) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2025-05-02 09:10 all_for_god 阅读(8) 评论(0) 推荐(0)
摘要:一般而言c++直接使用mt19937即可,其几乎是rand()的绝对上位替代。 库:#include<random> 定义:mt19937 rnd(time(0));。其中 time(0)的位置是随机种子,不填也行。 使用:int x=rnd()%p;这时 \(x\) 会是 \([0,p-1]\) 阅读全文
posted @ 2025-03-19 16:51 all_for_god 阅读(34) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2025-03-13 16:59 all_for_god 阅读(1) 评论(0) 推荐(0)
摘要:\le \ge \in \mathbb{M} a \qquad b \ne \forall \exists \left \lfloor \right \rfloor \nmid \varnothing \[\begin{aligned} \le \\ \ge \\ \in \\ \mathbb{M} 阅读全文
posted @ 2025-03-13 14:53 all_for_god 阅读(82) 评论(0) 推荐(0)
摘要:一般而言,c++中保留小数有两种做法。 cout double ans=3.1415926; cout<<setprecision(2)<<ans; output 3.14 但需要注意的是,如果小数没有预设的那么长,其后面不会补零而是会改为空格。因此不太建议。 如果cout要四舍五入的话要加fixe 阅读全文
posted @ 2024-12-21 16:27 all_for_god 阅读(60) 评论(0) 推荐(0)
摘要:STL大法好! stable_sort 基于归并排序,时间复杂度稳定同时并不会改变相对顺序,平替sort,用法一模一样。(可以过一些甚至卡sort的毒瘤,但是由于sort是均摊复杂度 \(O(nlogn)\),因此sort在某些题中会快一点,如SA) bitset 按照 Oi Wiki 的说法,bi 阅读全文
posted @ 2024-11-27 10:53 all_for_god 阅读(31) 评论(0) 推荐(0)
摘要:c++中重载运算符是一个极重要的工具。 虽然在OI中运用并不算太多,但在对于优先队列的运算、各种以结构体为基础的数据结构中,重载运算符有着其几乎无可替代的地方 格式 以最常用的对于dijkstra堆优化为例。由于优先队列默认是大根堆,所以我们要将大于号重载为对于边权值的小于运算 struct edg 阅读全文
posted @ 2024-11-13 08:43 all_for_god 阅读(27) 评论(0) 推荐(0)
摘要:离散化可以说是非常不熟练的部分做一次错一次 通过c++自带的函数可以很方便地进行离散化的操作 函数unique去重,lower_buond在有序的序列上二分查找。 for(int i=1;i<=n;i++) cin>>a[i],b[i]=a[i]; sort(b+1,b+n+1);int len=u 阅读全文
posted @ 2024-11-11 12:03 all_for_god 阅读(26) 评论(0) 推荐(0)