
adHoc
FrostMonarch
这个作者很懒,什么都没留下…
展开
-
leetcode 1248 优美子数组(滑窗)
题目大意:有一串数an,an由0和1组成,问我们包含k个1的连续子数组的个数是多少?解题思路:一开始想用前缀和,发现不会用。后来发现其实只要把1的位置拿下来然后对这个数组做一个滑窗就可以得到结果。废话:这里我们留意一下双指针的公式,因为双指针非常常用,例如这里的滑窗,所以我们为了快速从已知两个指针的位置和两个指针指向的位置长度中的两者推出剩下一个,我们有必要背一下以下公式:...原创 2019-11-14 18:53:22 · 228 阅读 · 0 评论 -
洛谷 P1114 非常男女(线性结构)
题目大意:一连串的0和1,我们问最长的01个数相等的连续串 最长是多少解题思路:这里用一个结构做一个转换,我们每次遇到0可以让sum-1,遇到一个1可以sum+1。记录下sum在每个位置的值。然后sum值相等的位置例如j和i,让j-i就是答案。但是注意在第0个位置那里,我们让sum=0.废话:+1 -1 这种trick是常用的结构。在括号匹配里面也会经常遇到,需要重点留意#i...原创 2019-11-09 19:45:31 · 287 阅读 · 0 评论 -
codeforces ECR 74 AB-string(找规律)
题目大意:有一字符串,我们定义好的字符串为:它的每一个字符都可以找到那个字符所在的子串的回文串。现在问这个字符串有多少个好的字符串。解题思路:首先,我们考虑事件的对立事件。有多少坏的字符串。我们发现一个字符串是坏的,当且仅当出现一个坏的字符在某个串的左右端点。为什么呢?考虑一个字符串,它中间的字符只可能有两种情况。首先:str[i] == str[i-1] || str[i]== st...原创 2019-11-05 15:50:13 · 167 阅读 · 0 评论 -
Codefoces ECR67 Vasya And Array(并查集 adhoc 构造性算法)
题目大意:有一个数列,已知其中有上升必定上升的连续子串,还有非连续上升的连续子串,问这样的数列是否存在。解题思路:首先,我们思考什么时候输出NO,这个问题的几个思考点就是区间重叠和区间不重叠,所以我们从这里入手的话发现,若非连续上升区间在必定上升区间中,此时一定要输出NO,其它情况都可以输出YES,要实现这个,我们可以用并查集,把上升区间的子串作为一个集合,若非连续上升区间的元素都在这...原创 2019-07-02 11:27:04 · 296 阅读 · 0 评论 -
codeforces 562 div2 Increasing by Modulo(贪心,二分)
题目大意:有一串数字An,这些数字的范围是0-m-1,然后我们有一种操作:每次可以选择任意个数字,每个数字Aith可以Aith=(Aith+1)%m问我们最少对每个数字 进行多少次的操作,可以使得这些数字单调不减。每个数字的操作次数相同。解题思路:这种贪心题一般都有个特点,就是往往有一个最优的边界,然后我们证明可以达到这个最优边界。在这里我们得出最多m-1次操作可以使得这些数字单调...原创 2019-07-07 13:01:36 · 177 阅读 · 0 评论 -
Codeforces Global Round 4 prime graph(素数筛 构建型算法)
题目大意:给你一个n,问能不能产生一个图,变数是素数,同时每个顶点的度数都是素数解题思路:构造性算法,有一个major hints就是[n,3/2n]区间内必有一个质数。所以我们可以构造一个圈,然后假如这个圈不是质数的话,我们连接边i<->i+n/2,构造出最临近的一个质数即可。这种构造可以满足题目的要求。至于素数筛,可以看这个网站的介绍: https://www.geek...原创 2019-07-24 13:10:28 · 181 阅读 · 0 评论 -
洛谷 P1088 火星人(乱搞)
题目大意:已知有一串数字,问在原来的数字串的字典序加m后,应该输出多少解题思路:最简便的做法是用next_permutation,这个生成的全排列可以按照字典序递增,这里我用的是搜索的方法。首先我从后往前搜,一直记录最大值,假如遇到比最大值小的数记为A[j],停止搜索,当前,证明我们可以进行一次交换从而达到加一的效果,那么要找哪个数来完成加一呢?我们再进行同样的搜索过程,记录下比A[j...原创 2019-08-03 10:38:07 · 263 阅读 · 0 评论 -
洛谷 P1996 约瑟夫问题
问题简介:小朋友围城一圈,从1号开始报数,报到M的那位同学出局,然后下一位同学报1,循环上述过程直到所有同学出局。输出 依次出局的小朋友的号码解题思路:没什么好说的,就是模拟,出局我们可以不用真的删除,打个标记就行废话:先想清楚什么时候打标记再做,不要急着动手。#include <bits/stdc++.h>using namespace std;in...原创 2019-08-03 12:51:20 · 175 阅读 · 0 评论