- 2024-11-18CF715B Complete The Graph 题解
Description给\(n\)点\(m\)边的无向图,\(L\),\(s\),\(t\)。修改\(m\)条边中边为\(0\)的边,使满足\(s,t\)的最短路长度是\(L\),且输出答案的时候边为\(0\)的边的权值必须在\([1,10^{18}]\)内。Solution考虑怎么判有无解。容易发现将所有未知边边权设为\(10^{18}\),
- 2024-11-15[CEOI2023] Tricks of the Trade 题解
Description有\(n\)个机器人排成一排,第\(i\)个机器人的购买价是\(a_i\)欧元,卖出价是\(b_i\)欧元。给定\(1\lek\len\),你需要购买一段长度至少为\(k\)的区间中所有的机器人,然后选择其中的恰好\(k\)个机器人来卖出。你需要求出:你能够得到的最大收益;在收益最大化
- 2024-10-30P7408 [JOI 2021 Final] 地牢 3 题解
Description有一个\(N+1\)层的地牢,在地牢里有\(M\)个玩家。地牢的每层从入口开始,用\(1\)到\(N+1\)的整数编号。玩家从\(1\)到\(M\)标号。玩家使用能量从一层移动到下一层。玩家从第\(i\(1\lei\leN)\)层移动到第\(i+1\)层所用的能量为\(A_i\)。因为这是一个
- 2024-10-29[ARC186E] Missing Subsequence 题解
Description给定一个整数序列\(\left(X_1,\ldots,X_M\right)\),其长度为\(M\),元素取值为\(1,\ldots,K\)。要求找出长度为\(N\)的序列\((A_1,\ldots,A_N)\)的数量,元素取值为\(1,\ldots,K\),并满足以下条件,结果取模\(998244353\):在所有长度为\(M\)的序列中,唯
- 2024-10-242024/10/24 模拟赛总结
\(100+60+60+40=260\),这种信心赛没AK我真的要退役了#A.长方体喜欢写线段树和ST表的小朋友们你们好呀,我是前后缀\(\min/\max\)奥特曼对于\(n\)个长方体的交,显然就是最靠右的左面、最靠左的右面、最靠上的下面……组成的长方体枚举一个不存在的长方体接下来考虑容斥,对
- 2024-10-232024/10/23 模拟赛总结
\(100+55+30+0=185\),T4没有-1唐完了#A.GCD把\(1\sim50\)的\(f\)打表输出,可以找到规律:若\(x\)为\(p^k(k\in\mathbb{N}^+,p\in\mathcal{P})\),则\(f(x)=p\),否则\(f(x)=1\)于是可以筛出所有质数并枚举指数//BLuemoon_#include<bits/stdc++.h>usingnamespaces
- 2024-10-212024/10/21 模拟赛总结
\(100+50+0+5=155\),T3三目没打括号太爽了#A.串串串基本上就是前缀异或和板子交换两个\(0,1\)不会改变奇偶性,所以可以直接疑惑判断//BLuemoon_#include<bits/stdc++.h>usingnamespacestd;constintkMaxN=2e5+5;intn,m,q,l1,r1,l2,r2,f[kMaxN],g[k
- 2024-10-212024/10/20 模拟赛总结
\(0+0+0+0=0\),没考#A.袜子分配直接大眼找规律,得到\(n\)双袜子期望为\(\frac{n}{2n-1}\)//BLuemoon_#include<bits/stdc++.h>usingnamespacestd;usingDB=longdouble;DBn;intmain(){freopen("socks.in","r",stdin),freopen("
- 2024-10-18秘制小模板
最小生成树PrimCode#include<iostream>#include<queue>usingnamespacestd;constintkMaxN=1e5+1;intn,m;vector<pair<int,int>>g[kMaxN];structNode{intu,w;Node(inta,intb){u=a,w=b;}friendbo
- 2024-10-172024/10/17 模拟赛总结
\(100+50+0+35=185\),呃呃呃,终于吃上LRX了#A.语言考虑名词性词组的性质,由于它可以由任意名词,形容词和名词性词组拼接起来,那么连续的名词,形容词或交替出现都是可行的但是如果最后一个是形容词不可行,不然它就无法修饰其他词语了于是可以枚举那一个单独的动词,判断前面和后面知
- 2024-10-162024/10/16 模拟赛总结
\(30+0+40+40=100\),T4没看到输入不按顺序痛失\(35\)pts#A.最终测试很少见到不要dp的期望了直接枚举每一个人的四种情况,二分查找有多少种情况有多少人分比他高,最后除以\(16\)即可\(16\)是两个人的所有情况,即\(4\times4\)//BLuemoon_#include<bits/stdc++.h>
- 2024-10-152024-10-10 模拟赛总结
\(100+100+0+20=220\),部分分还是没有拿满。比赛链接:http://172.45.35.5/d/HEIGETWO/homework/6707886f6735d3863dc8c0ef或http://yl503.yali.edu.cn/d/HEIGETWO/homework/6707886f6735d3863dc8c0efA-植物收集/collect题意:你要收集\(n\)个阶段的植物,你可以选择花费\(a
- 2024-10-142024/10/14 模拟赛总结
\(0+100+40+0=140\),怎么都会T3啊#A.char令\(dp_{i,j}\)为已经考虑了文本串前\(i\)位且将所有*填入了字符,匹配了模式串的前\(j\)位的方案总数转移显然,若第\(i\)位不是*,则只有这一位和模式串相等才会有答案,即\(dp_{i,j}=\begin{cases}dp_{i-1,j-1}&s_i=t_k\\0&
- 2024-10-142024/10/13 模拟赛总结
人机体检,\(0+0+0+0=0\),打代码源去了#A.一般图最小匹配下次看到这种范围一定要想到dp啊,令\(dp_{i,j}\)为前\(i\)个元素选了\(j\)对点的最小代价由于边权是绝对值,可以对原数组排一遍序,选取的两个点就一定在排序后数组的相邻节点那么就可以得出式子:\(dp_{i,j}=\min\{dp_
- 2024-10-1210.7总结
T1#include<fstream>usingnamespacestd;usingll=longlong;usingull=unsignedlonglong;usingi128=__int128;constllkMaxN=3e7+5;ifstreamcin("A.in");ofstreamcout("A.out");lln,A,B,C,u[kMaxN],v[kMaxN]
- 2024-10-1210.3 总结
T1每一个数列有\(m\)种变式,而总共有\(m^n\)个数列,所以答案是\(m^{n-1}\),赛事AC了#include<fstream>usingnamespacestd;usingll=longlong;constllkMod=1e9+7;ifstreamcin("sum.in");ofstreamcout("sum.out");llt,n,m;llfpo
- 2024-10-1210.9 总结
T1还行,考场AC了。主要思路就是从第一列开始,对于上一列每一个一样的数的区间进行排序,最后检验一下就行了,注意对应的问题。#include<algorithm>#include<fstream>#include<vector>usingnamespacestd;constintkMaxN=305;ifstreamcin("exchange.in");ofstreamc
- 2024-10-11ABC183
[ABC183A]ReLU答案即\(\max(0,n)\)//BLuemoon_#include<bits/stdc++.h>usingnamespacestd;intn;intmain(){cin>>n;cout<<max(0,n)<<'\n';return0;}[ABC183B]Billiards感觉比E+F难,类似于光的反射,入射角等于反射角
- 2024-10-112024/10/10 模拟赛总结
\(0+45+20+25=90\),T1暴力写挂唐完了#A.植物收集显然催熟次数一定小于\(n\),否则不会更优。对于催熟次数\(k\)确定时,每个种子能形成的其他种子一定如下图:那么这就变成了一个滑动窗口板子。由于当催熟次数\(k\)递增时,催熟的价格线性递增,买种子的价格单调不增,且减量单调递
- 2024-10-1110.10 总结
T1美丽的子区间还行吧,根据大眼观察法可以看出当\(x\)为使用科技的次数时,函数\(f(x)\)等于使用\(x\)次科技的最小答案是一个单谷函数,可以三分,注意到使用\(x\)次科技的时候的第\(i\)个数的答案是\(\min\limits_{j=\min(1,i-x+1)}^{i}\)。而且还要加上一个小贪心:把最
- 2024-10-092024/10/09 模拟赛总结
\(100+40+20+8=168\),拿到了大众分,至少没挂分吧#A.矩阵交换一个\(m\)维偏序,可以使用\(m-1\)维树状数组解决以第\(i\)作为第\(i\)关键字,进行排序,这样一定最优。排完之后直接判断是否满足条件即可//BLuemoon_#include<bits/stdc++.h>usingnamespacestd;consti
- 2024-10-09[AGC064D] Red and Blue Chips 题解
Description你有\(N\)个字符串,初始情况下每个字符串只有一个字符,是\(\texttt{R}\)或\(\texttt{B}\),保证第\(N\)个字符串是\(\texttt{B}\)。你需要对每个\(i=1,2,\cdots,n-1\)执行以下操作:选择一个整数\(j\)使得\(i<j\len\),且第\(j\)个字符串的最后一个字符
- 2024-10-08[AGC061C] First Come First Serve 题解
Description有\(n\)个人来过,第\(i\)个人在\(a_i\)时刻来在\(b_i\)时刻走,每个人可以在来时或走时登记,问可能的登记顺序有多少种。\(n\leq5\times10^5\),\(a_i,b_i\)互不相同,\(\foralli<n,a_i<a_{i+1},b_{i}<b_{i+1}\)。Solution首先如果每个人随便选,有\(2^n\)种方
- 2024-10-072024/10/07 模拟赛总结
\(20+55+25+0=100\),压线拿到小饼干!#A.A可以发现\(u_i=A,v_i=B,w_i=C\)至少有一个成立,将这些点抽象到三位空间中。则原长方体一定被一个从\((1,1,1)\)出发的长方体打穿,但是似乎重叠部分比较难实现对于从底打到顶的长方体,可以用后缀\(\max\)解决,然后原长方体就变成了阶梯
- 2024-10-032024/10/03
\(100+20+0+55=175\),T4数组开小挂了\(45\),T3暴力写挂挂了\(20\)#A.旋律的总数这真的是提高组的题吗不考虑同构有\(m^n\)种排法,一种同构的排法可以偏移\(m\)次,直接相除得到答案\(m^{n-1}\)//BLuemoon_#include<bits/stdc++.h>usingnamespacestd;usingLL=l