自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 ZR#985

ZR#985解法:可以先假设每个区间中所有颜色都出现,然后减掉多算的答案。对每种颜色记录它出现的位置,则相邻两个位置间的所有区间都要减去,时间复杂度 $ O(n) $ 。其实可以理解为加法原理的逆过程,即减法原理。#include<iostream>#include<cstdio>#include<cstring>#include&...

2019-09-24 21:26:00 147

转载 ZR#984

ZR#984解法:异或的一个性质: $ a+b \geq a \bigoplus b$所以一边读入一边把读进来的值加到答案就行了。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#d...

2019-09-24 21:23:00 145

转载 ZR#990

ZR#990解法:首先,一个 $ k $ 进制的数的末尾 $ 0 $ 的个数可以这么判断while(x) { x /= k; cnt++;//cnt为0的个数}因为这道题的 $ 0 $ 的个数是奇数个,所以我们可以很快的知道 $ k_1,k_3,k_5 \cdots $ 的值。又因为能被 $ k_i $ 整除的数一定能被 $ k $ 整除,所以我们可以...

2019-09-24 21:11:00 143

转载 ZR#989

ZR#989先吐槽一下这个ZZ出题人,卡哈希表。我就不写那个能过的类高精了,直接写哈希的题解解法:判断两个数相加结果是否等于第三个数, 可以直接用 hash判断.#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#inclu...

2019-09-24 21:04:00 151

转载 ZR#988

ZR#988解法:先算出横着能排多少座位, 以及需要排几列, 才能把 n 个座位全部排下来.要使得尽量多的位置在走廊边上, 于是在 n 列中插入走廊的策略是显然的, 我们只要以两列为单位, 在其中插入即可.当然也可以记录下可以插入的最多的走廊数 $ cnt $ ,如果 $ cnt \times 2 $ 大于 $ n $ 的话,那么答案为 $ n $ ,否则答案单独判就行。#...

2019-09-24 21:01:00 96

转载 提高十连测day3

提高十连测day3A我们可以枚举两个 $ 1 $ 之间的相隔距离,然后计算形如 $ 00100100 \cdots $ 的串在原串中最⻓⼦序列匹配即可,复杂度 $ O(n^2) $ 。寻找 $ S $ 在 $ T $ 中的最⻓⼦序列匹配直接贪⼼的扫⼀遍就⾏了。我们可以考虑优化这个过程,快速匹配连续的 $ 0 $ 。只要⼆分找出下⼀个 的匹配位置即可。由于 $ 1 $ 的个数为...

2019-09-18 20:58:00 80

转载 Atcoder ABC 141

Atcoder ABC 141A - Weather PredictionSB题啊,不讲。#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;char ch[50];int main(...

2019-09-17 10:49:00 194

转载 声明

蒟蒻的博客食用声明一只来自SD的蒟蒻瑟瑟发抖本人的博客包含许多OJ题目题解和模拟赛题解。所以OJ题目可以放心随意食用。不过因为蒟蒻的blog里的模拟赛来源广泛,所以不公开,如有需要,请将页面拖至底层并用QQ私信窝。博客左下角有链接,仅QQ能用。转载于:https://www.cnblogs.com/Repulser/p/11510808.html...

2019-09-12 11:05:00 75

转载 ZR#957

ZR#957解法:首先 $ T $ 必须得要是 $ S $ 的子序列,不然不存在好的下标序列,因此一定无解。考虑判断一个串 $ T $ 是不是 $ S $ 子序列的贪心做法:每次从没有匹配的位置中,选择第一个和 $ T_i $ 一样的与 $ T_i $ 进行匹配。设这样得到的下标序列是 $ p_1, p_2, \cdots , p_m $ ,则显然这是一个好的下标序列。从刚刚...

2019-09-11 21:27:00 65

转载 ST表

ST表什么是ST表ST表是一种神奇的数据结构,它虽说有它的短板——不支持修改,但它的特点同样很鲜明——短小精悍,能做到 $ O (n \log n) $的预处理, $ O(1) $ 的单次查询。实现方法:ST表分为预处理和区间查询两个部分,实现起来十分简单。预处理的预处理:由于我们需要每次倍增的运算,所以一定会涉及到多次计算 $ 2^i $ 和 $ \log i $ ,所...

