自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 Cannot read properties of undefined (reading ‘prototype‘)

用vue注册的用import ElementUI from "element-ui"是不行的要用。

2023-11-06 22:38:09 302

原创 dasdsdad

asdsd。

2023-10-07 16:56:15 146

原创 Codeforces Round 898 (Div. 4) A - F

考虑到位置 i 能往后延伸到的最远位置和 i+1 能往后延伸到的最远位置相关,逆序递推一下。对于每一个位置,二分查找合适的右端点,然后取长度的 max即可。思路:裸二分,水题(但被恶心到了,一直wa4)水题就不用多说,直接代码展示。思路:水题直接代码展示。思路:水题直接看代码。

2023-09-22 09:49:19 321

原创 CodeTON Round 6 (Div. 1 + Div. 2, Rated, Prizes!)

当时写的时候没有想到异或什么不会改变,一股脑全设置的为一,这里我直接猜的,就是将b里面的值全部或起来,然后输出了他们异或每一位,和不异或每一位的值发现,答案就是里面的最大和最小值。我们可以发现,当k>n或者k-1>x那么就不能组成想要的答案,然后就是我们可以让0到k-1都出现,然后其余都放剩下满足最大的那个。根据样例可以发现,最终每一位答案必然是最左边和最右边能出现的最远距离,这里需要跟新的就是可能前一位可以跟新其他的最大值和最小值。

2023-09-19 10:58:27 509 2

原创 牛客小白月赛55

我们可以发现每个人一次只能拿一个,还没有限制,所以就判断所有(a[i]-i)的值的总和,判断奇偶即可。我们可以打下表看看1e18有多少个f[i]可以发现只有88个左右,然后我们直接找就行了。如果想让c尽可能大,让a和b相同部分全为1,不同部分为0jike。按照题意转换一下即可。

2023-09-14 11:03:02 61

原创 Codeforces Round 897 (Div. 2)

我们可以发现,当如果里面对称位置不相等的时候那么一定会存在一个一,如果对应位置相等的话,那么可以是全为1也可以全为0,所以我们最少的一的次数就是不相等位置的次数,当将不相等位置都排完后,我们对应偶数位置才能输出1,因为,成对的位置相等,他们是一起的,你只能选全为1和全为0,最后就是奇数是特殊的,中间那个可以是1也可以是0,所以奇数中间就不用判断偶数位置还是奇数位置。如果一个点位于单链上,分析可知一定可以完成赋值的,因为总存在一个点不需要对其他点负责,而且也可以多次对一个点覆盖。对位置和点权建边,跑强连通。

2023-09-12 11:38:27 492

原创 AtCoder Beginner Contest 319

枚举看的顺序,然后对于每个顺序,我们依次判断每一行、每一列、每一对角线看到的三个数字的顺序是否符合上述要求,累计事件发生的情况即可。代码里其实是枚举的每个位置是第几次看到的,然后对于第一行的三个位置,就根据第几次看到的排个序,再比较第一次和第二次看到的是否是相同的,且不同于第三个数。我们可以发现,当每一行的长度很大时肯定可以在m行内保证满足题意,所以可以发现有单调性,所以我们能想到二分答案,但是有些细节要注意。按照题意,枚举每个i,再枚举每个 j,看是否符合倍数要求即可。直接map存以下输出即可。

2023-09-10 19:41:05 276 3

原创 UNICORN Programming Contest 2022(AtCoder Beginner Contest 269)

找某一位如果是1那么这位先输出0在输出1在转换为10进制,即是求每位所以可能,但是某位为0该位只能是0。bfs搜索一遍,类似于找到岛屿数量,模拟以下能走的位置即可。就输出(a+b)*(c-d)即可。记录行和列的开始结束位置即可。

2023-09-09 11:06:06 121

原创 Codeforces Round 895 (Div. 3)

