CF2090B Pushing Balls 题解 贪心地,依次扫描每一行(列),如果当前格子有球,将它打上标记,如果没有球且之前没有打过标记,直接进入下一行(列),最终统计有没有有球而没有标记的格子,如果有,说明不合法,否则合法。 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253#include< 2025-03-30 题解 #题解
CF1481D AB Graph 题解 分类讨论。 【111】当 mmm 是奇数时,构造 $ \text{abababab} \cdots$ 的串即可满足题意,于是直接交替输出 111 和 222 凑足 m+1m+1m+1 个即可。 【222】当 mmm 是偶数时: 【2.12.12.1】存在一个点对,来回字母一样,如下图: 这时显然和【111】相同处理即可。 【2.22.22.2】存在三个点,路径上字母相同,如下图: 这时构造一个 2025-03-19 题解 #题解
CF1487E Cheap Dinner 题解 提供一种简单的线段树写法。 首先,给出朴素的 DP,令 dpi,jdp_{i,j}dpi,j 表示前 iii 种食物,第 iii 种选择了 jjj 的最小花费,显然得出转移: dpi,j=min(j,k) is OKdpi−1,k+ci,jdp_{i,j}=\min\limits_{\text{(j,k)\ is\ OK}}dp_{i-1,k}+c_{i,j} dpi,j=(j,k) is 2025-03-18 题解 #题解
CF1638D Big Brush 题解 正难则反,倒序操作,操作的一定是四个同色格子(或者其中有已经完成操作的点,其他同色),可以从此入手进行 DFS。 遍历每一个点,对其进行 DFS,首先检查是否已经完成处理(被标记为 000)、越界或者不符合条件(有杂颜色),如果没有问题,标记这四个格子(改为 000),对其四周的格子进行搜索,具体的,分别是以下 888 个点: 1234dfs(x-1,y);dfs(x-1,y+1);dfs(x+2 2025-03-06 题解 #题解
CF2062E1 The Game (Easy Version) 题解 如果存在 uuu 不在 vvv 的子树内且 wu>wvw_u>w_vwu>wv,则最大的 vvv 一定是可行的点。 此时,选择了这个点后,对方将无法选出一个点使得消除后剩下的点大于选择的点,因此可行。如果选择不出这样一个点,则无解。 首先想到枚举 vvv,并要求在 O(logn)O(\log n)O(logn) 时间内完成判断。看到这个时间复杂度以及最大值,我想到的是线段树 2025-02-12 题解 #题解
SuperHacker 关于 SuperHacker 当前版本:V1.0 Github Project Link Super Hacker 是一个用于 Codeforces 中同时对多个人进行自动 Hack 的工具,原理是使用类似对拍的方法,随机生成数据后用各个程序运行得出结果,再将程序运行结果进行两两比对,如果不相同,那么其中至少有一个程序被成功 Hack。 Super Hacker 也可以用于对拍,目前虽没有专门 2025-02-10 #项目
树状数组模板 Function Content init() 清空BIT add(pos) 将1~pos位置加1 add(pos,val) 将1~pos位置加val query(pos) 查询pos位置 1234567891011121314151617181920struct BIT{ int t[2000006],tot; void init(){ 2025-02-09 #算法
CF1970D2 Arithmancy (Medium) 题解 Upd:可以使用 AtCoder Lib 打表,可以在几秒内得到结果,详见文章末尾。 打表做法(~可能~不太具有普遍性,但确实可以)~114514114514114514 是一个很好的随机种子~。 首先,做一个非常简单的优化:为了使拼接后的子串种类不重复,可以构造使得其中一种符号远少于另一种,减少打表的次数(我的程序里控制比例为一比十)。 除此之外,其他所有内容都使用了暴力做法,求值函数为 O(n 2025-02-08 题解 #题解
OI模板汇总 上一版的算法名称不能识别到目录,不好找,于是有了这一版本 数学算法 求解GCD 123int gcd(int x,int y) { return y?gcd(y,x%y):x;} 快速幂 1234567891011int qpow(int a,int b,int mod) { int tmp=a,ans=1; while(b){ 2025-02-01 #算法
高中数学笔记-10-解析几何 十、解析几何 1. 直线 直线的倾斜角和斜率 当 lll 与 xxx 轴相交时,xxx 轴正方向与 lll 向上的方向之间所成的角 α\alphaα 称为直线的倾斜角,倾斜角 α\alphaα 满足 0°≤α≤180°0\degree\le\alpha\le180\degree0°≤α≤180°。(任何直线都有倾斜角) 倾斜角 α\alphaα 的正切值叫做这条直线的斜率,常用 kkk 2025-01-25 高中数学 #高中数学