![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
赛后补题
文章平均质量分 68
咸蛋_dd
Salty egg咸蛋记录日常
ACM两年选手,算法依然在研究中,web小白,涉猎较广,佛系更新,随缘上线
展开
-
(赛后补题)G - Occupy the Cities(贪心+二分)两种方法实现
思路:首先是二分,二分需要的时间,然后判断这个时间是否所有的0都可以被攻占,最主要的就是这个check函数了, 我们需要提前把所有0的左右两个方向离他最近的第一个1的位置记录一下,然后就可以开始判断了, 如果两边的1都满足条件,首先选择左边的。纯纯大怨种是我,虽然这题两种方法都可以实现,但是二分的代码量很少,二十分钟就能写出来,而且很好调试,贪心就......写了将近4个小时才调出来的贪心写法,需要想的非常仔细,建议大家直接写二分吧!我这里写的是先分块,将连续的1和连续的0都分成单个元素。原创 2022-10-25 11:31:59 · 437 阅读 · 0 评论 -
赛后补题L - Non-Prime Factors
例如,整数 100100 有以下九个因数:\{ 1, \underline{2}, 4, \underline{5}, 10, 20, 25, 50, 100\}{1, 2 ,4, 5,10,20,25,50,100}。因此,NPF(100) = 77。输入 第一行包含一个整数 QQ (1 \le Q \le 3\cdot 10^61≤Q≤3⋅10 6)表示查询的数量。接下来的每一 QQ 行包含一个整数 ii (2 \leq i \leq 2\cdot 10^62≤i≤2⋅10 6)。原创 2022-09-09 19:03:08 · 89 阅读 · 0 评论 -
B - Magical Subsequence
给你一个原始序列a,让你找出一个最长的子序列b,使这个子序列满足条件b[1]+b[2]=b[3]+b[4]=......,输出这个子序列的长度。思路:题干给出原始序列a的数据范围很小,1原创 2022-09-02 21:09:10 · 268 阅读 · 0 评论 -
C - The Battle of Chibi (dp加树状数组前缀和优化)
所以余州只剩下一条路,派人假投降曹操。接下来考虑优化,我们会发现,当我们固定dp[i][j]里面的j时(j为严格上升序列的长度),dp[i][j]就可以看作是i从1变化到n的前缀和了,正常暴力的话我们需要n的时间复杂度,这当然是不行的,所以要考虑树状数组优化,我们知道树状数组查询区间和的时间复杂度是O(logn)的,对于这个题刚刚好,所以我们要用树状数组来进行前缀和的优化,这样总体的时间复杂度就是O(n*n*logn)了。思路:首先我想到了dp,设dp[i][j]代表的是到第i个数字,长度为j的方案数。..原创 2022-08-08 11:38:42 · 113 阅读 · 0 评论 -
C-Eighty seven(背包+bitset)
思路:因为n只有50,所以可以进行n^3复杂度(约等于,可以优化,不优化会t掉)的预处理,然后01背包的思路,bitset优化,因为是二进制位所以可以很有效的减少时间复杂度。题意:给你n个数字,每次拿走里面1到3个数,问你剩下的数里面是否能选出10个数之和为87。浅学了一下bitset,感觉挺妙的,可以进行背包问题的优化。...原创 2022-08-04 21:31:27 · 202 阅读 · 0 评论 -
(赛后补题)Gym - 101020 H H - Weekend
今天模拟赛我给忘了,睡过了......来的时候已经过了一个小时了,然后就没做到这个题,其实特别简单。思路首先,看到n的范围比较小,然后m比较大,所以是稠密图,首先想到Floyd,因为Floyd是n^3的时间复杂度,在这里n是100,所以不会超时,而且它可以直接记录点i到点j的最短路径,所以我们可以用dfs遍历一下所有接送朋友的顺序的情况,然后有用minn记录最短距离。题意你是一个司机,你家在1路口,你要接你的几个朋友到路口露营,问最短路。...原创 2022-07-21 20:55:09 · 129 阅读 · 0 评论 -
(赛后补题)(伟大的dfs)K - Counting Time
题意一个比较简单的dfs,一个3x3的的方格,问你有多少种填充方案,使得每一个x(1原创 2022-07-16 20:15:52 · 119 阅读 · 0 评论 -
(赛后补题)E - Charles in Charge(dij+二分)
题意:n个点,m条路,每条路连接两个城市,给你一个x,让你找一条总长度不超过(1+x)%最短的那条路,然后让这条路上两个城市之间最大长度最小。思路:首先跑一边dij,求最短路,然后再每次二分一个限度,dij的时候加上判断,如果大于这个限度就不松弛它,最后输出答案。...原创 2022-07-12 19:56:04 · 90 阅读 · 0 评论 -
(赛后补题)F - Purple Rain Gym - 101652S
这题对于我这种小菜菜来说,第一眼没看懂题意,第二眼看懂题意了却完全不知从何下手,于是比赛结束后马上来补题来了,这题其实背过板子都好说,没什么坑点。题意:输入只含R和B的字符串,求出在哪个区间内他们的数量之差最大,输出该区间的左边界和右边界(如果多个区间的数量之差相等,那么输出靠左的区间)。思路点拨:思路:因为只含两个字符,所以我们可以将R字符赋值成1,B字符赋值成-1,然后求最大子序列之和就行,但是这种情况我们只能计算到R的字符多于B的情况,考虑到另外一种情况,如果我们要找...原创 2022-07-08 21:36:37 · 100 阅读 · 0 评论 -
(赛后补题)C - Fear Factoring Gym - 101652P
这个题的题意非常简单,但是比赛时我的大脑一片空白一点思路都没有,无奈结束后看了题解,感叹这个题解法非常巧妙,必须要记录下来。题意,定义f(i)表示i的所有约数之和,比如f(4)=1+2+4,给你一个区间a,b,让你求这个区间所有的f(i)之和。思路点拨:我们要求区间a-b的区间和,可以转化为 求1——b的区间和 减去1——(a-1)的区间和,这样比较好算,我们可以写一个函数来计算,所以现在问题转化为计算1——n的区间和,这里我们用一个例子引入一下,比方说现在n等于9,那么1——9的区间和如何计算呢?我们先来原创 2022-07-08 16:41:05 · 402 阅读 · 0 评论 -
(赛后补题)B - Latin Squares Gym - 101652O
我真的服了,明明要多组输入,为什么不说!为什么不说!为什么不说!啊啊啊啊啊!我做了两个小时啊,我真服了这煞笔题,带着怨恨往下写,气死我了气死我了题意:多组输入(虽然题目里面丝毫没提起,怎么,真是做阅读理解呢?此处省略一万个消音词)......原创 2022-07-07 19:38:57 · 155 阅读 · 0 评论 -
(赛后补题)F - UN Finals Gym - 101845F(匈牙利算法 二分图的最大多重匹配)
题意不太好读懂(是的,我每次读题都像在做阅读理解),其实题意理解了,然后套匈牙利算法,二分图最大多重匹配的板子就很好写,模拟赛的时候过题的人还是挺多的,但是我当时比赛没读懂题就跳过了,唉。。。题意:n个团队,每组三个队员,每个大写字母对应着他们的兴趣,第i个团队可以选择的兴趣却决于三个队员的兴趣最多的那个(如果数量相同,便都是),然后输出最大能匹配的团队数量。所以只要根据二分图最大多重匹配的算法直接套板子就可以了。...原创 2022-07-07 08:37:28 · 100 阅读 · 0 评论