我们可以发现如果某个数能被x和y同时整除的话对答案没有贡献,所以,我们只需要找到在x中的数不在y中的个数num1,在y中的数不在x中的数num2,然后根据前n项和公式sum1-sum2即可。我们可以发现当在 a 拿 c 到 b 其实可以让他们差值减少 2c,所以对a和b的差值除以2c向上取整即可。② 如果a== b,如果a和b不是质素那么就直接找出他的最小的约数即可。= b,我们就能找一个偶数,输出2和偶数-2。③ 如果a ==b,如果a和b是质素那么就输出-1。还有些细节注意下就行。

2023-09-09 10:25:27 183

原创 KYOCERA Programming Contest 2022(AtCoder Beginner Contest 271)

类似于背包,然后就是判断他前面一个数能不能转换过来能就记录该值以及路径即可,然后dfs反向判断满足条件的路径。二分答案然后看 mid 是不是满足能构成 1到 mid里面的所有数,能就继续二分,输出答案即可。没啥巧解,就十进制转十六进制。直接取出对应位置的值即可。

2023-09-06 16:31:48 214

原创 牛客小白月赛65

这里我们可以用一个set讲所以数字包括0都存入set中,然后如果是1将对应下标找到并删除,如果是2的话,用lower_bound()找到大于等于该值的下标然后减1后即是答案下标,然后输出即可。可以看成背包容量为n,有两种产品若干个,然后dp[i][j]=max(dp[i-1][j],dp[i][j-a[i]]+a[i])而当先手rand(①/②)来取一次,后手只需要采取一样的取法,就可以让-4的那个更小的数变成3的倍数。接下来,此前的先手就变为了较小的数是三的倍数情况下的后手,就坐等。

2023-09-06 09:12:51 80

原创 牛客小白月赛77

我们将原串的hash值求一遍,然后遍历区间为m的数组求其hash值,注意我们求的hash值的同时应该维护相同hash值的先后顺序,并存入到mp中,最后遍历mp找到出现次数为k的次数。我想到的就是将st位置就标记为-1,ed位置标记为+1,然后遍历数组,然后维护k值即可,如果当前k为负那么就应该会重新走一遍,记录走的次数即可。我们可以发现如果当前前缀值为负数的话,必然前面可以构成和为正数,后面必然可以根据这个负数点为基准进行题目操作,最终看能消去几个负数并加上正数。思路:字符串hash。

2023-09-04 20:14:14 157 1

原创 THIRD PROGRAMMING CONTEST 2023 ALGO(AtCoder Beginner Contest 318)

