自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Lzzz

NULL

  • 博客(66)
  • 收藏
  • 关注

原创 有关SET使用的一些思考

1:用来查找小于(小于等于)某个值的元素我们已知:s.lower_bound(x):返回指向首个>=给定键的元素的迭代器。如果不存在这样的元素,返回 end()。s.upper_bound(x):返回指向首个>给定键的元素的迭代器。如果不存在这样的元素,返回 end()。–s.lower_bound(x)就是指向小于该元素的迭代器,不存在则返回end()。–s.upper_bound(x)就是指向小于等于该元素的迭代器,不存在则返回end()。...

2021-05-15 13:46:42 142

原创 1516 B. AGAGA XOOORRR(思维|异或运算)

https://codeforces.com/contest/1516/problem/B怎么最近出的都是位运算的题QAQ…首先你得了解异或运算的一些知识:异或运算满足交换律和分配律如果a==b,那么a^b=00与任意整数a运算后为0,即0^a=a再来看看这道题,要求我们经过操作后最终能剩下k(k>=2)相同的数。设k个相同的数大小为a,我们对k分情况来讨论:首先我们考虑k为偶数的情况,如果k为偶数,那么剩下的这k个数经过异或运算后结果为0(两个一对变成0,最终n/2个0异或

2021-04-22 19:59:40 796 1

原创 1512 G. Short Task

https://codeforces.com/contest/1512/problem/G就是求这么一个式子,即一个数的因子和。对每个数进行暴力找因子求解的话肯定会T,这里有个巧妙的方法,如图://求1-n每个数的因子和 for (int i = 1; i <=n; i++) for (int j = i; j <=n; j += i) sum[j] += i;因为因子就是能够整除的数,所以对于每个j来说,i一定是它的因子,那么我们枚举一遍i,对于每个i再枚举一遍它的倍数,

2021-04-14 15:14:47 151

原创 CF1506 D. Epic Transformation (贪心|优先队列|思维)

https://codeforces.com/contest/1506/problem/D题意:给你包含若干个数的集合,每次操作可以选择两个互不相同的数从该集合中移除,怎样操作能使集合所剩的数最小?先用map来记录每个数字出现的次数,生成一个新数组,然后将其从小到大排序。因为我们是想让最后剩下的数尽可能少,所以我们贪心地每次都让最大和第二大的元素-1,知道无法操作为止。这个操作使用优先队列就可以实现。还有终结是如果最大的元素比剩下的元素和要大,那么答案就是他们的差。如果最大的元素小于等于剩下的元素和那

2021-04-10 15:08:34 183 1

原创 Educational Codeforces Round 105 题解报告

【解题报告】Educational Codeforces Round 105 | ABCA:ABC String|思维B:Berland Crossword|枚举,思维C:1D Sokoban A:ABC String | QD题意给定一串由’A’,‘B’,'C’组成的字符串,每个字母可选择变成”(“或是”)“,是否存在能变成正则表达式的情况。思路首先可以确定头和尾的字母一定不相同并且变成的括号相反,所以不是头和尾的那个字母就有两种变化情况,正确的情况是变化后两种括号数量相等。然后从左到右

2021-03-03 21:04:40 268 1

原创 884 C. Bertown Subway(环,并查集)

https://codeforces.ml/group/qWc0vtZbjV/contest/884/problem/C题意:有n个车站,每个车站都能开往下一站(可以开向自己),保证每个车站都有且仅有一条路线开向它。你能够最多修改两站车站的目的地,使得从每个车站出发的路线和达到最大。(例如1-2-3,对于1就有1-1,1-2,1-3,对于2就有2-2,2-3,2-1,对于3就有3-1,3-2,3-3,共9条路线)。这题看了网上的题解说是并查集的知识,但是我还不会…我的思路就是每一条总线路就是一个集合(

2021-02-22 22:10:14 179

原创 1486 B. Eastern Exhibition(曼哈顿距离,有关结论)

