- 2025-01-09Atcoder ABC329E Stamp 题解 [ 绿 ] [ 线性 dp ]
Stamp:难点主要在dp转移的细节与分讨上,但通过改变状态设计可以大大简化分讨细节的题。观察首先要有一个观察:只要某一个前缀能被覆盖出来,那么无论它后面多出来多少,后面的字符串都可以帮他重新覆盖回去。这也就是dp为啥没有后效性的原因。除此之外,还要注意一个字符串不仅能在
- 2025-01-09VP AtCoder Beginner Contest 387
A-HappyNewYear2025按题意输出即可。点击查看代码voidsolve(){inta,b;std::cin>>a>>b;std::cout<<(a+b)*(a+b)<<"\n";}B-9x9Sum直接遍历累加满足不等于x的数即可,注意这个九九乘法表是9*9的矩阵,不是我们学的下三角。点击查看
- 2025-01-06AtCoder备赛刷题 ABC 361 | x = a^b
学习C++从娃娃抓起!记录下AtCoder(日本算法竞技网站)备赛学习过程中的题目,记录每一个瞬间。附上汇总贴:AtCoder备赛刷题|汇总【ProblemStatement】Howmanyintegersxx
- 2025-01-06AtCoder备赛刷题 ABC 361 | Go Territory
学习C++从娃娃抓起!记录下AtCoder(日本算法竞技网站)备赛学习过程中的题目,记录每一个瞬间。附上汇总贴:AtCoder备赛刷题|汇总【ProblemStatement】ThereareNNNston
- 2025-01-05atcoder 杂题 #05
atcoder杂题#05abc340_gLeafColorabc340_fF-S=1abc361_gGoTerritoryabc386_fOperateKabc340_g独立想出了这道题。如果我们确定了子图的叶子,那么这个子图就确定了。又由于叶子的颜色要相同,所以每种颜色的贡献是互相独立的。首先如果一种颜色有\(x\)个点,那
- 2025-01-052025 AtCoder 周寄
目录前言\(\text{\color{#0000FF}ABC387\color{black}perf\color{#00C0C0}1398}\)前言赛时总结展望前言2024拜拜了。回首整个2024的OI历程,自己一直在摆烂。8月份的暑假基本没碰过OI,10月底的CSP-J255pts遗憾2=,11月底的NOIP连T3暴力都没来得及打,年底五中请lx
- 2025-01-04AtCoder Beginner Contest 387 赛后复盘
省流:A,B,C,D,FA-B模拟即可。C数位dp。首先我们先将问题转换为\([1,R]\)中蛇数的个数减去\([1,L-1]\)中蛇数的个数。设\(num_i\)为数字的第\(i\)位(从左往右数)。我们设\(f_{dep,mx,lim,ze}\)表示当前第\(dep\)位,首位为\(mx\),有没有达到上限,有没有前导零。那么
- 2025-01-04AtCoder Regular Contest 065
\(AT\_arc065\_a\)https://www.luogu.com.cn/problem/solution/AT_arc065_a题解:在读到\(d\)或\(e\)时判断是不是\(dream,dreamer,erase,eraser\)即可。注意\(dreamer\)和\(erase,eraser\)有重叠,于是在\(d\)时要特判,具体见代码。#include<bits/stdc++.h>usingnamespacestd
- 2025-01-03AtCoder Beginner Contest 386 补题
E-MaximizeXOR题目大意给出\(n\)个数,要选\(k\)个使异或和最大。\(n\leq2\times10^5,k\leqn\)\(C_n^k\leq10^6\)思路由于那个组合数的性质,发现应该是直接深搜就可以的。可是发现T了。发现如果\(k\)很大那么还是不好处理。但是发现搜\(k\)个数和搜\(n-k\)个
- 2025-01-02关于此题E - Maximize XOR(Atcoder ABC 386)搜索技巧的一些总结
传送门题目要求n个数中选k个数异或起来最大,我们想到字典树中最大异或和这一经典问题,但是很明显字典树只能解决任选两个数的最大异或,而此题是任选k个,那我们走投无路只能考虑爆搜。首先可以很容易写出一个暴力的搜索:voiddfs1(longlongpos,longlongsum,longlongkk){i
- 2024-12-31AtCoder Beginner Contest 386(补题)
AtCoderBeginnerContest386C-Operate1https://atcoder.jp/contests/abc386/tasks/abc386_c思路简单的条件判断题代码#include<bits/stdc++.h>typedefstd::pair<int,int>pii;#defineINF0x3f3f3f3f#defineMOD998244353usingi64=longlong;cons
- 2024-12-31atcoder ABC385 部分题解
G-CountingBuildings简要题义一个排列的\(L(P)\)为\(\sum_{i=1}^n[premax(i)=P_i]\),即前缀最大值为自身的位置数,\(R(P)\)同理为后缀最大值。有多少个排列使得\(L(P)-R(P)=k\)题解假设\(n,k\)是同阶的。我们从\(n\)到\(1\)依次插入数,考虑朴素的DP:设\(f_{i,k
- 2024-12-30AtCoder Beginner Contest 386 赛后总结
赛时A-D。菜。A-C模拟即可。D先检查一下竖着的一列有没有出现:白黑或者黑白黑的情况。有的话一定不行。因为每个白点的右下角一定都得是白的,就相当于对下面的行数取后缀最小值,这个可以使用差分实现。点击查看代码#include<bits/stdc++.h>#definelllonglong#def
- 2024-12-29[题解](更新中)AtCoder Beginner Contest 386(ABC386) A~E
A-FullHouse2容易发现,答案为Yes\(\iff\)输入中恰好出现了\(2\)种不同的数,可以用set等数据结构来计算不同元素的个数。点击查看代码#include<bits/stdc++.h>usingnamespacestd;set<int>se;signedmain(){ for(inti=1,a;i<=4;i++){ cin>>a; se.insert(a); } c
- 2024-12-28AtCoder DP Contest(刷题记录)
A-Frog1题意:给定\(n\)个石头,第\(i\)个石头的高度为\(h_i\).现在要求小青蛙从\(1\)号石头跳到\(n\)号石头,每次小青蛙可以选择从\(i\)号石头跳到\(i+1\)或\(i+2\)号石头,代价是起跳点与落点的高度差的绝对值。询问你最小代价。解法:\(dp[i]\)表示小青蛙跳到第号石头时的最小代
- 2024-12-25AtCoder Regular Contests
\[\begin{matrix}\color{#d9d9d9}\blacksquare\color{#D9C5B2}\blacksquare\color{#B2D9B2}\blacksquare\color{#B2ECEC}\blacksquare\color{#B2B2FF}\blacksquare\color{#ECECB2}\blacksquare\color{#FFD9B2}\blacksquare\color{#FFB2B2}\blacksqu
- 2024-12-25Atcoder_cf17_final_j Tree MST
这是我的第一道黑题!言归正传,题意是,给定一棵\(n\)个节点的树,现有有一张完全图,两点\(x\),\(y\)之间的边长为\(w_x+w_y+dis_{x,y}\),其中\(dis_{x,y}\)表示\(x\)和\(y\)在树上的距离,求完全图的最小生成树。常规的求最小生成树的算法有\(kruskal\)、\(prim\)。但是这里这
- 2024-12-21AtCoder Beginner Contest 385 Solution
A-Equally(abc385A)题目大意给定三个数,问能不能分成两个以上的组,使其和相同。解题思路两个以上的组要么是两组要么是三组,三组就是三个数都相等,两组就是两个小的加起来等于大的。代码voidsolve(){inta[10];cin>>a[0]>>a[1]>>a[2];sort(a,a+3)
- 2024-12-21Toyota Programming Contest 2024#12(AtCoder Beginner Contest 384)D题
D-RepeatedSequence 思路:先存储数组的前缀和,把周期的和剪掉,这样就只需要查找在一个周期是否满足,枚举1-n,毕竟不确定周期是从哪开始的,对于从当前数为起始的周期,当剩余的数res小于从当前i为起点的i后缀和时,我们只需要查找一个R 满足b[r]-b[i-1]区间和等于res,若最后查
- 2024-12-20Solution - Atcoder ARC189E Straight Path
首先发现的是\(n=2,3\)必定无解。接下来考虑\(n\ge4\)的情况。首先手玩一下小数据\(n=4\)。因为此时对应的图为一个带对角线的正方形,于是可以从对称的角度入手,得到\(\max=3\)的解:\(\begin{matrix}1&{\color{red}{-}}&2\\{\color{blue}{|}}&{\color{gree
- 2024-12-19atcoder 杂题 #04
atcoder杂题#04abc126_fXORMatchingarc081_dFlipandRectanglesarc080_cYoungMaidsabc383_gBarCoverabc126_f挺有意思的一道题,让我猜到结论了。由于长度是值域的两倍,所以不难想到每个数出现两次,不然发现对于\(a_i=a_j=a_k\)的三个数,当\(a_i\oplus\cdots\op
- 2024-12-17AtCoder DP Practice
众所周知,AtCoder有一场极educational的DPContest。A裸的线性DP,设\(dp_i\)表示跳到第\(i\)个格子的最小费用,显然有转移:\[dp_{i}=\min(dp_{i-1}+|h_i-h_{i-1}|,dp_{i-2}+|h_i-h_{i-2}|)\]边界为\(dp_1=0,dp_2=|h_2-h_1|\)。B裸的线性DP
- 2024-12-15[题解]AtCoder Beginner Contest 383(ABC383) A~F
A-aaaadaa按题意模拟即可。点击查看代码#include<bits/stdc++.h>usingnamespacestd;intn;charc1,c2;strings;signedmain(){ cin>>n>>c1>>c2>>s; for(inti:s){ if(i==c1)cout<<c1; elsecout<<c2; } return0;}B-
- 2024-12-15AtCoder Beginner Contest 384 Solution
A-aaaadaa(abc384A)题目大意给个长度为n的字符串,以及两个字母a和b,要求把字符串中不是a的字符全部都变成b。解题思路一个循环判断一下就行了。代码#include<bits/stdc++.h>usingnamespacestd;intmain(){intn;chara,b;cin>>n>>a>>b;st
- 2024-12-14AtCoder Beginner Contest 383
省流版A.模拟加水漏水即可B.枚举两个加湿器的位置,然后统计加湿的单元格数量即可C.从每个加湿器进行\(BFS\)即可D.考虑因子个数的计算,分情况枚举质因数即可E.考虑\(f\)函数的求法,从小到大加边,考虑每条边对答案的贡献即可F.对颜色排序,在\(01\)背包的基础上,新增一个