转移时通过加减那两个数的贡献,就得到 j移动到下一个数时的 ∑的值。考虑枚举下标j,剩下的就是考虑 j左边和 j右边的相同数。这个j对答案的贡献就是 ∑x≠ajlx×rx,其中 lx表示 j左边 x(是值,不是下标)的个数, rx就是右边的 x的个数。如果枚举下标i会发现比较难计算,对于当前的 ai,那么对于之后的每个 ak都要考虑它们之间的其他数的个数,感觉复杂度会比较大。所以就直接爆搜的就好了,也就是对于每一个点找它匹配的点,需要注意的是可以有点不匹配边。这样的复杂度就是 O(N!

2023-09-03 18:36:47 427 1

原创 Educational Codeforces Round 154 (Rated for Div. 2)

因为下标1是0,末尾下标是1,所以从左到右遍历,如果当前a[i]==b[i]并且是0的话,将前面跟新,如果走到a[i]==b[i]并且是1的话就一定能构成a=b。如果a[3]>a[2]:但是a[2]乘上一个数使得a[2]>a[3],肯定也要改变a[3]了。把下标2到4同时乘上一个数,不改变2到4的之间每个数的大小关系。如果a[3]

2023-09-01 14:14:28 187

原创 Pinely Round 2 (Div. 1 + Div. 2)

我们直接遍历这个字符串维护两个数值,一个是全为 ‘+’ 的情况下的值,一个是既有 ‘+’ 又有 ‘-’ 的值,起初的值都为A,如果中途有一个数大于等于n就标记这个数,如果两个数都被标记了就是yes,如果两个数都没被标记就是no,否则就是maybe。我们可以发现如果当前下标如果和后面的下标是逆序的就应该交换,否则就不交换,我们先标记每一个值的下标,然后遍历1~n判断他们的是不是逆序是就答案+1。后面的下午在补,先睡觉了@_@

2023-08-31 10:16:38 230

原创 Codeforces Round 888 (Div. 3)

典型的有向无环图的记忆化搜索,有人说dp其实都一样,我们通过记忆化搜索(dfs) 的方法来确定他每一种原料的最小花销,这样就能得到通过合成路线相加获得该药剂的最小花销。只要有k个元素和第一个元素颜色相同,并且有k个元素和最后一个元素颜色相同 ,并且选择这两种颜色的区间不相交,答案即为YES。特别的是,第一个元素和最后一个元素颜色相同,此时只需要k个颜色即可。我们可以发现要让他们能相同高度首先你们之间的差值必须是k的倍数并且这个倍数必须小于m并且不能存在相同高度。思路:dfs+记忆化。copy下别人的思路。

2023-08-29 12:52:16 219 4

原创 牛客小白月赛67

此时f[i]=0.5a+0.5f[i+1]。这个相比简单的他的数据变大了,之间暴力不行了,我这里分享的是预处理两个维度,第一维度是答案。第二维度当前处于安全的点的次数,然后没错输出答案即可。因为这是简单版本所以之间暴力即可,标记当前位置出现的次数,然后遍历1到m那些点能到标记的点记录下来即可。如果不存在左边那就去判断是否存在右边(Xc -> Xb)(包括中间的Xc),如果符合条件出现在左边(0 -> Xc)就输出YES,如果右边符合条件就输出YES,不然就符合条件输出NO。通过相似三角形可以推出等式2。

2023-08-28 21:52:43 46

原创 Educational Codeforces Round 153 (Rated for Div. 2)

我们可以从左到右来考虑,假如Alice在点 i 下了棋,那么考虑 i 前面是否存在可选择的必胜状态,如果存在必胜状态或者前面没有能选择的状态,那么 i 就是必败状态,反之为必胜,计算必胜状态的数量即可。首先我们预处理出最多需要多少个ak为x,在ak为x个的情况下a1有y个,然后当a2>=x,在判断a1和y的大小即可,当a2

2023-08-28 10:16:00 131

原创 Harbour.Space Scholarship Contest 2023-2024 (Div. 1 + Div. 2)

这个要想一想了,怎么可以让一个数尽量出现不超过两次呢,其实就是将n进行对n里面2的最高次幂的约数进行减去,怎么能说明这是对的呢,因为当你减去他这个2的最高次幂,后面不会在出现这个2的最高次幂,因为你减去这个最高次幂不会影响整体的最高次幂。我们可以发现如果k是偶数,我们交换一段区间可以将奇数位变为偶数位,偶数位变为奇数位,如果k位奇数,交换区间不会让奇数位变为偶数位,所有在执行方案一时k是偶数就直接排序即可,如果k位奇数偶数位排序,奇数位排序即可。③ 如果n不算2的幂,找到2的最高次幂的约数,减去这个约数。

2023-08-27 10:26:13 225 1

原创 第 359 场周赛

3,转移时,可以转移 f(i)=f(i−1),表示不出售第 i 个房屋。接着枚举以 ii 为终点的 offer(x)offer(x),转移 f(i)=max(f(i),f(offer(x,0)−1)+offer(x,1))。(代码中无需对 offer(x,0) 进行减一,因为给定的位置下标范围是从 0 开始的。1,设状态 f(i) 表示遍历了 [1,i] 的房屋后,可以赚取的金币的最大数目。以下标1开始从左到右,依次找到 i 并把 k-i 标记表示不能再选 k-i 这个数,然后计算前 n 个数的和即可。

2023-08-26 11:18:32 73

原创 Codeforces Round 894 (Div. 3)

其实我们认真观察一下这个等式 a1−d⋅1+a3−d⋅2=3−2⋅1+5−2⋅2=2,可以发现其实求生a1+a2-3*d=2,所以我们可以发现,只有正数对于答案才会有贡献,所以将所有正数进行讨论,即是求一段正数里面选

2023-08-25 11:02:51 247

原创 牛客小白月赛51

进制分解,每次判断当前能否被k整除,即判断能否有高一幂的需求,比如8/2=4,4%2=0,所以最后可以直接加上8,6/2=3,3%2=1,证明这一位要直接加上,所以就是先加2再加4,这样不断分解即可。但是要注意-1的情况,如果a或者b如果比n/2小的话必然不能排好,还有就是当预处理出01或10组成的n/2队后,如果剩余1为奇数个或者0剩余奇数个也是-1,自己尝试举例子即可。bi,a[i-1]),min(a[i]-1,(n+1)*bi-1)],然后算出每一段长度即可。思路:输出比n小1的第一个奇数即可。

