![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
补题
MisluNotFound
作者为了不让网页显示“这个作者很懒,什么都没留下…”这句话于是留下了这句话。
展开
-
7.26补题
开始想到用kmp但是没有坚定的做。相同的话两个图应完全重合。将角度求出来之后以任意一个角做起点都应该能重合,所以将一个图的角度记录两次,用另一个比较即可。阶乘用质数乘积表示。比较给出的两个钟表指针是否相同。求给出的卡特兰数第n+1项。.........原创 2022-07-27 08:32:25 · 106 阅读 · 1 评论 -
7.23 补题
假设两组数的gcd分别为x,y。第一组数一定会放到不同的盒子中,并且这两个数的因数一定是各自盒子中所有数的因数。假设因数数量分别为na,nb。所以最后的x和y一定在na*nb种选择种。枚举每种选择,再所有数中判断是否都能被整除。最后维护最大值即可。n组数,每组包含a[i],b[i],每组将两个数放到不同的盒a,b中问a中和b中所有数的最大公约数的最小共倍数。......原创 2022-07-23 21:20:34 · 131 阅读 · 0 评论 -
7.21 补题
最短路,要经过f个点,且f很小,那么用floyd更新一遍任意点直接的最短路之后,f个点全排列所有经过顺序,每次dfs一遍记录最小值即可。t组输入,每组n个坐标i,j,k代表一个矩形的左下(i,0)和右上(j,k)点,计算最后组成的图形的面积。t组数据,每组n个地点,m条边,f个朋友。你必须经过f个点之后到达点n,经过顺序无关,问最短距离。将每个小矩形的每个点都标记一下就行了,最后数一下。刚开始还想着怎么计算💧💧。...原创 2022-07-21 20:09:54 · 169 阅读 · 0 评论 -
7.19 补题
亏损与x有关,问题是如何找x。可以暴力每个a[i],以a[i]/2为x,计算每次综合找最小即可。所以用到前缀和,排序之后每次暴力的时候总值其实为sum[n]-sum[i]-(n-i-i)*x。n天每天亏损a[i],买保险之后将补偿min(a[i],2*x),x为任意值,使得总亏损a[i]+x-min(a[i],2*x)的期望最小。我们只记录质因数也是可以的。将每个数的因数记录下来,因数的倍数记录下来,m内剩余的数就是答案。n个数从1~m内找到gcd(a[i],k)=1的k。............原创 2022-07-19 11:15:01 · 111 阅读 · 0 评论 -
cf 补题
gcd(i,a[i])唯一很容易想到a[i]是i的倍数即可,开始想的从l到r中挨个找符合条件即可。但是这样可能会漏掉,因为gcd唯一而l到r中的数可以多次使用。所以我们从1~n遍历每个i如果l%i==0则l为答案,否则答案为l+(i-l%i)。不选取无事发生,输出n个数,对于第i个数如果选取答案这一位为1,否则为0。从l到r中找到n个数,使得gcd(i,a[i])唯一或不存在这样的序列。长度为n的序列和初始值iq,对于每个数,如果要选取。2.如果a[i]>iqiq--......原创 2022-07-19 09:15:38 · 77 阅读 · 0 评论 -
7.16补题
按序号给出n个城市名称,再给出m条关系给出两个城市序号,城市之间的距离由两个城市的名称的相同字母数决定(不分大小写,每个字母最多算一次)。最后给出两个城市编号输出这两个城市之间的最短路径长度。单调栈,从右往左遍历即可。每次将小于当前数的元素出栈。因为栈顶元素在原序列中在当前数的右边,此时不可能作为其他数的第一个最大值。对前向星建图不太熟悉,数组大小开的不合适一直错。对于无向图应该开边数的两倍。记录两城市名称中出现过哪些字母即可。输出序列中每个数右边第一个比自身大的数,没有输出-1。......原创 2022-07-16 22:34:23 · 144 阅读 · 0 评论 -
cf 补题
n个字符串,判断每个字符串是否能由其他字符串组成(可以两个相同的),可以输出1,不可以输出0。暴力的话如果遍历每个字符串并搜索是否能由两个字符串组成,时间复杂度是O(n^3) (不知道理解的对不对)。如果换一种方式搜索,将出现过的字符串记录用map记录下来,从头到尾遍历字符串,看将其分成两部分 s[0~j] s[j~size-1]是否出现过。这样复杂度是 O(l n longn)。Mirror Grid题意给出一个数字矩阵,可以将其中的1变0,0变1。判断使其旋转90,180,270形状一直不原创 2022-07-13 16:13:09 · 161 阅读 · 0 评论 -
7.13补题
Five Transportations题意N个人从1去6号城市,每个城市之间的运输工具最多运A,B,C,D,E个人,每次一分钟,问所有人到6号所需的最短时间。可以想到如果ABCDE均大于N那么时间就是5,所以只需要找哪个数最小,最小的对于整个时间影响最大。...原创 2022-07-13 09:20:06 · 60 阅读 · 0 评论 -
单调队列/栈
引入:有这样一个问题,给出一组数据,然你找到每个数比他小的第一个数,该怎么实现。最直接的方法是暴力,从当前位置i开始往前寻找如果a[i]>a[j]则停止。但这种方法复杂度是很高的,稍微思考一下,如果某个数k后面有比k小的数,那么k就不可能作为后面所有数的第一个小的数。所以单调栈就是实现这样一个功能。将不符合条件的元素及时弹出,维护当前栈的单调性。eg单调队列同理,只是进出顺序不同。eg2...原创 2022-07-05 21:31:52 · 37 阅读 · 0 评论 -
【无标题】Marbles Lucky Distribution 概率 贪心 && 基础算法
题意:红蓝两色的球分别有n,m个,一共k瓶子,保证没有空瓶子和没放入瓶子的球,问拿到蓝色球的最大概率思路:总概率=每个瓶子概率/k 所以尽可能多的使每个瓶子概率最大。可以想到最大概率就是全是蓝球,概率为1。所以判断m和k大小,如果m>k,那么放完所有瓶子后还剩蓝球概率就为如果m...原创 2022-07-04 20:24:01 · 172 阅读 · 0 评论