# bdfz_2024_summer # 竞赛的一些方法 1. 真正难的地方是通过题目给的信息和性质推出要用的算法 # 题目经验总结 ## Day2 ### [U111091 区间2段覆盖](./day2/U111091/U111091.md) 1. 不要以小单位的路段为前缀和最小单位,要以房屋为前缀和最小单位 ### 排序 #### 稳定性 >隔着老远swap一般不稳定 >稳定:插入,归并,冒泡 ## 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; } ``` ### 比赛疑问 #### [公平的竞争(fair)](./day5/statement.pdf) ##### $x=2+ {{x}\over{4}}$ => $x = {{8} \over 3}$是怎么得出来的 ### [RMQ 区间最值问题](./day5/RMQ_by_chat.md) >点击跳转 [自己手动实践](./day5/RMQ/st.cpp) ## Day6 [CSP-S1 模拟赛.pdf](./day6/CSP-S1%20模拟赛.pdf) >??:4.13.14.20.21 ### T9 1. 先与后或先&后| ### 快速幂学习笔记 [cpp模板](./day6/binaryExponentiation/binaryExponentiation.cpp) ## Day7 ### 离线算法和在线算法 >有预处理和没有预处理的区别 ### 逆元:学习笔记 [markdown](./day7/inverse/inverse_by_chat.md) [pdf](./day7/inverse/inverse_by_chat.pdf) ### 线段树:学习笔记 [mardown](./day7/SegmentTree/SegmentTree.md) [pdf](./day7/SegmentTree/SegmentTree.pdf) ### 待学: >扫描线 >矩阵乘法 ## Day9 ### 字典树与异或极值 ### [U88589](./day10/U88589/U88589.pdf) > 值域线段树,线段树维护一个桶 ## Day11 [树状数组MD](./day11/FenwickTree/FenwickTree.md) [树状数组PDF](./day11/FenwickTree/FenwickTree.pdf) ## Day12 >二分图,染色,BFS遍历 ## Day13 >单调队列