# bdfu_2024_summer # 题目经验总结 ## Day2 ### [U111091 区间2段覆盖](./day2/U111091/U111091.md) 1. 不要以小单位的路段为前缀和最小单位,要以房屋为前缀和最小单位\ ## Day3 ### [U86432 捞鱼(fish)](./day3/U86432/U86432.md) 1. 数据离散化是指把数据只保留有用的东西,在本题当中指的是把数据排序后保存顺序关系,让内存数组可以少一些 2. 看到哪个东西的数据量最少,实在不行就从那个东西下手 ### [T490194 还原排列](./day3/T490194/T490194.md) 1. 学会使用`bool next_permutation(begin,end)` 进行排列组合,没有下一个组合时会返回false,下面是一个示例 ```cpp #include using namespace std; typedef unsigned int u32; ostream& operator<<(ostream &os,const vector &v){ os<<"vector ["; for(u32 i=0;i>n; vector v(n); for(int &i:v){ cin>>i; } cout<<"v:"<费马小定理 2. >逆元 ```cpp // a/b%M ll _ksm(ll a, ll b,ll M){ ll res = 1; while(b) { if(b & 1) res = res * a % M; a = a * a % M; b >>= 1; } return res; } ll ksm(ll a,ll b,ll M){ return a * _ksm(b, M - 2,M) % M; } ``` # 排序 ## 稳定性 >隔着老远swap一般不稳定 >稳定:插入,归并,冒泡 # 竞赛的一些方法 1. 真正难的地方是通过题目给的信息和性质推出要用的算法