返回顶部
摘要: 题意:给你一个数组a,询问m次,每次返回长度为k的和最大的子序列(要求字典序最小)的pos位置上的数字. 题解:和最大的子序列很简单,排个序就行,但是题目要求字典序最小,那我们在刚开始的时候先记录每个数的位置再排序,然后选出k个最大的数后在对位置从小到大排个序就行了(这题有个坑,第一次排序的时候记得 阅读全文
posted @ 2020-04-26 12:24 Rayotaku 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一个数组a,定义:若a[i]>a[i]&&a[i]>a[i-1],则a[i]为峰值,求长度为k的区间内峰值最多能为多少,并输出这个区间的左端点(区间需要将峰的左边和右边都包括) 题解:记录每个峰值,然后搞一个后缀和,从前往后枚举长度为k的区间,每次维护一下最多的峰值和区间位置即可. tip 阅读全文
posted @ 2020-04-25 00:01 Rayotaku 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一个长度为偶数n的数组,每次可以将一个元素修改为不大于k的值,要求每个a[i]+a[n-i+1]都相等,求最少操作多少次 题解:假设每一对的和都为sum,小的记为mn,大的记为mx; 枚举[2,2*k]的所有数x: 我们对每一对相应的数考虑,有三种情况:改一个数,改两个数,不改 1.改一个 阅读全文
posted @ 2020-04-22 12:42 Rayotaku 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 传送门:最长回文 题意:给你两个长度相等的字符串A和B,从A中选择一个可以为空的子串A[l1..r1],从B中选一个可以为空的子串B[l2..r2],满足r1=l2.然后把他们拼接在一起,求操作后的最长回文串的长度. 题解:我们可以先对A和B进行manacher(马拉车)预处理,然后我们枚举回文中心 阅读全文
posted @ 2020-04-19 16:26 Rayotaku 阅读(320) 评论(0) 推荐(0) 编辑
摘要: 传送门:C. Linova and Kingdom 题意:给你一棵树,要求对k个结点涂色,然后统计每个未涂色结点到根结点的路径上未涂色结点的和,求和最大能为多少 题解:对着样例画几遍,然后贪心发现,最优解一定是当前结点的深度减去它的子结点个数大的来涂色,然后直接就建树进行dfs就行了,其实这道题可以 阅读全文
posted @ 2020-04-19 16:09 Rayotaku 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 1.扩展欧几里得算法 代码: 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <string.h> 5 #include <math.h> 6 #include <algorithm> 7 #incl 阅读全文
posted @ 2020-04-15 13:12 Rayotaku 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 1.快速幂 代码: 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <string.h> 5 #include <math.h> 6 #include <algorithm> 7 #include < 阅读全文
posted @ 2020-04-15 12:40 Rayotaku 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 1.欧拉函数 代码: 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <string.h> 5 #include <math.h> 6 #include <algorithm> 7 #include 阅读全文
posted @ 2020-04-15 11:56 Rayotaku 阅读(350) 评论(0) 推荐(0) 编辑
摘要: A. Filling Diamonds 题意:给你n个菱形方块,问能构成图示形状的有多少种 题解:自己画几个不难发现答案是n 代码: 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cmath> 5 阅读全文
posted @ 2020-04-13 11:48 Rayotaku 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 传送门:D - RGB Triplets 题意:给你一个只含‘R’,‘G’,‘B’的字符串,求有多少个长度为3且每个字符都不相等,并且第一第二和第二第三的区间长度不同的子序列. 题解:统计每个字符各有多少,算出所有两两不同的子序列个数然后减去区间长度相等的个数即可 代码: 1 #include <i 阅读全文
posted @ 2020-04-13 00:51 Rayotaku 阅读(510) 评论(2) 推荐(0) 编辑