文章分类 - 算法蒟蒻
摘要:【全排列】 性质 若干个不同的数 可以组成多少个不同的序列 全排列个数:\(n!\) 求解全排列:dfs+回溯 题目整理 小红与好数组 https://ac.nowcoder.com/acm/contest/112320/D 求和的全排列+附加条件 按字典序从小到大输出->每次dfs都从1开始for
阅读全文
摘要:【数列】 小红与天使猫猫酱 https://ac.nowcoder.com/acm/contest/112320/F 题目大意 思路 代码 const int N=3e5+10; i64 n; void solve(){ cin>>n; //预处理逆元 i64 inv81=qmi(81LL,mod-
阅读全文
摘要:【分层图】 (参考https://www.cnblogs.com/ldyzzz/p/17632253.html) 使用场合 求解特殊最短路 N个点,M条边,允许对K条边进行改变(对权值进行改变:花费/2,花费变0之类的) 板子题 https://www.luogu.com.cn/problem/P4
阅读全文
摘要:【和状态有关的搜索】 考虑不重复/不死循环的优化 一般都在1e3这个数据范围内/位运算/状态可压缩->可暴力地设状态 XOR Shortest Walk https://atcoder.jp/contests/abc410/tasks/abc410_d 题目大意 一个有向图,路径有权值 求1到n的所
阅读全文
摘要:【三分】 求单峰函数最大值/单谷函数最小值 凹函数/凸函数 思路 模版代码 整数域三分 求凸点 while (l < r) { int mid = (l + r) / 2; if (check(mid) >= check(mid + 1)) r = mid; else l = mid + 1; }
阅读全文
摘要:【数位贪心】 十进制/二进制填数字 一般是从高位到低位考虑->继承 Minimum OR Path https://atcoder.jp/contests/abc408/tasks/abc408_e /*【贪心】最高位为0,次高位为0,...->从高位扫到低位 并继承高位的结果 【位数】设S:S中若
阅读全文
摘要:【01串问题】 结论题 小红的好01串修改 https://ac.nowcoder.com/acm/contest/114111/C 题目大意 思路 首先要发现一些显然的结论 (1)01串要相邻两不同->很显然只有两种方式:01010101/10101010 (2)每次修改相邻的两个->当一个点不满
阅读全文
摘要:【浮点数运算】 一般都是简单的模拟题 想对正确的做法 一定不要傻傻按题意直接double/long double! 核心:减少运算次数/找规律用整数算/若小数位数固定就先乘1ex 一定要避免多次浮点数运算!!!->精度有差 H Travel Begins https://codeforces.com
阅读全文