题面 https://www.lydsy.com/JudgeOnline/upload/201610/statements(1).pdf 题解 好神仙的贪心-- 首先无解的情况很容易判断,就是\(l=0\)且\(s\neq 1\)或者\(l=n-1\)且\(s\neq n\),显然了 我们考虑先往左跳再往右跳,那么肯定得先把左边所有能跳的跳完,如果\(l<s\),那么最优解肯定是一直往左跳直到次数不够为止,留下最后一次往左跳的次数跳到最左边,不断往右跳玩剩下的就行了 然而有可能\(l\geq s…
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> using namespace std; #define maxn 100005 #define maxk 256 int n,type,ans,sum,a[maxn],f[maxk][maxk],g[maxk][maxk]; bool v[maxk]; ];…
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #include <string.h> #include <time.h> #include <stdlib.h> #include <string> #include <bitset> #include <vector> #include <…
A:平均数 题意:有一天,小 A 得到了一个长度为 n 的序列. 他把这个序列的所有连续子序列都列了出来,并对每一个子序列都求了其平均值,然后他把这些平均值写在纸上,并对它们进行排序,最后他报出了第 k 小的平均值.你要做的就是模仿他的过程. 做法:因为题目中的k很大,所以考虑二分答案,问题就是转化有多少个子序列的平均值小于等于k,我们把每个序列用mid减去它,然后维护一个前缀和,问题就变成了求这个前缀和数组的逆序对数,用归并排序或树状数组+离散化维护即可. B:涂色游戏 题意:小A和小B在做游…
A: Divisors 题意:给定 m 个不同的正整数 a 1 ,a 2 ,...,a m ,请对 0 到 m 每一个 k 计算,在区间 [1,n] 里有多少正整数 是 a 中恰好 k 个数的约数. n,ai<=10^9,m<=200 做法:每个数的约数个数为sqrt(n)级别的,所以一共有msqrt(ai)个,对于计算答案,用哈希表判重计算即可. B:Market 题意:在比特镇一共有 n 家商店,编号依次为 1 到 n.每家商店只会卖一种物品,其中第 i 家商店的物品 单价为 c i ,价…
A:String Master 题目:所谓最长公共子串,比如串 A:"abcde",串 B:"jcdkl",则它们的最长公共子串为串 "cd",即长 度最长的字符串,且在两个串中都作为连续子串出现过.给定两个长度都为 n 的字符串,对于字符串大师的你来说,求它们的最长公共子串再简单不过了.所以现在你有 k 次修改机会,每次你可以选择其中某个串的某个位置,将其修改成任意字符.你需要合理使用这 k 次修改机会,使得修改之后两个串的最长公共子串最长.相…
Claris大爷出的一套模拟题.问别人要到了一份题,加深了自己NOIp要滚粗的感觉. Matser zzDP题,我只能说我第一遍写的时候还写崩了QAQ. //master //by Cydiater //2016.10.21 #include <iostream> #include <cstdlib> #include <cstdio> #include <cstring> #include <string> #include <algor…
思路:考虑建立可持久化线段树,第一层维护的是i这个位置的next位置,第二层,维护的是接下来走这个字符会到哪个节点. 感觉很巧妙啊,不愧是Claris #include<algorithm> #include<cstdio> #include<cmath> #include<cstring> #include<iostream> ],l[],r[],sz; ],root[]; int read(){ ,f=;char ch=getchar();…
#include<cstdio> #include<cstring> #include<cmath> #include<iostream> #include<algorithm> ][],n,type,V[],g[][],ans,cnt; ]; int read(){ ,f=;char ch=getchar(); ;ch=getchar();} +ch-';ch=getchar();} return t*f; } int fun(int x,in…
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> using namespace std; #define maxn 100005 #define maxk 4000005 ],R[maxn][]; void read(int &x){ x=; ; char ch; ; +ch-'; x*=f; }…