https://codeforces.ml/contest/1486/problem/B题意:在二维平面上有n个点,找出有多少个特殊点,使得该特殊点到平面上个点的曼哈顿距离(|x1-x2+|y1-y2|)之和为最小值。首先把二维的问题转化成一维的问题,我们只去看每个点的横坐标,我们可以在x轴上找到k个特殊点(k>=1)使其到各个点的横坐标距离差|x1-x2|的和最小。之后我们再只看每个点的纵坐标,我们可以在y轴上找到k个特殊点(k>=1)使其到各个点的纵坐标距离差|y1-y2|的和最小。此时

2021-02-22 21:48:39 238 1

原创 1004 C. Sonya and Robots

https://codeforces.com/group/qWc0vtZbjV/contest/1004/problem/C题意:有两个机器人,从一组数组的两端向中间前进,你可以给这两个机器人设定一个数字,这样机器人在遇到数组中的数字与设定的数字相同的时候,就会停下来,避免了相撞。现给你一个数组,问有几种设定方法可以避免相撞,(左右两个机器人设定相同数字视为重复)。如果是理想情况下,数组中数字没有重复的,答案就是1+2+3…+n-1。例如1 2 3 4,对于1来说有三种,2来说有两种,3来说有一种,一共

2021-01-26 15:13:34 70

原创 1004 B. Sonya and Exhibition

https://codeforces.com/group/qWc0vtZbjV/contest/1004/problem/B](https://codeforces.com/group/qWc0vtZbjV/contest/1004/problem/B)题意:略…这题很有意思,我们观察之后可以发现如果区间长度为奇数(2n-1),那么我们就让把玫瑰和百合分成n和n-1份;如果区间长度为偶数(2n),那就让玫瑰和百合各站n份,这样能保证贡献最大。于是怎样解决嘞,一开始看着样例我还思考了很久,后来发现只要保

2021-01-26 14:57:40 72

原创 1004 A. Sonya and Hotels

添加链接描述题意:在x轴上分布有n个酒店,坐标已知。现给你一个距离d,求在x轴上距离任意酒店最短距离为d的点有几个。理想情况下就是2*n个点,每个酒店的左边和右边都有距离为d的一个点存在着。但是存在两个酒店之间只会有一个点或是没有点存在的情况。例如d=2时,两个酒店坐标分别为0和4,这时候只会有-2,2,6三个点存在;又如d=2时,两个酒店坐标分别为0和3,这时候只会有-2,5两个点存在。所以对于两个酒店间距=2d时,就会形成共用一点的情况;间距<2d时,两家酒店之间就不存在点。#include

2021-01-26 14:50:07 52

原创 HDU 1231 最大连续子序列