2019-09-10 21:24:00 64

转载 ZR#959

ZR#959解法:对于一个询问,设路径 $ (u, v) $ 经过的所有边的 $ gcd $ 为 $ g $,这可以倍增求出。考虑 $ g $ 的所有质因子 $ p_1, p_2, \cdots , p_k $ ,因为 $ g \leq 10^6 $ ,所以 $ k \leq 7 $ 。则最终的路径的 $ gcd $ 为 $ 1 $,等价于对于每个 $ 1 \leq i \l...

2019-09-09 21:26:00 67

转载 ZR#999

ZR#999解法:一道计数题,看到要求必须 $ m $ 个标号,所有标号至少出现一次的方案。很容易想到可以容斥,但容斥这个东西是一种很神奇的东西,你可以看出来一道题需要容斥,但你就是不知道怎么容斥。原题的等价形式为:总方案减去至少不出现一种玩具的方案数。考虑容斥 , 那么就有$ \bigcup ^ {n} _ {i = 1} A_i = \sum ^ {n} _ {...

2019-09-08 20:41:00 66

转载 ZR#998

ZR#998解法:先把所有物品按照拿走的时间从小到大排序,拿走的时间相同就按照放上去的时间从大到小。那么一件物品上方的物品就一定会在它的前面。考虑 $ dp $ ,设 $ f[i][j] $ 表示 $ i $ 以及 $ i $ 上面物品在所有时刻中最大重量为 $ j $ 时的最大收益。转移的时候,我们需要枚举所有 $ i $ 上面的物品,维护一个 $ g[i] $ 表示时刻 ...

2019-09-08 20:13:00 81

转载 ZR#997

ZR#997解法:找找规律就出来了,全场最简单的一道题。CODE:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define LL long long#define N 100...

2019-09-08 20:09:00 71

转载 ZR#996

ZR#996解法:若删除长度为 $ x $ 的子串后序列中没有相同元素,那么一定有至少一个长度为 $ x+1 $ 的子串,删除它后序列中也没有相同元素。CODE:#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #...

2019-09-08 20:07:00 78

转载 CF1217C

CF1217C题意:给定一个01串,一个good01串的定义是这个01串所代表的二进制数字刚好等于它的长度,允许前导零,问这个01串当中有几个good子串解法:枚举每一段连续的 $ 0 $ ,$ num_0 $ 为 $ 0 $ 的个数,后面的数值为 $ res $ ,只要 $ res \geq len$ , $ len $ 是二进制下区间长度,并且 $ res \leq ...

2019-09-06 21:34:00 69

转载 CF1217B

CF1217B题意:有一个有 $ x $ 个头的龙,你有 $ n $ 种方案,每种方案中包含你可以砍掉的头 $ d_i $ 和龙会生长的头 $ h_i $找到一种方案,使得操作数最少。解法:考虑贪心,因为没有规定每种方案只能使用一次,所以我们可以记录一个最大的 $ d_i - h_i $ ,每次减去这个值。又因为如果我们可以一次砍死龙,龙就不会重新复活,所以记录一个 ...

2019-09-06 21:31:00 76

转载 CF1217A

CF1217A题意:配exp点经验给力量str和智力int,求有多少种分配情况使str比int高解法:打表找规律,没了。CODE;#include <bits/stdc++.h>using namespace std;#define LL long longint T,a,b,c,ans;int main() { scanf("%...

2019-09-06 21:20:00 70

转载 CF1214C

CF1214C题意:给你一个括号序列,问你时候能仅移动相邻的两个元素,使括号序列合法。解法:可以先考虑普通括号序列怎么做这道题只交换相邻的两个元素,所以如果中间左括号和右括号的差值大于2时,括号就不合法。CODE:#include<bits/stdc++.h> using namespace std; #define LL long long...

2019-09-05 21:32:00 101