2023-08-24 11:04:51 39

原创 Educational Codeforces Round 152 (Rated for Div. 2)

由于首先选出最大的值然后减去k,依次这么下去可以发现,最终每一位都会小于等于k,所以我们可以先预处理出每一位取模k后的值,但是这里注意当如果当前值不是0的情况下取模后值如果是0要还原为k,然后就排个序即可。即,优先枚举操作 2 可以执行多少次,每次染色后将其标记,记录下花费,之后遍历数组 a,对所有没有进行操作 2 的元素执行操作 1,模拟该过程即可。我的思路是首先去掉上方和下方的两个面包片,其次比较剩下面包片和奶酪和火腿的总和,如果面包多就是奶酪和火腿的总和。Q_Q(数组开小了,一直不知道错哪里当时)

2023-08-23 11:25:01 35

原创 牛客小白月赛52

牛客小白月赛52签到时刻牛牛的身高说谎的机器环上食虫分组求对数和骑士战胜魔王

2023-08-22 11:04:01 26

原创 Codeforces Round 893 (Div. 2)

然后开始dp,f1i, j表示i ~ n范围内,用了j次操作的最长连续0的长度,f2i, j表示i ~ n范围内,用了j次操作的最长连续1的长度。我当时猜想是遍历每个数,然后找到他乘以2后的数,如果在就输出不在就退出,没想到对了,这样是可以保证没次答案要么是以要么是以起始位置进行乘二,比如2 4 8,最终会让答案进行改变,从而使个数增加。最后比较的是自己能按的按钮个数,因此优先按c的,按c两次等于没按,所以最后看c奇偶,加到第一个人的次数里面,如果最后a的按钮个数大于b则第一个人赢,因为b没足够按钮按。

2023-08-16 11:54:58 74 3

原创 Codeforces Round 892 (Div. 2)

Codeforces Round 892 (Div. 2)

2023-08-13 09:21:34 270

原创 leetcode--第 353 场周赛

转移时,对于f(i),如果 nums1(i)≥nums1(i−1),则转移 f(i)=max(f(i),f(i−1)+1);设状态 f(i) 表示遍历到下标 i 且 nums3(i) 为 nums1(i) 时的最长非递减子数组,g(i) 表示遍历到下标 i 且 nums3(i) 为 nums2(i) 时的最长非递减子数组。转移时,对于 f(i)f(i),枚举 0≤j

2023-08-11 18:02:45 64

原创 牛客小白月赛56