题目描述:给定K个整数的序列{ N1, N2, …, NK },其任意连续子序列可表示为{ Ni, Ni+1, …, Nj },其中 1 <= i <= j <= K。最大连续子序列是所有连续子序列中元素和最大的一个,例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{ 11, -4, 13 },最大和为20。现在增加一个要求,即还需要输出该子序列的第一个和最后一个元素。输入:测试输入包含若干测试用例,每个测试用例占2行,第1行给出正整数K( K&l

2021-01-24 13:54:03 54

原创 1466 C. Canine poetry

https://codeforces.com/contest/1466/problem/C题意:给你一个字符串,你可以对每个字母进行操作,使其变为任意字母,试求出最少的修改字母数使得该字符串没有回文字符串(就是对称的字符串)。可以知道回文的形势有2种,…aa…,…a.a…,(省略号代表其他字母)。这里可能有人会觉得…aaa…也算一种,但其实aaa是由aa和axa共同构成的一种情况,所以只要对aa,axa的情况进行操作,aaa的操作也就不会存在了~#include <bits/stdc++.h&g

2021-01-10 16:53:39 302

原创 1467 B. Hills And Valleys

https://codeforces.com/contest/1467/problem/B题意:给你一串数字,定义山顶为a[i]>a[i-1]&&a[i]>a[i+1],定义山谷为a[i]<a[i-1]&&a[i]<a[i+1]。 你能够在这串数字中选取一个数字,将其改变成任意数字,以此来减少山顶或山谷的数量。试求出最少的峰(山顶+山谷)的数量。自己尝试了一下发现在对一个峰点进行改变时,可以使a[i]>=a[i-1],或a[i]<=a[

2021-01-10 16:05:18 329

原创 1467 A. Wizard of Orz

https://codeforces.com/contest/1467/problem/A题意:有个长度为n初始状态下各元素均为0的数组,没过一秒数组中所有元素都会+1,如果是9则会变成0,即0-9不断循环。现在你能够在开始后的任意时间点选取任意一个位置,改位置上的数字立刻停止增加,与其距离为x的位置上的元素则在x秒后暂停(这x秒内还是数字会继续增加)。给定你长度n,求出由n个元素构成的最大数字(包含前导零)。首先要理解暂停是向两边同时进行,不是单一方向。然后可以发现最大肯定是第一位为9,第二位为8,第

2021-01-10 15:42:15 357

原创 1471 C. Strange Birthday Party

https://codeforces.com/contest/1471/problem/C题意:给你n个朋友和m个礼物,每个礼物都有自己的价格b[j],同时b[j]按礼物出现顺序升序排列,每个朋友都有自己的号码a[i](a[i]<=m)。对于每个朋友,第一中选择是给他b[a[i]]的钱,第二种选择是在j<=a[i]的前提下花a[j]的价钱购买第j个礼物(礼物买了之后就没了,不能重复使用)。怎样才能使你的开销最小?由于b数组是升序排列,所以我们的策略是设min为1(第一个礼物),对于每个朋友如

2021-01-07 20:15:59 191 2

原创 1471 B. Strange List

https://codeforces.com/contest/1471/problem/B题意:给你一个数组和x,你的初始分数为0。从头开始遍历数组,对于当前的元素,不能整除x时就结束,输出分数;可以整除x就将分数增加当前数字大小,并且在数组末尾添加x个大小为a[i]除以x的元素。如果按照题意来模拟数组肯定会爆掉…其实我们不需要不断更新数组a,我们可以用一个数组b来记录当前大小为a[i]的元素有b[i]个。这样如果a[i]能整除 x的话就更新a[i]为a[i]/x,b[i]=b[i]*x。这里要注意初

2021-01-07 19:41:21 325 2

原创 1471 A. Strange Partition

https://codeforces.com/contest/1471/problem/A题意:对于数组b可以两两合并其中的相连元素,beauty值就是对于数组b中的b[i]除以k向上取整的和,求出beauty值的范围。题目挺好理解,就是要注意是向上取整。(我用翻译软件就是四舍五入呜呜呜),观察后发现对于任意两个相连元素a和b,合并后的beauty值是肯定<=不合并的beauty值的,因为如果a,b都不能整除k最后的结果就是向上+2(a/k+1和b/k+1)而合并之后的a+b除以k的值最大也只能向

2021-01-06 20:30:37 354 2

原创 1472 E. Correct Placement

https://codeforces.com/contest/1472/problem/E题意:有好多个矩形,已知它们的长a和宽b和出现顺序。对于每个矩形A,寻找任意一个矩形B,使得A能放在B上且不盖住B(即Aa<Ba&&Ab<Bb||Aa<Bb&&Ab<Ba),找不到就输出-1。首先要注意时找到任意一个矩形即可。我们先定义a为较大值,b为较小值,这样就只需要判断Aa<Ba&&Ab<Bb。然后我们以a为升序排列数组,这样

2021-01-05 20:52:00 2146 4

原创 1472 D. Even-Odd Game

https://codeforces.com/contest/1472/problem/D题意:一个博弈题,姐姐A和弟弟B从一堆数中可以选一个数或者ban一个数。姐姐先来,姐姐A可以选一个偶数加到自己的积分池,或者ban掉一个奇数。弟弟B可以选一个奇数加到自己的积分池,或者ban掉一个偶数。(ban掉或是选了的数就不能再用了~)。现在给你一个数组,问双方都在最优解的情况下谁会赢(或平局)?每个人都可以拿(给自己加分)或者禁(不让对分加禁了的数字的分),所以是拿还是禁就是看能拿的选择和能禁的选择中谁的贡献

2021-01-05 20:20:49 467

原创 1472 C. Long Jumps

https://codeforces.com/contest/1472/problem/C题意:给你一个数组,你初始的分数是0,你可以从数组中任何一个位置开始,规则为当前分数加上此时所在的数组位置的元素值,然后你的位置会跳到i+a[i],如果i+a[i]>n,就结束。问怎样才能使得分最大?可以知道一旦确定了初始位置,所得分数也就确定了,但是直接模拟肯定会超时…所以我们观察观察,可以发现从后往前来看,当前位置开始的分数就是当前的数字大小a[i]加上i+a[i]位置的分数,所以是个递推,倒着来推就行~

2021-01-05 20:09:41 314

原创 1472 B. Fair Division

https://codeforces.com/contest/1472/problem/B题意:给你一堆由面值为1或2的硬币,问你能不能把这堆硬币分成两堆,使得两堆硬币面值和相同。可以发现如果硬币和如果是奇数,无法平均分配(硬币无法锯开~),然后在和为偶数的前提下,如果面值为2的硬币数量为奇数,面值为1的硬币数量为0,那也是无法平均分配的。剩下的情况下就是2的数量为偶数(包括0),1的数量为偶数辣,肯定能平均分。(如果2的数量是偶数1的数量是奇数就无法满足和为偶数了~)#include <bi

2021-01-05 19:53:42 1875 2

原创 1472 A. Cards for Friends

https://codeforces.com/contest/1472/problem/A题意:已知一张纸在长或者宽为偶数时可以将纸对折一次,纸张数翻倍。现给你一张已知长和宽的纸,并且告诉你目标纸张数,问你能不能实现。偶数能x2,奇数就停止,分别去求长和宽能被2除几次,记和为k,答案就是2的k次方。#include <bits/stdc++.h>using namespace std;#define qc std::ios::sync_with_stdio(0);int mai

2021-01-05 19:43:46 347

原创 1466 B. Last minute enhancements

添加链接描述题意:给你一个数组,有n个数字,对于每个数字,你可以使其不变或使其+1,怎样操作能使最后数组中不同的数字最多?初始化ans=n,用一个bn数组来记录不同数字出现的次数,然后遍历一边b数组。如果bi=1就使其不变,bi=2就第一个数字不变第二个数字+1,这样不会有重复。当bi>2时怎样操作都会出现重复,所以ans要减去bi-2(减2是因为怎样都能令一个数字不变,另一个数字+1)。这里要注意如果bi>=2就会i+1,所以要将b[i+1]++。循环结束后输出ans即可。我这里没有me

2021-01-04 16:26:44 241

原创 1466 A. Bovine Dilemma

添加链接描述题意:有个固定是(0,1)的点,然后在x轴上分布着n个点,横坐标为a1,a2…an,现在让你求出(0,1)这个点和x轴上任意两点所围成的三角形面积大小有几种情况。高是固定的了,所以只要算出底有多少种情况,答案就是多少种了,就是个组合问题…#include <bits/stdc++.h>using namespace std;int a[51];int ans[100000];#define qc std::ios::sync_with_stdio(0);int ma

2021-01-04 16:10:40 531

原创 1469 B. Red and Blue

https://codeforces.com/contest/1469/problem/B题意:有一个数组,由标记为R或B的数字组成,现在这个数组丢了。但是给你了两组数组R跟B,顺序为他们在原数组的出现顺序,现在让你把他们排回去,找出一种排序方式使得f(a)=max(0,a1,(a1+a2),(a1+a2+a3),…,(a1+a2+a3+⋯+an+m))最大。观察后可以发现各数组的顺序是独立的,不会互相影响,所以a的最大值就是r的最大值加上b的最大值。因此我们分别遍历这两个数组,使用sum来记录和,ma

2020-12-30 14:48:32 276

原创 1469 A - Regular Bracket Sequence

https://codeforces.com/contest/1469/problem/A题意:给你一个字符串,里面有 )( ?这三种字符,?可以任意变成(或是),让你判断这个字符串操作之后能否符合数学逻辑。例1:()?)——()() YES例2: )?()—— NO观察一下,可以知道如果字符串长度是奇数的话,肯定不满足条件,因为每个括号都需要另一个括号相匹配。然后再去观察首末位,如果首位是)或者末位是(也肯定无法满足。最后剩下的就是形如(…)且字符长度是偶数的形势,可以发现不管这里

2020-12-30 14:31:09 538 4

原创 L No 114514

https://ac.nowcoder.com/acm/contest/9934/L题意很容易懂,就是怎样满足条件次数不超过同时不超时。然后我就想把114514的最后一个4改成5就行了?然后就过了…官方题解:#include <bits/stdc++.h>using namespace std;int main() { int a[200002]; char b[200002]; int n; cin >> n; char temp; for (int i

2020-12-29 20:42:25 209

原创 K GPA Involution

https://ac.nowcoder.com/acm/contest/9934/K读完题就感觉要是结构体排序,你排a或者b都一样。sort一遍之后,对于每个ai,可以知道你选不选aj(j<i)对于a是没有影响的,但是呢,如果你aj不选,bj就会选上,同时对于k>i的部分b是都选的,所以bj如果比bk大的话就会变成错误答案(bj比bk小就没事),所以我们i前面的部分都选a。于是对于每个i的答案就是ai+i后面部分b的最大值,也就是ai+max(bi+1,bi+2…bn-1),这里去求max

2020-12-29 20:38:07 141

原创 H Bsq AK ZUCCPC

https://ac.nowcoder.com/acm/contest/9934/H题解说是用贪心,然后我没用?AK和爆0算范围都是一样的,总人数-做对的人数=做错的人数。首先算最大值,这个比较简单,就是数组中的最小值。然后再算最小值,这个可以想成不同种的天气,例如1-3下雨,2-4下雪,只有重合的2-3才会既下雪又下雨,也就是说2-3才是有用的部分,其他的部分你再来任何天气也实现不了全下(全不下)。所以方法就是对数组遍历一般,从第二个开始如果和小于总人数,就说明放得下(可以做到不重叠),大于总人数

2020-12-29 20:28:52 101

原创 F Drinking Time II

https://ac.nowcoder.com/acm/contest/9934/F很有意思的一道题~首先你管他配出来的鸡尾酒是什么品种,只要是鸡尾酒就算进去。然后可以得到1A+1B,1A+1C,2C,这三种配法。然后我们要从第一种开始入手,因为只有第一种配法会用到B。所以第一步就是把能用的B给用了。然后再看第二步,这时候从第二种入手,因为剩下的酒中如果有A就只能用第二种方法配置,所以第二步就是把能用的A给用了。最后一步当然就是能用多少C就把C用第三种方法配掉辣~#include <bits

2020-12-29 20:22:56 99

原创 B Xjj‘s Touching Value

https://ac.nowcoder.com/acm/contest/9934/B由于n<=30所以可以暴力枚举,纪录最大值就行…(我居然还求导算出极值点orz)#include <bits/stdc++.h>using namespace std;int gcd(int a, int b) { a = abs(a), b = abs(b); while (a % b != 0) { int temp = abs(a); a = b; b = temp % b;

2020-12-29 20:15:51 329

原创 A Young Man Don‘t Say Five

签到题,用string效果更佳~#include <bits/stdc++.h>using namespace std;int main() { string s; cin >> s; for (int i = 0; i < s.length(); i++) { if (s[i] == '5') s[i] = '*'; } cout << s; return 0;}

2020-12-29 20:13:19 119

原创 B.统计好元组(巅峰赛S2第12场)

https://ac.nowcoder.com/acm/contest/10324/Bclass Solution {public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param arr int整型vector * @param a int整型 * @param b int整型 * @retur n int整型 */ int countTr

2020-12-23 21:43:40 172

原创 问题 C: Cly的三角形

题目描述Cly很喜欢三角形,有一天他遇到了一道和三角形有关的题,但是这道题他简单了,他懒得做,于是交给了你。给定一个数组,每次询问一个子区间,如果能从这个子区间挑出三个数组成三角形输出clynb,否者输出clycdd。输入第一行给出数组大小n,查询次数q (1<=m,q<=1e5)接下来一行输入n个数,表示a[i] (1<=a[i]<=1e9)接下来q行,每行输入两个数l,r,代表一个子区间 (1<=l,r<=n)输出对于每个询问输出clynb或者clyc

2020-12-22 11:06:00 330

原创 1465 B. Fair Numbers

https://codeforces.com/contest/1465/problem/B题意:给你个数字n,输出一个不小于n的数字x,使得x能整除x各个位上的数字(n就满足的话就输出n)。读完题就能知道要干两件事,分离位数和判断整除,然后…就没有然后了。(感觉我这样做有点费时间?最终耗时半秒左右…)#include <bits/stdc++.h>using namespace std;#define qc std::ios::sync_with_stdio(0);int mai

2020-12-21 19:36:55 122

原创 1465 A. In-game Chat

https://codeforces.com/contest/1465/problem/A题意:给你个字符串,末尾有一段’)‘做结尾,字符串分为两部分,第一为末尾的’)’,第二部分就是其余的字符,如果第一部分比第二部分数量多,就输出"YES",相等或是小于情况就输出“NO”。比较简单的第一题~,倒着来给第一部分计数直到字符不再是‘)’为止,然后从这开始给第二部分计数,最后比较就行。#include <bits/stdc++.h>using namespace std;#define q

2020-12-21 19:32:38 252

原创 1459 B. Move and Turn

https://codeforces.com/contest/1459/problem/B题意:你是小明,你站在巨大的田野中央,你每次可以选择一个方向走一步(前后左右四个方向选一个),走完之后下一步的方向就必须与这次选择的方向垂直,例如第一次:南(北),第二次:东(西)。开局时可以四个方向任选其一走出你的第一步,现告诉你一共走n步,请你求出n步之后小明最终所在的位置有几种可能?找规律题~草稿纸上涂涂画画找到规律就行…1——4 2——43

2020-12-21 19:12:54 377

原创 1459 A. Red-Blue Shuffle

https://codeforces.com/contest/1459/problem/A题意:给你n张牌,每个牌上都分别有一个红色和蓝色的数字,现在把这n张牌全排列下,如果是每张牌红色部分组成的数字比蓝色部分组成的数字大的次数多,就输出“RED”,反之输出“BLUE”,相等就输出“EQUAL”。一开始我还真就全排列了QAQ,然后果断超时…其实这题没有那么复杂,我们就按1-n的顺序一张一张的看牌,第x张牌的红色数字比蓝色数字大就红色计数+1,反之蓝色计数+1,相等啥也不干。解释一下,每张牌在排列的过程中

2020-12-21 18:56:59 293

原创 1462 D. Add to Neighbour and Remove

https://codeforces.com/contest/1462/problem/D题意:给你一个数组,对于每个元素可以和左边或右边的元素合并,合并之后成为新的元素,值为合并前的两元素和,求最少经过几次能使数组中剩下的各个元素值相同。一开始想不出思路,就知道最差情况是操作n-1次把所有元素合并了…后来想了想发现问题可以转化为可以把数组分为几段,每段中的元素和相同,能分得组越多,操作的次数就越少,最终的操作次数就是数组中元素个数-段落数,所以就去求最多能分成几段。然后可以发现线段中元素和的情况分成

2020-12-21 17:38:27 124

原创 1462 E1. Close Tuples (easy version)

https://codeforces.com/contest/1462/problem/E1题意:给定一个数组,从这个数组中挑出三个元素x,y,z,使得max(x,y,z)-min(x,y,z)<=2,问最多能找出多少组。这题一开始我直接dfs求出所有的组合,然后判断每一组是否满足条件。结果例三就超时了…然后自己想了想觉得应该是个求组合数的问题,sort之后从a[1]开始求区间的组合,但是发现有问题,例如1 2 2 3 4,按我的方法就是1-3的组合数求完之后再去加上2-4的组合数,但是1-3之间

2020-12-17 20:28:59 1458

空空如也

空空如也

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

TA关注的人

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