转载 CF1214B

CF1214B解法:暴力枚举,时间复杂度 $ O(n) $CODE:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath> using namespace std; #define L...

2019-09-05 21:27:00 64

转载 CF1214A

CF1214A题意:有n个卢布,要换成美元和欧元,使手上剩余的卢布最少。一美元价值d卢布,一欧元价值e卢布。解法:可以看成只有两个没有代价的可以无限取的物品的完全背包。CODE:#include<bits/stdc++.h> #define LL long long#define N 100000010 using namespace std;...

2019-09-05 21:23:00 78

转载 CF1214D

CF1214D题意:给你一个 $ n \times m $ 的矩阵,求最少用多少个障碍,将 $ (1,1) $ 到 $ (n,m) $ 的路径堵死。题意:因为可以将起点两边堵死,所以答案最多是 $ 2 $ ,所以答案就只有 $ 0,1,2 $ 。先两遍DFS抠出既能从 $ (1,1) $ 到达又能到达 $ (n,m) $ 的点,看看每个步数内能到达的点是否只有一个。...

2019-09-05 21:15:00 128

转载 P5149 会议座位

P5149 会议座位题意:其实还是求逆序对数。解法:用离散化统计每个数,再用树状数组求逆序对。CODE:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<map>using namespa...

2019-09-05 21:07:00 102

转载 P1908 逆序对

P1908 逆序对题意:给你一个长度为 $ n $ 的数组,求其中的逆序对数量。解法:数据范围很大 $ (n \leq 5 \times 10^5) $ ,所以考虑离散化+树状数组。CODE:#include<iostream>#include<cstdio>#include<cstring>#include<algo...

2019-09-05 21:03:00 65

转载 gym224647B

gym224647B题意:在二维平面中·选出一个面积最小的三角形,输出这个三角形面积的两倍。解法:首先,最优解一定在相邻最近的三个点中产生。然后我们就可以用向量求三角形的面积。CODE:#include<iostream>#include<cstdio>#include<cstring>#include<algori...

2019-09-03 21:17:00 98

转载 ZR#956 集合

ZR#956 集合解法:维护一个异或操作的懒标记,并对应的处理插入、删除和异或操作。接下来考虑如何整体加一。考虑一个数字 $ x $ 变为 $ (x+1) \pmod {2^{30}} $ 的过程,设 $ x $ 在二进制表示下从低位到高位依次为 $ a_1,a_2,a_3 \cdots a_{30} $ ,那么我们可以找一个最小的 $ i $ ,值得 $ a_1=a_2= \...

2019-09-03 21:13:00 87

转载 Atcoder ABC 139E

Atcoder ABC 139E题意:n支球队大循环赛,每支队伍一天只能打一场,求最少几天能打完。解法:考虑抽象图论模型,既然一天只能打一场,那么就把每一支球队和它需要交手的球队连边。求出拓扑序,每次从入度为0的点进行拓扑排序,并把答案加1,删去所有出度,重复该操作。如果形成环的话就无解。CODE:#include<iostream>#includ...

2019-09-02 21:23:00 120

转载 Atcoder ABC 139D

Atcoder ABC 139D解法:等差数列求和公式,记得开 $ long long $CODE:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define LL long l...

2019-09-02 21:15:00 99

转载 Atcoder ABC 139C

Atcoder ABC 139C题意:有 $ n $ 个正方形,选择一个起始位置,使得从这个位置向右的小于等于这个正方形的高度的数量最多。解法:简单递推。CODE:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm> us...

2019-09-02 21:10:00 123

转载 Atcoder ABC 139B

Atcoder ABC 139B题意:一开始有1个插口,你的插排有 $ a $ 个插口,你需要 $ b $ 个插口,问你最少需要多少个插排。解法:暴力模拟。CODE:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>us...

2019-09-02 21:05:00 118

转载 Atcoder ABC 139A

Atcoder ABC 139A题意:给你两个字符串,记录对应位置字符相同的个数 $ (n=3) $解法:暴力枚举。CODE:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm> using namespace std;...