我们不需要预处理出所有质素,直接遍历当前数组,存下当前数组满足的质素,这里满足的质素不是当前数的最小的质数而是除去被前面记录出现过的质数,然后存下来,在对存下来的数组判断,如果原数值不是质素,并且当前值比记录的最小质素要大的话,就将当前值改为目前最小值,否则跟新最小质素。思路:这里几乎裸dijistra模板,将当前边存两条,一个是不改变的值,一个是改变值,然后dijistra一遍即可。思路:很容易想到,在10的倍数的位置填最小的,然后其他位置从对10取模后依次放入当前数组里面最小的。

2023-08-09 14:39:54 24

原创 牛客小白月赛60

思路1–两个bfs:起点bfs记录到达每个点的距离,终点bfs记录到达每个点的距离然后在目标点中取个最小值即可。一维即可,当前值选和不选比较即可dp[i]=max(dp[i-1],dp[i-k-1]+a[i])思路:记录一下每个数的个数即可然后没次询问n-cnt[x]即可。思路2–分层图+01bfs:还不会 Q_Q。

2023-08-04 21:39:38 29

原创 牛客小白月赛61

思路:首先确定s2[0]和5的大小,然后如果当前是5然后找一下后面是不是有大与0的数有的话归到大于0.5之列,然后根据题目模拟即可。思路:复杂的模拟题。可以使用优先级队列(小根堆)按时间轴顺序模拟事件:培养工程师、占领油田、等待金币上升以再次培养工程师。思路:首先是判断通过PLMM 的移动是否能让猫闻到小鱼的味道,如果能闻到通过bfs走一遍即可找到是否能吃到小鱼。思路:签到题,模拟一遍即可。

2023-08-02 13:29:55 43

原创 牛客小白月赛63

(2)如果n取模后为一,按之前应该排1这样形成环后就会出现111这种情况,所以将最后一位加2。思路:我们通过&可以知道a1&a2

2023-07-31 18:04:31 42

原创 Codeforces Round 889 (Div. 2)

Codeforces Round 889 (Div. 2)A. Dalton the TeacherB. Longest Divisors IntervalC1. Dual (Easy Version)C2. Dual (Hard Version)D. Earn or Unlock

2023-07-30 17:50:05 183

原创 牛客小白月赛66

牛客小白月赛66A 先交换B 再交换C 空洞骑士D 障碍E 生成树与路径F 球球大作战

2023-07-29 18:04:27 24

原创 牛客小白月赛69

牛客小白月赛69A 蛋挞B 玩具C 开题顺序D 旅游E 等腰三角形(easy)F 等腰三角形(hard)G (A+B)^N%P Problem

2023-07-27 21:43:32 45

原创 牛客小白月赛45

牛客小白月赛45A 悬崖B 数数C 山楂D 切糕E 筑巢F 交换

2023-07-26 21:04:31 65 1

原创 牛客小白月赛46

牛客小白月赛46

2023-07-24 21:35:24 43

原创 牛客小白月赛71

牛客小白月赛71

2023-07-20 11:34:11 32 1

原创 Leetcode--第 240 场周赛

记录每个点入度的个数,将入度为0的点存入数组中,然后宽搜一下,将其26个字母颜色和前面的进行跟新,自己这一程会在下一层跟新,在判断是否有环时,每个点如果都是其他点转换过来必定在宽搜时进行消去,最终度数为0,然后求一个最大的值。维护以当前值为最小值的区间,从当前位置找到左边第一个小于当前值的下标存下来,从当前位置在找到右边第一个小于当前值的下标存下来,在用前缀和求出后面可以找到的区间值,然后循环找对应区间的最大值。思想:单调栈+前缀和。

2023-07-19 11:43:33 22

原创 集训班第四天题解

排列与组合是常用的数学方法,其中组合就是从n个元素中抽出r个元素(不分顺序且r≤n),我们可以简单地将n个元素理解为自然数12n,从中任取r个数。现要求你输出所有组合。例如n5r3123124125134135145234235245345。

2023-07-18 23:11:59 92 1

原创 牛客小白月赛76

牛客小白月赛76

2023-07-18 22:46:19 40 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除