思维
文章平均质量分 60
吃一口AC摇摇乐
这个作者很懒,什么都没留下…
展开
-
C. Doremy‘s IQ(二分/思维)
哆来咪不是傻子,他也有一个智商值,如果比赛的智商严格高于他的智商值,并且哆来咪参加了比赛,那他的智商值就会减一,不参加或参加智商值低于等于他智商值的比赛则没有影响,问哆来咪尽可能多的参加比赛的策略。所以我们,可以翻转数组,倒着模拟这种情况,从智商值为0开始,如果遇到比当前智商值大的比赛,就参加,并且智商值加一,当智商值等于。由于天数是递增的,也就是说我们只能随着天数,参加后面的比赛不能反过来参加前面的比赛,因此我们也可以用二分的方法来解决。首先,我们称会降低智商的比赛为坏比赛,其余的比赛称为好比赛....原创 2022-07-18 17:10:35 · 454 阅读 · 1 评论 -
CF1567D. Expression Evaluation Error(思维+贪心)
D. Expression Evaluation Error题目大意:给出一个十进制数,给出一个所需的数字个数,这几个数字之和为这个十进制数,并且使得其组成的数的11进制数最长,求出这一串数。思路:对于每一位,我们从左到右依次进行贪心,若想使得这个数的11进制表达最长,那么我们需要从左到右每一位都是最大值,但是我们也注意到,那么就是数每一位基本上都是10x(1<=x<=n)10^x(1<=x<=n)10x(1<=x<=n),而题目要求中,需要为正数,所以对于所原创 2021-09-06 23:44:34 · 156 阅读 · 0 评论 -
CF 1567 C. Carrying Conundrum(思维)
CF 1567 C. Carrying Conundrum(思维)题目大意:题目大意很有意思,就是一个小孩他不会列式相加,把进位加到了该位左侧的第二位上,现在给出结果,问按照这个小孩的方法,能有多少种情况使得两数之和等于所给的数,需要注意的是,两数只要不相同就算一种情况。思路:对于每一个数,我们将其的奇偶位分别取出,因为只有相差为222的位之间才有进位关系,其次,对于奇数位所取出的数以及偶数位来说,凑出这两种数的情况就有他自身大小加一种情况(若一个数为nnn,则两数相加为nnn有n+1n+1n+原创 2021-09-06 23:35:47 · 278 阅读 · 5 评论 -
CF1348C Phoenix and Distribution(分类讨论)
CF1348C Phoenix and Distribution思路:首先对字符串从小到大进行排序,然后对其分情况进行讨论、首先,我们讲前k个字符依次放入a[1]-a[k]中肯定是最优的第一步。那么如果最小的字符个数小于k的话答案就为s[k]了,因为此时我们要让字典序最大的最小,一个字符肯定是最优解。如果不小于的话那就需要进行下一步其次我们需要判断后面的字符,后面的字符如果都相等,那么我们就把他们全部均分输出即可,若不相等则答案为最小的字符加上后面所有的字符。#define _CRT_SECU原创 2021-08-22 11:21:42 · 82 阅读 · 0 评论 -
CF1385 D. a-Good String (分治+递归)
D. a-Good String题目大意:定义:字符串s 为一个c-好串(c 为一个字符)时,必须满足:当|s| = 1∣s∣=1 ,s = c当|s| > 1, s 的左半部分为全为 c,右半部分为一个 (c+1)-好串 或者 s 的右半部分为全为 c,左半部分为一个 (c+1)-好串其中 ∣s∣ 代表 字符串 s 的长度。举个例子:当 s=“cdbbaaaa"时,s 是一个 a-好串现在,给你一个字符串 s ( |s| = 2^k),问最少替换多少个字符,使其为一个 a-好串。思路原创 2021-08-16 22:17:59 · 292 阅读 · 0 评论 -
CF1461 C. Random Events(简单期望)
CF1461 C. Random Events题目大意:给定一个长为n的序列,m个询问,每次询问两个数第一个为从1开始所到右边界,第二个数为一个概率,代表着将这一段数组变为升序的可能性。问最后将整个数组变为非降序的概率。思路:首先要对询问进行分析,何时的操作为有效操作,若我们所修改的区间内为整个数组与非递减序不符的所有部分时才为我们所进行的有效操作范围,所以我们只需要从后往前遍历,找到最后一个与答案不同的地方,打上标记。如果我们所询问的数大于等于这个数,那我们就进行操作。对于每次操作的概率我们原创 2021-08-09 18:04:00 · 143 阅读 · 0 评论 -
CF276C Little Girl and Maximum Sum(贪心+差分+前缀和)
CF276C Little Girl and Maximum Sum题意给定一个序列,给出q个询问区间,在询问之前你可以将序列重新排序,使得所有区间内的数之和最大。思路:第一想法肯定是贪心,将所有区间相加得到一个数组,再将他按从小到大排序,于是开开心心莽了一发TLE,对啊,我怎么可能一遍过呢hhhhh : )这里我们来复习一下差分。我们现在想要构造出一个记录被涵括次数的数组,那么我们就相当于对这个区间加上1,也就是说对于区间[l,r][l ,r][l,r],我们需要做的就是对num[l]原创 2021-08-01 22:06:18 · 191 阅读 · 0 评论 -
CF1511D D. Min Cost String (构造)
CF1511D D. Min Cost String (构造)题目大意:定义一个字符串 ss 的花费(cost)为满足s[i]==s[j]s[i]==s[j]s[i]==s[j]&&s[i+1]==s[j+1]s[i+1]==s[j+1]s[i+1]==s[j+1]的数对 (i,j)(i,j)(i,j) 的数量现在需要使用从小写字母 aaa 开始的 kkk 种字符,构造一个长度为 nnn 的字符串,且要求花费最小。思路:其实看到样例一的时候,构造的思路就已经出来了,每两个字符原创 2021-07-29 21:30:49 · 271 阅读 · 0 评论 -
CF1519 D. Maximum Sum of Products(双指针+思维)
D. Maximum Sum of Products题目大意:给定两个长为 n 的序列 a 和 b。你可以对 a 的一段区间翻转,也可以不翻转,要求翻转后 a 与 b 对应位置之积的和最大。即求下式的值最大:∑i=1nai∗bi\sum_{i=1}^{n}a_i*b_ii=1∑nai∗bi思路:首先考虑暴力,枚举每一个区间翻转,并进行求和,显然时间复杂度O(N3)O(N^3)O(N3)会爆哎。那不写除了暴力我还会个啥其实呢,我们还可以得出一个小小的结论,就是每次交换后的答案所改变的值原创 2021-07-29 21:19:10 · 272 阅读 · 0 评论 -
2021牛客暑期多校训练营4Average(前缀和+浮点二分)
思路:对于矩阵WWW,给他硬二维构造肯定是不行,空间太大,那么我们肯定就要寻找其中的规律。我们假定存在一个hhh行,kkk列的子矩阵使得答案最大,我们可以发现每个aia_iai只与第i行有关,而每个bib_ibi只与第i列有关,在模拟一下平均值:(a1+a2+a3……+ah)∗k+(b1+b2+……+bk)∗hh∗k\frac{(a_1+a_2+a_3……+a_h)*k+(b_1+b_2+……+b_k)*h}{h*k}h∗k(a1+a2+a3……+ah)∗k+(b1+b2+……+bk原创 2021-07-28 21:46:39 · 85 阅读 · 0 评论 -
2021牛客暑期多校训练营4 LCS(构造)
思路:首先我们将a,b,ca,b,ca,b,c进行排序找到最小值,下面我们假设ccc为最小值,我们首先给三个字符串分别加上ccc个‘a’‘a’‘a’。其次,我们就对s1,s2s1,s2s1,s2分别加上a−ca-ca−c个‘b’‘b’‘b’,对s2,s3s2,s3s2,s3分别加上b−cb-cb−c个‘c’‘c’‘c’至此我们三个字符串所有相同的部分就构造完了,而各个字符串也有了长度分别为:s1=c+a−cs1=c+a-cs1=c+a−cs2=c+a−c+b−cs2=c+a-c+b-cs2=c+a−原创 2021-07-28 21:31:27 · 83 阅读 · 0 评论 -
Codeforces Round #734 (Div. 3) C. Interesting Story(构造)
C. Interesting Story题目大意:有 nnn 个字符串,每个字符串只包含 a,b,c,d,ea,b,c,d,ea,b,c,d,e 五个字符。现在从这 nnn 个字符串里选择若干个,组成一个新的字符串。在满足某个字符出现的次数大于其他字符加起来出现次数的情况下,最大化新字符串的长度。思路:菜狗菜狗菜狗,碰到字符串啥也想不出来wdnmd其实啊,我们发现,答案无非就是这五个字母,所以我们直接枚举当答案为这五个字母的情况取最大值即可。在求得过程中,我们发现对于每一个字符串来说他的贡原创 2021-07-27 23:01:51 · 153 阅读 · 0 评论 -
Codeforces Round #734 (Div. 3)B2. Wonderful Coloring - 2(构造)
B2. Wonderful Coloring - 2(构造)题目大意:给一串数,用kkk种颜色来进行染色每种颜色所使用的次数相同,且不能有重复元素。思路:字符串模拟题,亦直wawawa,凡死了。。。对于给定的数组,我们用一个pairpairpair数组存储其数值以及坐标。按从小到大进行排序,这样方便我们染色,(插播一个小知识,pairpairpair数组默认按firstfirstfirst排序)。排序之后我们用一个qqq来记录其个数,如果大于kkk我们就将其大于k的部分都染为000,否则就原创 2021-07-27 22:50:01 · 246 阅读 · 0 评论 -
Codeforces Global Round 15 D. Array Differentiation(dfs)
题目大意:对于给定的数组aaa,请问是否存在一个与aaa等长的数组使得ai=bj−bka_i=b_j-b_kai=bj−bk。思路:一眼看到了数量级哈,只有10 !。天老爷哟~。接下来我们来进行简单的分析,首先对于aaa中的nnn个数,假定有三个数a1=b1−b2a_1=b_1-b_2a1=b1−b2,a2=b2−b3a_2=b_2-b_3a2=b2−b3,a3=b3−b1a_3=b_3-b_1a3=b3−b1显然我们可以得到,a1+a2+a3=0a_1+a_2+a_.原创 2021-07-27 22:06:19 · 111 阅读 · 0 评论 -
牛客2021暑期训练3-J-Counting Triangles(思维)
题目大意:给定一个无向完全图,求其中边颜色相同的三角形有多少个。思路:赛时写了一个自以为 O(O(O(n^2))) 的搜索(实则O(O(O(n^3))))????。其实可以根据高中知识得出三角形的个数为n∗(n−1)∗(n−2)/6n*(n-1)*(n-2)/6n∗(n−1)∗(n−2)/6,如果三角形不满足三条边颜色相同的话,那肯定有两条边颜色相同,所以我们只需要遍历每一个点,记录其黑边与白边的乘积也就是不合格的三角形个数的二倍,最后用总数减去他的二分之一即可。#include<iostr原创 2021-07-25 13:10:23 · 106 阅读 · 0 评论 -
2021牛客暑期多校训练营2 K stack(思维 + 构造)
K stack题目大意:给定数组 bbb 中的 kkk 个元素,其记录了栈的大小,而数组aaa存储入栈的元素,当栈顶元素大于入栈元素时则弹出栈顶元素。思路:首先对于bbb中元素,在一个b[i]b[i]b[i]不为0的元素之前的bbb一定是1,2,...,b[i]1 ,2, ... , b[i]1,2,...,b[i]的子序列,所以我们干脆构造出一个合法的bbb数组,对于这个数组,如果某处无值,那么我们就让他等于前一个数+1。在构造完之后,我们还要判断该数组是否合法,显然,一个数大于他前一个数原创 2021-07-20 15:36:55 · 205 阅读 · 0 评论