2019-09-02 21:00:00 68

转载 ZR#955 折纸

ZR#955 折纸解法:可以发现折纸之后被折到上面的部分实际上是没有用的,因为他和下面对应位置一定是一样的,而影响答案的只有每个位置的颜色和最底层的坐标范围。因此,我们只需要考虑最底层即可,即我们可以把折纸等效为裁纸,每次去掉较小的那一部分。用哈希维护每一列和每一行的极大回文子串,记录一下行与列的最大值相乘即可。CODE:#include<iostream>...

2019-09-02 20:56:00 74

转载 ZR#954 分组

ZR#954 分组解法:设 $ f[i][a][b] $ 表示考虑了排序后的前 $ i $ 个人,目前已经有 $ a $ 个组配好了,还有 $ b $ 个组只有组员没有组长的最小代价。转移时,考虑当前的人是作为组长,加入一个已经有组员的组,还是作为组员新建一个组即可。然后对于有的人重要程度相同的情况,我们需要想办法继续保证组长在组员的后面。则对于重要程度相同的两个人,我们按照他...

2019-09-02 20:52:00 71

转载 Hdu5178

Hdu5178题意:题目给你N个点,问有多少对点的长度小于K 。解法:首先将所给的坐标从大到小排序,则此题转化为:对排序后的新数列,对每个左边的\(x_a\)找到它右边最远的 $ x_b $ 使得 $ x_a - x_b \leq k $,累计所有的 $ b-a $ 的和即可。具体实现可以使用二分。CODE:#include<iostream>#in...

2019-08-30 22:26:00 390

转载 Hdu 5344

Hdu5344题意:给你一个数组,求所有的 $ a_i + a_j $ 的异或值。解法:因为 $ (a_i+a_j) \bigoplus (a_j + a_i) = 0$ 。所以答案就是 $ \sum_{i=1}^n(2*a_i) $CODE:#include<iostream>#include<cstdio>#include<c...

2019-08-30 22:19:00 61

转载 Hdu5762

Hdu5762题意:你n个点,让你找两个数对,A,B和C,D,使得A和B的曼哈顿距离等于C和D的曼哈顿距离,问是否存在这样的对,A!=C且B!=D。解法:直接暴力判断,时间复杂度是 $ O(n^2) $如果单纯的看数据范围的话好像一定会TLE,但是根据鸽笼原理,保证了在一定的数据范围内一定有合法解出现,这就保证了我们一定不会TLE。CODE:#include&lt...

2019-08-30 22:13:00 94

转载 CF1200C

CF1200C题意:问内圆和外圆分别分成n、m份,每份有标号,问是否可以从一个部分走到另一个部分,12点钟位置一定有个线。解法:如果有一堵墙贯穿1和2,那么会使得两边不连通。这样的墙会显然出现再n或m/最大公约数的处。CODE:#include<iostream>#include<cstdio>#include<cstring&gt...

2019-08-29 20:58:00 100

转载 CF1200B

CF1200B解法:贪心。当在第i列时,尽可能多的取走第i列的木块使得袋子里的木块尽可能多CODE:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std; const int N = 1...

2019-08-29 20:52:00 94

转载 CF1200A

CF1200A解法:给出长度为n的字符串,字符串由'L'、'R'以及数字0~9组成。旅馆有10间房子,L代表客人从左边入住,R代表客人从右边入住,数字则表示第i间房子客人退房了。问经过这n次操作后,现在的旅店入住情况。解法:直接暴力模拟。CODE:#include<iostream>#include<cstdio>#include<...

2019-08-29 20:51:00 112

转载 CF1197C

CF1197C题意:有一个递增的数列,把它分成k段,找到这样的分段方法,即每段最大值减最小值的和最小解法:分成k段,即要加k-1个隔断,这k-1个隔断,能隔开差值最大的几个,那最后得到分隔后的各段最大最小差值和最小CODE:#include<iostream>#include<cstdio>#include<cstring>...

2019-08-28 23:08:00 92

空空如也

空空如也

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

TA关注的人

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