文章分类 - 算法蒟蒻
摘要:【浮点数运算】 一般都是简单的模拟题 想对正确的做法 一定不要傻傻按题意直接double/long double! 核心:减少运算次数/找规律用整数算/若小数位数固定就先乘1ex 一定要避免多次浮点数运算!!!->精度有差 H Travel Begins https://codeforces.com
阅读全文
摘要:【模意义下的运算】 加法/乘法 直接%mod即可 减法 (x-y+mod)%mod 除法 用乘法逆元 qmi(x,mod-2,mod) 或用逆元表 https://www.cnblogs.com/whiteink/articles/18703913 幂次 (1)欧拉降幂 (2)费马小定理:前面取模都
阅读全文
摘要:【贡献法】(数论) 一般结合计数原理/组合数学 中位数 https://ac.nowcoder.com/acm/contest/111309/F 知识点: (1)组合数递推打表 (2)降幂:费马小定理 注意在前面的取mod下取(mod-1),在最后的操作上取mod(费马小定理逆运算) const l
阅读全文
摘要:【有关STL的模拟】 STL很多都具有 O(logn) 的复杂度 可以处理很多 看起来要用数据结构的题 众数 https://ac.nowcoder.com/acm/contest/111309/D 分析 看题目n<=1e3->可以n^2遍历 要求每次修改后查找最大值是O(logn),修改也要O(l
阅读全文
摘要:【状态】(数论) 一般数字本身的范围很小->直接以数字本身作为状态 类线性dp去转移 Small Operations https://codeforces.com/contest/2114/problem/F 思路 一个是乘一个是除->尝试缩短为1个操作 ->x和y都除到1找最短路线 ->如何找最
阅读全文
摘要:【差分】 板子 一维差分 //差分数组的加数操作 void insert(int l,int r,int c){ b[l]+=c; b[r+1]-=c; } //预处理 构造差分数组 for(int i=1;i<=n;i++) insert(i,i,a[i]); 二维差分 void insert(i
阅读全文
摘要:【博弈论】理论基础 概念 初始状态很重要!一般都是针对初始状态进行讨论 必胜态 必败态 巴什博弈(Bash Game) 就是取石子 模型 结论 若n%(m+1)!=0 先手赢 若n%(m+1)==0 后手赢 分析 (1)若n%(m+1)!=0 先手可以拿到剩下(m+1)整数倍的石子留给后手 后手无论
阅读全文
摘要:【数论构造题】 构造+数论知识 Once In My Life https://codeforces.com/gym/105158/submit 类题常见思路 构造n*k=xxx的题目->将其转换为加法ans+x=n*k->求x 思路 考虑构造123456789d0000..0000的形式,此时低位
阅读全文
摘要:【数位DP】 对数字位数,把每一位拆开、关注每一位数字 特征 1.最终目的为计数:统计满足一定条件的数的数量 2.问题经过转化后,可以使用 「数位」 的思想去理解和判断 3.输入:提供数字区间/上界 来作为统计的限制 4.上界很大(\(10^{18}\)) 思考方式 把相似的计数过程进行归并->这些
阅读全文
摘要:【记忆化路线】 Spirit of Cola. https://ac.nowcoder.com/acm/contest/110312/J 注意写法积累! (1)vector多维数组 //记最短路 vector dp(c[0] + 1, vector(c[1] + 1, vector<int>(c[2
阅读全文
摘要:【树上前缀和】 Compare Tree Weights 【树链剖分+树状数组维护顶点前缀和】 https://atcoder.jp/contests/abc406/tasks/abc406_f #include<bits/stdc++.h> using namespace std; #define
阅读全文

浙公网安备 33010602011771号