Luogu P5309 [Ynoi2012]D1T1】的更多相关文章

小清新分块题,从头到尾都十分套路,和CXR大佬一起YY了一下就出来了 首先套路地设个阈值\(S\),把修改的\(x\)分成大于\(S\)和小于等于\(S\)两部分,然后我们考虑分别求解这两部分 \(x>S\) 这个应该是比较简单的一部分了吧,我们考虑到此时要修改的数也就\(\frac{n}{x}\)个,所以可以大力修改 但是如果用树状数组这样的东西来维护区间和那么复杂度就是修改\(\frac{n}{x}\cdot\log n\)的,而询问只有\(O(\log n)\),很不平衡 所以我们套路地用…
https://www.luogu.org/problem/P5524 看着能做就当线段树复健题了. 根据高中知识我们有 $sin(a+b)=sin(a)cos(b)+cos(a)sin(b)$ $cos(a+b)=cos(a)cos(b)-sin(a)sin(b)$ 那这题只需要维护区间$sin$和与$cos$和的线段树就好了,完后区间加的更新方法如上. 但是比较卡常,建议标记永久化,并且减少求$sincos$的次数.(反正我开O2过了就不管了233) ~~我真的是连线段树都不会敲了我乱pus…
点此看题面 大致题意: 两种操作,区间求和,将形如\(ax+y\)的位置的元素值加\(z\). 分块 这种题目显然就是按照\(x\)与\(\sqrt n\)的大小关系来分块. 对于\(x>\sqrt n\),我们用分块来实现单点修改,区间求和. 对于\(x\le\sqrt n\),我们考虑枚举\(x\),则可发现每次询问都由若干长度为\(x\)的完整的段和最后一小段不完整的段组成. 那么我们可以对于\(x\),维护一个前缀和数组,然后每次就相当于求出整段和的若干倍加上其中一部分的值(这可以用前缀…
题目 套路的根号分治啊 我们设置一个值\(S\) 对于\(S\leq x\)的操作,我们直接暴力修改,显然这样只会修改\(\frac{n}{S}\)次,所以我们需要一个能够\(O(1)\)修改的数据结构,自然是首选分块 对于\(S>x\)的操作,我们对于每一个\(x\)维护一个块,我们维护这个块的前缀和就好了,复杂度是\(O(S)\)的 查询的时候先用分块查一下区间和,复杂度\(O(S+\frac{n}{S})\),之后对于每一个\(x<S\)的块我们单独\(O(1)\)求一下,复杂度是\(O…
原题传送门 lovelive好评 比赛时只拿到了60pts,还是自己太菜了 这题的思想实际有点像Luogu P3674 小清新人渣的本愿与Luogu P5071 [Ynoi2015]此时此刻的光辉 这题没有修改操作,我们像P3674一样考虑bitset 要求首项小于b且公差为b的等差数列的最大长度 把原序列分成n/b段,每一位表示是否存在 把所有的一个一个&起来就珂以判断答案了 但是,我们发现当b很小的时候,复杂度就能被卡成\(O(n^2)\) 像P5071一样考虑当b较小时,单独处理 当b值一…
题目链接:https://www.luogu.org/problemnew/show/P1351 做了些提高组的题,不得不说虽然NOIP考察的知识点虽然基本上都学过,但是做起题来还是需要动脑子的. 题目质量很高吧,觉得出的很有水平 (除了2017 d1t1 70分: 三层枚举强制到距离为2 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using n…
题目背景 2017国庆清北D1T1 题目描述 你是能看到第一题的 friends 呢. ——hja 何大爷对字符串十分有研究,于是天天出字符串题虐杀 zhx.何大爷今天为 字符串定义了新的权值计算方法.一个字符串由小写字母组成,字符串的权值 被定义为其中出现次数最多的字符的次数减去出现次数最少的字符的次数. (注 意,在讨论出现最少的字符的时候,该字符必须至少出现一次)现在何大爷给 你一个字符串,何大爷想知道这个字符串的所有子串中权值最大的权值是多 少? 输入输出格式 输入格式: 第一行一个整数…
虽然有点久远  还是放一下吧. 传送门:https://www.luogu.org/contest/show?tid=754 第一题  沉迷游戏,伤感情 #include <queue> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; ],last,now,sum[],s; deque<lon…
题目链接:http://www.luogu.org/problem/show?pid=1268#sub -------- 这道题费了我不少心思= =其实思路和标称毫无差别,但是由于不习惯ACM风格的题目,没有打答案之间的换行,wa了好几次 解决所有"构造"问题都要按照如下的步骤: 寻找特例.特征 建立模型 一般化模型 寻找特例 (1) 我们假设结点数为1,显然答案为0,因为这棵树的边集为空. (2) 当结点数为2时,答案就是d[1][2],即(1,2)的距离. (3) 当结点数为3时呢…
题目传送门:https://www.luogu.org/problem/show?pid=2170 题目描述 老师想从N名学生中选M人当学霸,但有K对人实力相当,如果实力相当的人中,一部分被选上,另一部分没有,同学们就会抗议.所以老师想请你帮他求出他该选多少学霸,才能既不让同学们抗议,又与原来的M尽可能接近 输入输出格式 输入格式: 第一行,三个正整数N,M,K. 第2...K行,每行2个数,表示一对实力相当的人的编号(编号为1-N) 输出格式: 一行,表示既不让同学们抗议,又与原来的M尽可能接…