文章分类 - 算法蒟蒻 / 杂类专题
摘要:【计数题】 mod 998244353 Grid Counting https://codeforces.com/contest/2151/problem/D 题目大意 思路 注意到恰好一个:列放了就不能再放->每列最多一个 注意到第一行只能放最左边和最右边 (如果上一行没放)第二行必须靠里放两个.
阅读全文
摘要:【随机化】 能在若干次内随机试出且大概率正确 常用函数 rand 生成随机整数 使用时需要#include<cstdlib> 可用取模来规定大小 需要生成随机种子:srand(time(nullptr)) 预定义随机数生成器 mt19937 类似于rand() 使用时用其定义一个随机数生成器:std
阅读全文
摘要:【二维偏序】 https://zhuanlan.zhihu.com/p/112504092 解题方法 树状数组+离散化 题目整理 小红的线下查询 https://ac.nowcoder.com/acm/contest/116945/F 题目大意 思路 (1)把45°坐标转为直角坐标:\(X=x-y\
阅读全文
摘要:【交互题】 输入 的数据是 根据输出的数据决定 的 语法格式 【推荐使用】若使用scanf printf: 在每次输出后加一句fflush(stdout) 若使用cin cout: 在#define endl '\n'的情况下 不要关闭同步流! 在每次输出后加一句fflush(stdout) 常见方
阅读全文
摘要:【lowbit】 概念 \(lowbit(x)\):x的二进制表达式中 最低位的1 所对应的值 【性质】 可以整除n的最大2的幂次\(2^{i}\) i64 lowbit(i64 x){ return (x&-x); } 常见运用:统计二进制下1的个数 while(x){ x-=x&-x; ans+
阅读全文
摘要:【翻硬币问题】 Entangled Coins https://ac.nowcoder.com/acm/contest/108302/A 题目大意 思路 代码 const int N=3e5+10; i64 n,k,s,t; void solve(){ cin>>n>>k>>s>>t; if(n==
阅读全文
摘要:【C++魅力时刻】 记录一些因为语法问题不报RECE导致的WA 边界问题 本题n,m,a[i][j]范围 <=500 注意multiset特判if(son>min(n,m)) continue;否则count计数会比较奇怪 const int N=500; int n,m; multiset<int
阅读全文
摘要:【括号匹配】 题目整理 Ghost in the Parentheses https://ac.nowcoder.com/acm/contest/108301/G 题目大意 思路 【本题关键】 (1)将'('看成+1 ')'看成-1:做前缀和找规律 ->可发现合法的括号序列所有的前缀和一定是非负的
阅读全文
摘要:【全排列】 性质 若干个不同的数 可以组成多少个不同的序列 全排列个数:\(n!\) 求解全排列:dfs+回溯 题目整理 小红与好数组 https://ac.nowcoder.com/acm/contest/112320/D 求和的全排列+附加条件 按字典序从小到大输出->每次dfs都从1开始for
阅读全文
摘要:【浮点数运算】 一般都是简单的模拟题 想对正确的做法 一定不要傻傻按题意直接double/long double! 核心:减少运算次数/找规律用整数算/若小数位数固定就先乘1ex 一定要避免多次浮点数运算!!!->精度有差 H Travel Begins https://codeforces.com
阅读全文
摘要:【差分】 板子 一维差分 //差分数组的加数操作 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
阅读全文
摘要:【打表题】 题目都很简单 只需要打一个表就能看出来!!! 一定要想到小范围数打表找规律 召唤数学精灵 https://www.lanqiao.cn/problems/19700/learning/?page=1&first_category_id=1&name=召唤数学精灵 枚举1-1000内的数有
阅读全文
摘要:【搜索专题】 买瓜 https://www.lanqiao.cn/problems/3505/learning/ 注意本题的dp和剪枝思想! /*注意本题剪枝的后缀和思想*/ #include<iostream> #include<cstdio> #include<algorithm> using
阅读全文
摘要:【高精度运算】 板子很重要! 平方差 https://www.lanqiao.cn/problems/3213/learning/ 要注意很多细节问题:特别是比大小! #include<iostream> #include<cstdio> #include<cstring> #include<str
阅读全文
摘要:【文字游戏题】 注意看题 题干可能会和你理解的“常理”不一样 Switch Seats https://atcoder.jp/contests/abc399/tasks/abc399_d /* 【文字游戏】 题目意思: 数一数有多少对夫妇一开始没有挨着坐,两对夫妇最后可以通过在那四个人之间交换座位而
阅读全文
摘要:【前缀和】 难点在于推公式 构造矩形 https://ac.nowcoder.com/acm/contest/102742/E #include<bits/stdc++.h> using namespace std; #define endl '\n' typedef pair<int,int> P
阅读全文
摘要:【时空复杂度分析】 各时间复杂度量级对应n书目 一般总复杂度不超过1e9 O(logn) -> 常数范围 O(n) -> le9 O(nlogn) -> <1e7 O(n*sqrt(n)) -> 1e5 O(n^2) -> 1e4 O(n^3) -> 5e2 O(2^n) -> 25 O(n!) -
阅读全文
摘要:【简单题】 真的是醉了 对于一道题 要分清什么是重要的 什么是不重要的 只关注重要的 没有思路就不要想复杂 一定不要把结论想当然!一定要注意讨论所有情况!!! 举手赢棋easy https://ac.nowcoder.com/acm/contest/101196/C 错因 简单考虑了必救局答案为1
阅读全文
摘要:【分块】 依照某种规律把一组数分成块 块内具有相同性质->可方便计算 设阈值分治->一部分分块 一部分单独算 【整除分块】 O(sqrt(n)) 支持n<=1e12 核心思想 打表可得: 可发现: 时间复杂度分析 做法 【模版代码】 注意取模操作! i64 division_block(i64 n)
阅读全文
摘要:【博弈论】题目积累 代码都很简单 思路一般也很简单() 不要多想() 乘之 https://ac.nowcoder.com/acm/contest/100671/D 代码 /*【博弈论】 小龙防止小蛇乱来 所以要全选(x 正贡献一定会被小龙选 负贡献一定会被小蛇选 ->所有都要选 */ #inclu
阅读全文

浙公网安备 33010602011771号