自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2020多校补题

文章目录牛客1AHI牛客2AB牛客3DEF 牛客1 A 1.性质 求出每个后缀对应的b数组,会发现:后缀的b数组,就是在原字符串的b数组的基础上,把一些值改为0。 2.分类讨论 进一步分析发现b数组中,最多存在两个0,所以只要根据0的位置,来判断两个b数组的大小,最后通过改写比较级进行排序就可以了。 3.后缀数组 分类讨论时发现要比较两个后缀的大小,这时就可以套用后缀数组的模板,得到排名,来比较大小。 H 1.判断是否合法 先计算容量为1时的最大流m,当容量变为u/vu/vu/v时,最大流变成m∗u/vm*

2020-07-19 16:08:41 355

原创 Codeforces Round #645 (Div. 2) E. Are You Fired?(递推)

题目链接 传送门 题目大意 一个数组aaa,有nnn个元素,前⌈n2⌉\lceil \frac{n}{2} \rceil⌈2n​⌉个元素是通过一一输入得到的,后⌊n2⌋\lfloor \frac{n}{2} \rfloor⌊2n​⌋个元素全都为xxx,是通过输入xxx得到的。现在要求一个符合题意的kkk:所有长度为kkk的区间,区间和都要大于000 题目分析 首先要得到一个结论:k>⌊n2⌋k > \lfloor \frac{n}{2} \rfloork>⌊2n​⌋,简易证明: 假设kkk

2020-07-09 23:59:52 718

原创 Educational Codeforces Round 88 E. Modular Stability(构造)

题目链接 传送门 题目大意 给出nnn和kkk,计算有多少个数组大小为kkk,数组的值在[1,n][1,n][1,n],且数组元素严格单调递增的“稳定”数组。 稳定数组的定义: 对于任何非负值xxx,满足:无论如何打乱数组aaa中的元素,x%a1%a2%...%akx\%a_1\%a_2\%...\%a_kx%a1​%a2​%...%ak​的值始终保持不变。 题目分析 关键思路:枚举xxx,构造出符合题意的aia_iai​。 具体思路:假设数组aaa中的最小值为amina_{min}amin​,则对于x∈[

2020-06-08 12:31:18 136

原创 Educational Codeforces Round 88 D. Yet Another Yet Another Task(枚举)

题目链接 传送门 题目大意 选一个区间[l,r][l,r][l,r],使得∑l≤i≤rai−max⁡l≤i≤rai\sum \limits_{l \le i \le r} a_i - \max \limits_{l \le i \le r} a_il≤i≤r∑​ai​−l≤i≤rmax​ai​最大。 题目分析 自己的分析: 自然的想法就是枚举最大值aia_iai​,然后看看最大值能延伸的最左边和最右边(单调栈解决),最后再用某数据结构得到区间内的最大子段和。可惜这个数据结构我不知道怎么维护(网上好像用线段树

2020-06-08 00:12:00 125

原创 CF gym 101933 K. Kings Colors(计数dp)

题目链接 传送门 题目大意 题目分析 代码

2020-06-05 12:37:12 200

原创 Codeforces Round #646 (Div. 2) E. Tree Shuffling(树上贪心)

题目链接 传送门 题目大意 一颗大小为nnn,111为根的树,对于每个点,有:花费aia_iai​,原二进制位bib_ibi​,目标二进制位cic_ici​。现在要完成的任务就是:进行多次的操作,使得bib_ibi​等于cic_ici​。 操作:可以从结点uuu为根的子树中,选出任意kkk个结点,然后可以自己排列这kkk个结点的bib_ibi​的值(即安排这些值放的点的位置),代价是k∗a[u]k*a[u]k∗a[u]。 问:要找到最小的代价总和,使得bib_ibi​等于cic_ici​。 题目分析 代码

2020-06-04 10:40:39 113

原创 Educational Codeforces Round 87 D. Multiset(二分)

题目链接 传送门 题目大意 给出一个集合(允许元素重复),大小为nnn。有两种操作: 添加一个元素kkk到这个集合 从集合中删除第kkk小的元素 根据输入执行完所有的操作后,输出任意一个存在于集合中的元素,如果集合为空,则输出000。 题目分析 第一种做法:用数据结构:权值线段树 ororor 平衡树 ororor 树状数组,但是可能会超时,因为nnn的范围:[1,106][1,10^6][1,106] 第二种做法:因为题目只要求:输出一个元素。所以,我们尝试寻找:经过一系列操作后,在集合中的最小元素。

2020-05-24 13:27:29 189

原创 acm做题经验总结(二):枚举与递推

枚举某个量 例1: 计算数组中的最大值 思路:循环遍历数组,每个值都尝试一下。答案显而易见。这几乎是最简单的枚举。从中可以得到枚举的一般思路:把所有的情况都试一遍,然后取符合要求的那一个(一般可以贪心)作为答案。 同时,我们也可以从“递推”的角度,思考这道问题的解决方式: 假如已经知道前i−1i-1i−1项的最大值为ansansans,现在,要得到前iii项的最大值,是不是要和数组的第iii项...

2020-04-06 00:05:59 489

原创 acm做题经验总结(一):开始

前言 缘由 虽然标题是做题经验总结,但是,这同时也是我的做题思路总结:为什么这道题要这样想?怎么想到这样解决的。其实我在大一刚学完各种算法后,就有这种疑惑:如何找到正确的解题思路。当然,有人会说,直接做多一点题就可以了。对,没错,事实的确如此,拼命做题是最暴力的方法。但一定高效吗?不一定。自己做题时往往会发现这样的问题:自己看完这道题,感觉好像有点思路,应该是套这个算法,但是想了想又对劲,之后又...

2020-04-06 00:04:08 299

原创 我的博客园

以后应该都是在博客园写博客了,所以: 传送门

2019-02-26 16:06:11 133

原创 acm中常用的C++语法和特性

输入和输出: 头文件和名称空间(不懂百度或直接复制代码,只是格式而已) #include <iostream> using namespace std; 输入输出语法: int a; //或是long long a; double a; char a[10]; 等等,总之不需要像c语言一样要占位符 cin >> a; //输入 cout &

2019-01-29 18:00:08 669

原创 递归的应用:dfs

递归 递归是什么?绝大部分人都会说:自己调用自己,刚开始我也是这样理解递归的。确实没错,递归的确是自己调用自己。递归简单的应用:编写一个能计算斐波那契数列的函数,也就是这样: int fac(int n){ if(n == 1 || n == 2) return 1; return fac(n-1) + fac(n-2); } 相信绝大部分人都能看懂这段代码。递归除了可以用自己调用...

2019-01-29 16:54:49 1066

原创 浅谈二分~~

引入 大家小时候应该玩过这样一个游戏:小伙伴心中想一个1-1000的数,然后另一个小伙伴猜这个数是多少,每次小伙伴回应这个猜的数是比实际的数大还是小,最后肯定能在十次以内找到这个数。在这里就是用到了二分的思想:折半查找,每次找那个数时都取区间的一半,比实际的数要大, ...

2019-01-27 16:54:56 219

空空如也

空空如也

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

TA关注的人

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