题目链接: http://172.16.0.132/senior/#main/show/4307 题目: 解题报告: 题目询问我们没出现坏对的连续区间个数 我们考虑从左到有枚举右端点$r$,判断$a[r]$是否在当前的区间中形成了坏对,如果有的话就$l++$.每次就累加上$r-l+1$,表示左端点取$[l,r]$都可以 考虑维护一个桶来快速判断是否存在坏对 时间复杂度没仔细算 #include<algorithm> #include<iostream> #include<cs…
4298. [NOIP2015模拟11.2晚]我的天 (File IO): input:ohmygod.in output:ohmygod.out Time Limits: 1000 ms Memory Limits: 262144 KB Description 很久很以前,有一个古老的村庄--xiba村,村子里生活着n+1个村民,但由于历届村长恐怖而且黑暗的魔法统治下,村民们各自过着独立的生活,完全没有意识到其他n个人的存在. 但有一天,村民xiba臻无意中也得到了魔法,并发现了这个恐怖的事实…
[NOIP2015模拟11.5]JZOJ8月5日提高组T2 Lucas的数列 题目 PS:\(n*n*T*T<=10^{18}\)而不是\(10^1*8\) 题解 题意: 给出\(n\)个元素的复杂度和位置 然后每次询问一个区间 每次询问给出\(x,y,z\) 求\(x\)到\(y\)中复杂度小于等于\(z\)的元素的位置按照一定计算过程后的答案(具体见题面) 分析: 看到题目给出的式子十分的繁琐 我们来化简一下 \[K=(\sum_{i=1}^m(x_i-p)^2)*m=(\sum_{i=1}…
[NOIP2015模拟11.5]JZOJ8月5日提高组T1 俄罗斯套娃 题目 题解 题意就是说 将1~\(n\)排列,问有多少种方案使得序列的逆序对个数小于\(k\) 很容易想到DP 设\(f[i][j]\)表示当前到了插入第\(i\)个数,有\(j\)个逆序对的排列方案数 转移显然 \(f[i][j]=\sum_{k=j-i+1}^jf[i-1][k]\) 显而易见,这个转移是\(O(n^2k)\)的,会只有\(60\%\) 那么思考优化 既然是求和,为什么不用前缀和呢 所以可以用一个数组来记…
[NOIP2015模拟11.2晚]JZOJ8月4日提高组T2 我的天 题目 很久很以前,有一个古老的村庄--xiba村,村子里生活着n+1个村民,但由于历届村长恐怖而且黑暗的魔法统治下,村民们各自过着独立的生活,完全没有意识到其他n个人的存在.但有一天,村民xiba臻无意中也得到了魔法,并发现了这个恐怖的事实.为了反抗村长,他走遍了全世界,找到了其他n个村民,并组织他们发动革命.但让这n个素不相识的村民(xiba臻已跟他们认识)同心协力去抵抗村长是很困难的,所以xiba臻决定先让他们互相认识.这…
[NOIP2015模拟11.4]JZOJ2020年8月6日提高组T2 最优交换 题目 题解 题意 有一个长度为\(n\)的正整数 最多可以进行\(k\)次操作 每次操作交换相邻两个位置上的数 问可以得到的最大的数是多少 分析 很容易想到贪心 对于第\(i\)个位置 肯定要放\(i\)~\(i+k\)中最大的那个数才是最优的 由于本题数据范围不大 那么就可以暴力找数然后暴力修改 每次操作过后\(k\)要减去移动的长度 Code #include<cstdio> #include<cstri…
[NOIP2015模拟11.4]JZOJ8月6日提高组T1 刷题计划 题目 题解 题意 有\(n\)道题,编号为1~\(n\) 给出\(m\)次操作 每次操作有3种类型 1 \(x\) 表示交了\(AC\)的代码在编号为\(x\)的题 2 \(x\)表示交了没有\(AC\)的代码在编号为\(x\)的题 3 表示询问当前做过的题目中从来没有\(AC\)的题,晚交的先输出 对于每个3询问,输出前20个 分析 既然\(m\)只有100 那为什么不打暴力呢 对于每种操作 是1的话给题目打个\(AC\)标…
[NOIP2015模拟11.5]JZOJ8月5日提高组T3 旅行 题目 若不存在第\(k\)短路径时,输出"Stupid Mike" 题解 题意 给出一个有\(n\)个点的树 问这\(n\)个点两两之间经过道路为奇数的第\(k\)短的路径长度是多少 路径长度特别定义(见题面) 分析 根据题目 很显然当两个点之间的道路为奇数时 肯定一个点的深度是奇数,另一个是偶数 再看一下路径 一条合法路径长度:\(x-x+x-x+x\)--(不要管数字,只注意符号) 可以发现,开头和结尾都是\(+\)…
题解 \(by\;zj\varphi\) 一道很有趣的题,我用的动态开点线段树和倍增 首先对于第一问,不难想到要二分,二分时间,因为时间长一定不会比时间短能跑的人多 那么如何 check,先将所有老司机按初始坐标排个序,之后将每个老司机跑的距离加上,那么就是对之后的序列求一个 \(\rm LIS\) 求这个长度可以用树装数组维护值域,而求这个字典序最小的序列就需要用到倍增:类似于树上倍增,对于 \(i,j\) 的序列,他们在相同的一位之前一定是一样的,而之后哪个的最小值小,那个就更优 我们对于序…
题目 你知道Just Odd Inventions社吗?这个公司的业务是"只不过是奇妙的发明(Just Odd Inventions)".这里简称为JOI社. JOI社有N名员工,编号从1到N.所有员工的工作时间从时刻0持续到时刻M,时刻0和时刻M的时候,所有员工都必须在公司内. 某天,出于巧合,JOI社的每个员工都要出行恰好一次.员工i(1<=i<=N)在时刻Si离开公司,时刻Ti回到公司.同一时刻不会同时有两名以上的员工离开或回到公司. JOI社的入口处有一扇巨大的门,…