合集-atcoder补题

摘要:题目链接:https://atcoder.jp/contests/abc387/tasks/abc387_d 题意: 从S点出发,返回到G点所需的步数。每次移动的方向有限制,如果上次是上下移动,那么这次就必须是左右移动。开始时可以从上下左右四个方向开始移动 思路: BFS,分情况讨论,即开始是上下移 阅读全文
posted @ 2025-01-08 13:10 Marinaco 阅读(54) 评论(0) 推荐(0)
摘要:题目链接:https://atcoder.jp/contests/abc384/tasks/abc384_e 题意: 粘液能够吸收比他严格小x倍的格子,并获得这个格子的力量(同时格子被粘液填充),让你求粘液能达到的最大力量值。 思路: 优先队列priortiy_queue. 每次挑粘液上下左右四个格 阅读全文
posted @ 2025-01-09 10:41 Marinaco 阅读(38) 评论(0) 推荐(0)
摘要:题目链接: https://atcoder.jp/contests/abc388/tasks/abc388_d 题意: 一共有n个外星人,每当有一个外星人成年后,成年的外星人就要给他一块钱(如果没钱就不给),返回操作后数组 思路: 模拟一下,可以把 数组前面 已经成年的外星人 对下一个刚好要成年的外 阅读全文
posted @ 2025-01-12 10:34 Marinaco 阅读(80) 评论(0) 推荐(0)
摘要:题目链接:https://atcoder.jp/contests/abc388/tasks/abc388_e 题意: 给定一个数组,当数组中一个数的两倍不超过另一个数时,认为这两个数可以组成一对,(组合后这两个数无法再次进行组合),求最大组合数 思路: 如果能条件能满足k对,一定能满足k-1对。同时 阅读全文
posted @ 2025-01-12 11:11 Marinaco 阅读(91) 评论(0) 推荐(0)
摘要:题目链接:https://atcoder.jp/contests/abc389/tasks/abc389_d 题意: 给定一个半径R的圆。假设 一个铺满了1x1正方形的坐标系 该圆的圆心恰好在一个正方形的中心 请你返回该圆 能包括多少个坐标系中的 1x1正方形 思路: 不妨令正方形中心\圆心为原点 阅读全文
posted @ 2025-01-20 17:07 Marinaco 阅读(42) 评论(0) 推荐(0)
摘要:题目链接:https://atcoder.jp/contests/abc395/tasks/abc395_d 题意: 三个操作:1.移动鸽子a到巢穴b 2.交换巢穴a和巢穴b的鸽子 3.查询鸽子a在哪个巢穴中 思路: 开三个数组,分别记录鸽子i的位置,巢穴i的位置,位置i的巢穴 #include<b 阅读全文
posted @ 2025-03-02 09:51 Marinaco 阅读(41) 评论(0) 推荐(0)
摘要:题目链接:https://atcoder.jp/contests/abc396/tasks/abc396_e 题意: 给定x,y,z序列要求构造一个a序列使a[xi]^a[yi]=z[i]对于每个i都成立且a的元素相加尽量小 思路: 将每个xi和yi当作两个结点,在两者间构建无向边,权值为zi 那么 阅读全文
posted @ 2025-03-10 17:07 Marinaco 阅读(97) 评论(0) 推荐(0)
摘要:题目链接:https://atcoder.jp/contests/abc396/tasks/abc396_f 题意: 给定一个序列A,构造m个序列B,其中第i个序列第j个值为Bj= (Aj + i-1) %m 询问每个Bj的逆序对数目 思路: 由于模了m,所以一开始的序列每个元素的大小在[0,m-1 阅读全文
posted @ 2025-03-12 19:20 Marinaco 阅读(62) 评论(0) 推荐(0)
摘要:题目链接:https://atcoder.jp/contests/abc383/tasks/abc383_d 题意: 找出不大于n的具有9个因子的数 思路: 有因数分解定理:x需要满足:x=p1*p1*p2*p2 或者 x=pow(p1,8) 筛出根号n以内的素数,组合得出答案 要注意整数过大溢出 阅读全文
posted @ 2025-03-16 09:39 Marinaco 阅读(23) 评论(0) 推荐(0)
摘要:题目链接:https://atcoder.jp/contests/abc397/tasks/abc397_d 题意: 求出正整数对(x,y)对于给定的n=x*x*x-y*y*y; 思路: 因氏分解,将给定式子转化为(x-y)(x*x+x*y+y*y) 发现这两个因式都为n的因数 不妨令左边一项等于a 阅读全文
posted @ 2025-03-17 20:55 Marinaco 阅读(50) 评论(0) 推荐(0)
摘要:题目链接: 题意: 给定一个无向图,一个序列a和一个序列b,b能够重排,求f(ai,bi)的最小值之和 其中f(ai,bi)代表ai节点到bi节点路径中权重最大的一条边的权值 思路: 最小化权值最大边 => kruskal求最小生成树 即每当两个连通块连通时,两个连通块内的节点到另一个连通块的节点的 阅读全文
posted @ 2025-03-22 10:42 Marinaco 阅读(24) 评论(0) 推荐(0)
摘要:题目链接:https://atcoder.jp/contests/abc398/tasks/abc398_d 题意: (0,0)位置有一个篝火每s产生1个烟,根据风向烟都移动,问在这期间什么时候烟到达(r,c)的位置 思路: byd的怎么每次D都做不出来 把烟看成静止不动的,篝火和人看作移动的物体, 阅读全文
posted @ 2025-03-23 09:17 Marinaco 阅读(26) 评论(0) 推荐(0)
摘要:题目链接:https://atcoder.jp/contests/abc385/tasks/abc385_d 题意: 一个人根据序列不断地走,当他沿路经过某个房子时需要计数,输出最后位置以及经历的房子数 思路: 由于坐标范围给的非常大,所以暴力不行,也就是开二维数组的方式更不行 因此怎么样去表示房子 阅读全文
posted @ 2025-03-27 20:34 Marinaco 阅读(25) 评论(0) 推荐(0)
摘要:题目链接:https://atcoder.jp/contests/abc385/tasks/abc385_e 题意: 若规定两个数x,y 对于一个顶点来说其相邻点的个数为x,而其相邻点的相邻点的个数为y,则称这些节点组成的树为雪花树 现在给定一棵树,试求如何通过删除一些节点使留下的节点组成一颗雪花树 阅读全文
posted @ 2025-03-27 21:18 Marinaco 阅读(23) 评论(0) 推荐(0)
摘要:题目链接:https://atcoder.jp/contests/abc399/tasks/abc399_d 题意: 给定一个序列每个值都是成对出现,问有多少个(a,b)对满足a,a不相邻,b,b不相邻且交换一个a和一个b能使a,a相邻,b,b相邻 思路: 先确定每个数的两个位置,发现满足条件的(a 阅读全文
posted @ 2025-03-30 12:05 Marinaco 阅读(73) 评论(0) 推荐(0)
摘要:题目链接:https://atcoder.jp/contests/abc393/tasks/abc393_f 题意: 给定一个序列,q个询问 每个循环给定一个R和X 请找出在[1,R]序列前缀范围的且最大值不超过X的LIS 思路: 对于所有询问考虑离线查询 规定f[i]为长度为i的LIS的最小结尾值 阅读全文
posted @ 2025-04-02 22:00 Marinaco 阅读(32) 评论(0) 推荐(0)
摘要:题目链接:https://atcoder.jp/contests/abc400/tasks/abc400_c 题意: 定义一个数当其为2^a * b^2为好数 其中a,b>=1 求[1,n]好数的个数(n<=1e18) 思路: 从1~63枚举2的幂次 由于b为偶数时会在下一个幂次再次出现,所以对于每 阅读全文
posted @ 2025-04-07 17:12 Marinaco 阅读(26) 评论(0) 推荐(0)
摘要:题目链接:https://atcoder.jp/contests/abc401/tasks/abc401_d 题意: 给定一个字符串,其中‘?’字符可以替换成'.'或'o'。我们想要这个字符出现k个o,并且每个o都不相邻 每个问号都可以替换的情况下,既可以替换成.也可以替换成o的问号依旧是问号 输出 阅读全文
posted @ 2025-04-15 19:31 Marinaco 阅读(29) 评论(0) 推荐(0)
摘要:题目链接:https://atcoder.jp/contests/abc401/tasks/abc401_e 题意: 给定一个无向图,1为根节点。要求求出当k分别=1,2,3....n时 需要消除点使得1,2,3,..k的节点连通并且使消除的点最少 思路: 并查集+set 对于每一个k节点,与比k小 阅读全文
posted @ 2025-04-15 20:16 Marinaco 阅读(28) 评论(0) 推荐(0)
摘要:题目链接:https://atcoder.jp/contests/abc402/tasks/abc402_d 题意: 圆上有n个点,挑出mx2个点组成m条线段,求这m条线段其中相交个数 思路: 结论:圆上两点a1,b1组成线段平行于另一条线段a2,b2当且仅当(a1+b1)mod n = (a2+b 阅读全文
posted @ 2025-04-24 21:14 Marinaco 阅读(34) 评论(0) 推荐(0)
摘要:题目链接:https://atcoder.jp/contests/abc403/tasks/abc403_d 题意: 给定一些数,要求删去一些数使得任意一个数x都不能存在x+d,x-d 求删除操作最少次数为多少? 思路: 通过桶来记录每个数的出现次数,那么对于起点为[0,d-1]的模序列(即每次+d 阅读全文
posted @ 2025-04-29 18:52 Marinaco 阅读(70) 评论(0) 推荐(0)
摘要:题目链接;https://atcoder.jp/contests/abc404/tasks/abc404_d 题意: n个动物园,每个动物园票价不同,m个动物,给定每个动物分布在动物园的情况 求观看m个动物2次的最小票价 思路: 3^n x m 的搜索 int a[15]; int n,m; vec 阅读全文
posted @ 2025-05-05 19:58 Marinaco 阅读(41) 评论(0) 推荐(0)
摘要:题目链接:https://atcoder.jp/contests/abc404/tasks/abc404_e 题意: 给定n个碗,(除了0碗)碗上有标记,标记数组为c[i] 每个碗里面有a[i]个豆子 每次可以选择一个碗,使得碗里面任意个豆子在i-c[i],i-c[i]+1,....i-1区间内自由 阅读全文
posted @ 2025-05-07 22:31 Marinaco 阅读(30) 评论(0) 推荐(0)
摘要:题目链接:https://atcoder.jp/contests/abc405/tasks/abc405_e 题意: 有A个a,B个b,C个c,D个d,其中a要放在c和d的前面,b要放在d的前面,求方案数 思路: 枚举第一个d的位置i,那么a和b一定在d前面的位置,c在d前面的位置的数量为第一个d的 阅读全文
posted @ 2025-05-12 17:13 Marinaco 阅读(26) 评论(0) 推荐(1)
摘要:题目链接:https://atcoder.jp/contests/abc405/tasks/abc405_f 题意: 在一个圆上有2N个点,给定一系列序偶(皆为偶数)作为线段的左右端点并在图上连接 有q次查询,每次查询给出一条线段的左端点和右端点(皆为奇数) 求查询线段和已经连接的线段的交点个数 思 阅读全文
posted @ 2025-05-12 20:01 Marinaco 阅读(29) 评论(0) 推荐(1)
摘要:题目链接:https://atcoder.jp/contests/abc406/tasks/abc406_d 题意: 爆二维矩阵的操作题,用map<int,set>r,c;存 int h,w,n; int a[maxn]; int b[maxn]; map<int,set<int>>r,c; voi 阅读全文
posted @ 2025-05-17 21:49 Marinaco 阅读(28) 评论(0) 推荐(0)
摘要:题目链接:https://atcoder.jp/contests/abc406/tasks/abc406_c 题意: 给定一个排列,求满足条件 1.长度至少为4 2.只有一个波峰 3.只有一个波谷 4.开头两个数递增 的子数组数量 思路: 看出子数组前面一段是波峰,后面一段是波谷,然后还可以添加从波 阅读全文
posted @ 2025-05-19 09:33 Marinaco 阅读(25) 评论(0) 推荐(0)
摘要:题目链接:https://atcoder.jp/contests/abc406/tasks/abc406_e 题意: 给定n和k,求[1,n]范围内的数字二进制位1的个数恰好为k的总和 思路: 数位dp 需要记录方案数以及数字和 根据乘法原理,每个位置1对答案的贡献为 该位置的权值(2^(i-1)) 阅读全文
posted @ 2025-05-20 12:38 Marinaco 阅读(22) 评论(0) 推荐(0)
摘要:ABC300-F 题意: 给定m个由n个相同串s拼接成的ox串,允许删除k个x,求最长的连续o 思路: 显然需要删除连续的x,观察得到答案为一段s的后缀+若干个s+一段s的前缀 枚举前缀,知道整块的信息,通过二分求出后缀。在这过程中取max即可 值得注意的是这样做的前提是ox串足够长来构造出这种形式 阅读全文
posted @ 2025-05-27 18:07 Marinaco 阅读(21) 评论(0) 推荐(0)
摘要:A 略 B 题意: 给定一个n,让它区间为长度-3的后缀区间的位全部变为0 思路: 把数字看成字符串读入,然后模拟 void solve(){ string s;cin>>s; int len=s.size(); int k=len-3; s=" "+s; if(k>0){ for(int i=le 阅读全文
posted @ 2025-06-04 22:23 Marinaco 阅读(9) 评论(0) 推荐(0)
摘要:A 思路: 比较100以内5的倍数与给定数的差值,绝对值最小的即为答案 B 题意: 给定一些点的位置,求给定两点的距离 思路: 开个map模拟即可 C 题意: 给定一个.矩阵,其中有一个由#构成的长方形 该长方形缺了一个点,即该处为.,求该点的位置 思路: 观察发现其他.上下左右至多只有一处和#接触 阅读全文
posted @ 2025-06-05 15:20 Marinaco 阅读(22) 评论(0) 推荐(0)
摘要:A 略 B 题意: 给定一个01序列,如果是1,答案加上以它下标为次数,2为底数的值 思路: 需要注意long long最大值为2^63 -1,也就是说如果遇到2^63就歇菜了 考虑用ull,或者__int128存储 其中__int128无法用标准的输入和输出,但是可以正常的运算 C 模拟即可,用p 阅读全文
posted @ 2025-06-05 22:27 Marinaco 阅读(19) 评论(0) 推荐(0)
摘要:真是越来越菜了,牛客已经掉到蓝了(悲 6.7/21:57:喜报,ABC终于能自己A5题了,虽然好像这场前五题比之前简单 C 题意:略 思路: 666,p=1时,只有第一位为1,其余位都是0 void solve(){ int d,p;cin>>d>>p; int k; int td=d,tp=p; 阅读全文
posted @ 2025-06-07 10:39 Marinaco 阅读(30) 评论(0) 推荐(0)
摘要:A 略 B 题意:给一个数B,询问A^A=B的A为多少 思路:快速幂暴力即可 ll ksm(ll a,ll b){ ll res=1; while(b){ if(b&1)res=res*a; a=a*a; b>>=1; } return res; } // void solve(){ ll b;ci 阅读全文
posted @ 2025-06-09 17:31 Marinaco 阅读(25) 评论(0) 推荐(0)
摘要:A 略 B 用set模拟即可 int cal(int x,int y){ set<int>st; set<int>st2; while(x){ st.insert(x%10);x/=10; } while(y){ st2.insert(y%10);y/=10; } if(st==st2&&st.si 阅读全文
posted @ 2025-06-10 19:00 Marinaco 阅读(42) 评论(0) 推荐(0)
摘要:A 略 B 排序后遍历一下即可 C void solve(){ int n;cin>>n; string s;cin>>s;s=" "+s; vector<int>cnt(26); vector<int>a(26); rep(i,1,n){ int k=s[i]-'a'; a[k]++; if(i> 阅读全文
posted @ 2025-06-11 16:48 Marinaco 阅读(10) 评论(0) 推荐(0)
摘要:A 略 B 桶 C 模拟 void solve(){ int n;cin>>n; vector<int>p(n+1); vector<int>q(n+1); vector<int>a(n+1); rep(i,1,n)cin>>p[i]; rep(i,1,n){ cin>>q[i]; a[q[i]]= 阅读全文
posted @ 2025-06-12 22:26 Marinaco 阅读(30) 评论(0) 推荐(0)
摘要:题意: 初始HP=H,MP=M,n个怪物,每消灭一个怪物需要消耗Ai个HP,或Bi个MP,求最多能消灭多少个怪物? 思路: 好像是个很典的DP,但是我连这场的D都没开出来(悲 设f[i][j]为到第i个怪物,HP=j时MP的最大值 显然有两种转移方式,外层从1n枚举,内层从0h枚举 答案仅需看f[i 阅读全文
posted @ 2025-06-16 20:29 Marinaco 阅读(65) 评论(0) 推荐(0)
摘要:D 题意: 操作1:种花 操作2:等待k天,已经种下的花长了k cm 操作3:将所有高度大于等于H的花收割,输出收割花的个数 思路: 队列,将先种的花以及种下的天数塞进队列,查询时当差值当前DAY-花种下的时间大于等于H出队并统计 void solve(){ int q;cin>>q; priori 阅读全文
posted @ 2025-06-17 20:44 Marinaco 阅读(38) 评论(0) 推荐(0)
摘要:题意: 初始颜色数组ai=i,两种操作 操作1:将x位置即其左右与他颜色相同的格子都涂为c 操作2:输出颜色c有多少个格子 思路: 珂朵莉树,每次维护修改x的区间后左右两个区间是否颜色相同,如果相同则变为同一个 struct node{ int l,r; mutable int val; bool 阅读全文
posted @ 2025-06-18 22:20 Marinaco 阅读(24) 评论(0) 推荐(0)
摘要:D 题意: 搜索长度为k的不同的路径 const int dx[]={1,-1,0,0}; const int dy[]={0,0,1,-1}; int n,m,k; char g[20][20]; int vis[20][20]; int ans=0; int res=0; int dfs(int 阅读全文
posted @ 2025-06-19 22:04 Marinaco 阅读(13) 评论(0) 推荐(0)
摘要:题意: 给定一个序列A,q次操作 每次操作给定 下标i和x 使得a[i]=x 求每次操作后序列的mex 思路: 不维护序列中已经存在的数字,反而维护不存在的数字 因为n为3e5范围 所以mex最多为n 用set维护不在序列中的数字,map进行操作 void solve(){ int n,q;cin> 阅读全文
posted @ 2025-06-25 18:32 Marinaco 阅读(15) 评论(0) 推荐(0)
摘要:A void solve(){ int n;cin>>n; int l,r;cin>>l>>r; string s;cin>>s; s=" "+s; for(int i=l;i<=r;i++){ if(s[i]=='x'){ cout<<"No"<<endl; return; } } cout<<" 阅读全文
posted @ 2025-07-26 22:39 Marinaco 阅读(38) 评论(0) 推荐(1)
摘要:下午马蹄杯被吊打了:( 这场DE难度感觉偏简单,好像G过的比F多 A 题意:给定2个小于等于12的整数x,y,求x+y是星期几 思路:不知道为啥取模WA了,直接加完之后判断一下减12就好了 void solve(){ int x,y;cin>>x>>y; x+=y; if(x>12){ cout<< 阅读全文
posted @ 2025-08-24 22:35 Marinaco 阅读(16) 评论(0) 推荐(0)
摘要:C 思路:容斥原理 开桶统计元素个数 求$ A_i,A_j,A_k (i \lt j \lt k)$ 其中两个相等的元组数量: 若\(A_i\)有\(k\)个 \(A_i\)和其他一个相等:\(ans = (k-1) \times (n-i-(k-1))\) 其他两个相等:先算出所有两两相等的元组个 阅读全文
posted @ 2025-10-25 22:01 Marinaco 阅读(41) 评论(0) 推荐(0)
摘要:[https://atcoder.jp/contests/abc428/tasks/abc428_e](树的直径性质) 题意:给定一棵树,求出每个结点距离它最远且标号最大的结点 思路:距离每个结点最远的一定是一条直径的端点,而树的直径大小固定,端点不固定。找到两个端点标号最大的直径,每次比较距离即可 阅读全文
posted @ 2025-11-06 21:39 Marinaco 阅读(10) 评论(0) 推荐(0)
摘要:[https://atcoder.jp/contests/abc400/tasks/abc400_e](埃氏筛法+二分) 题意: 给定\(q\)次查询,每次查询给出一个数\(n\),求最大的小于等于\(n\)的400数 400数:只有两个质因数,质因数次方为偶 思路: 400是两个质因数的平方数 这 阅读全文
posted @ 2025-11-10 12:43 Marinaco 阅读(8) 评论(0) 推荐(0)
摘要:[https://atcoder.jp/contests/abc418/tasks/abc418_e](数学+容斥) 题意: 给定\(N\)个点的坐标,求能组成多少个梯形 思路: 任意两个直线,若斜率相等,可组成梯形 斜率用分数类计算避免精度丢失以及不存在等情况 这样计算会使得平行四边形(也是梯形) 阅读全文
posted @ 2025-11-11 11:37 Marinaco 阅读(9) 评论(0) 推荐(0)
摘要:[https://atcoder.jp/contests/abc412/tasks/abc412_e](素数筛法+枚举) 题意: 设\(A_i\)为\(1,2,3..i\)的\(lcm\),求\(A_l,A_{l+1}....A_R\) (\(L,R \leq 1e14\)) 的不同数个数 思路: 阅读全文
posted @ 2025-11-12 16:36 Marinaco 阅读(9) 评论(0) 推荐(0)
摘要:[https://atcoder.jp/contests/abc394/tasks/abc394_e](图论+回文性质+最短路dj) 题意: 略 思路: 回文序列两边同时再加一个相同的字符依然是一个回文序列 因此将所有路径长度为1的和长度为2的回文路径压入优先队列 每次扩展:可到达u的u1和v可到达 阅读全文
posted @ 2025-11-13 14:35 Marinaco 阅读(11) 评论(0) 推荐(0)

//雪花飘落效果