[POI2015]LOG】的更多相关文章

今天考试考了这题,所以来贡献\([POI2015]LOG\)的第一篇题解.代码略丑,调了快三个小时才调出来\(AC\)代码. 对于这种小清新数据结构题,所以我觉得树状数组才是这道题的正确打开方式. 首先离散化,这样才不会爆内存.开两个树状数组,第一个树状数组记录离散化后\(1\)到\(i\)中数字出现的个数,第二个树状数组离散化前\(1\)到\(i\)数字出现值的和.把所有询问都读入进来,对于每次操作: 操作\(1\):单点修改,若之前的数是正数,第一个树状数组\(-1\),第二个树状数组\(-…
P3586 [POI2015]LOG 维护一个长度为n的序列,一开始都是0,支持以下两种操作:1.U k a 将序列中第k个数修改为a.2.Z c s 在这个序列上,每次选出c个正数,并将它们都减去1,询问能否进行s次操作.每次询问独立,即每次询问不会对序列进行修改. 离散化按照权值建立树状数组. 那么对于大于s的值,可以直接减去s,这一部分的贡献为\(c*(query_{geshu}(tot)-query_{geshu}(s-1))\). 剩下的数,我们只知道他们小于s,但是不知道确切的值所以…
P3586 [POI2015]LOG 题目描述 维护一个长度为n的序列,一开始都是0,支持以下两种操作:1.U k a 将序列中第k个数修改为a.2.Z c s 在这个序列上,每次选出c个正数,并将它们都减去1,询问能否进行s次操作.每次询问独立,即每次询问不会对序列进行修改. 输入输出格式 输入格式: 第一行包含两个正整数n,m(1<=n,m<=1000000),分别表示序列长度和操作次数.接下来m行为m个操作,其中1<=k,c<=n,0<=a<=10^9,1<…
题意 题目链接 Sol 显然整个序列的形态对询问没什么影响 设权值\(>=s\)的有\(k\)个. 我们可以让这些数每次都被选择 那么剩下的数,假设值为\(a_i\)次,则可以\(a_i\)次被选择 一个显然的思路是每次选最大的C个 那么只需要判断\(\sum a_i >=(c - k)*s\)即可 权值线段树维护一下 #include<bits/stdc++.h> #define Pair pair<int, int> #define MP(x, y) make_pa…
题目 发现询问是针对整个区间,也就是说位置什么用都没有 发现我们需要构造出\(s\)个长度为\(c\)的数列,每个数只能在一个数列中出现一次,且一个数最多的使用次数是其大小 对于那些大于等于\(s\)的数,我们让这些数在每一个数列里都出现就好了,如果这样的数有\(val\)个,相当于我们要构造的数列的长度变成了\(c-val\) 对于小于\(s\)的数我们可以让这些数在每一个数列里尽量出现,看一下这些数的和是否能充满剩下的\(s\times(c-val)\)个位置就好了 树状数组维护一下就好了…
考虑离散化后开权值线段树. 设序列中不小于$s$的数有$cnt$个,小于$s$的数的和为$sum$. 那么操作Z能成功的充要条件是$sum \geq (c - cnt) * s$. 如果序列中不小于$s$的数超过了$c$个,那么直接每一次都选这些数就好了. 如果没有超过$c$个的话,这$cnt$个数每一次都要选,然后再贪心地取剩下的数中最大的就行了. 需要把询问中出现的$a, s$和$0$一起离散化. 细节没想清楚WA好久 膜Claris Code: #include <cstdio> #in…
传送门 对于询问,首先如果正数数量不到 $c$ 个显然无解 然后如果大于等于 $s$ 的数大于等于 $c$ 个,那么显然有解 否则,考虑贪心地取数,首先初始大于等于 $s$ 的哪些数我们每次取都可以取到,所以直接把 $c-cnt$ ,其中 $cnt$ 是初始大于等于 $s$ 的数的个数 然后考虑剩下的哪些数的情况如何才能保证最终有解 发现剩下的数似乎只要总和大于等于 $c*s$ 就一定有解,证明可以这样考虑: 把剩下的数拆成若干个 $1$ 并重新组合,最终一定可以组合出 $c$ 个值为 $s$…
由于博主没有BZOJ权限号, 是在洛咕做的题~ 完成了13题(虽然有一半难题都是看题解的QAQ)剩下的题咕咕咕~~ Luogu3585 [POI2015]PIE Solution 模拟, 按顺序搜索, 把搜索到的需要印却没有印的点 和 印章的第一个点重合, 并印上. 另外, 纸上需要印的点 和 印章上沾墨水的点用数组储存, 能加快很多 Code #include<cstdio> #include<cstring> #include<algorithm> #include…
Day 1 3月有31天废话 今天先颓过了就只剩30天了 初步计划 每天一道字符串/数据结构题 图论学习 根据<若干图论模型探讨>(lyd)复习 二分图与网络流学习 <算法竞赛进阶指南>剩余std 虚树学习 动态规划学习 DP优化学习 特殊DP学习(排名不分先后):插头DP.计数DP.数位DP.概率期望DP.基环树DP.动态DP Day 2 吐槽一句今天的数据结构题P2824 [HEOI2016/TJOI2016]排序-- 数据是真水,纯暴力拿80 然后就不想想正解了......…
[POI2015]LOG 维护一个长度为n的序列,一开始都是0,支持以下两种操作:1.U k a 将序列中第k个数修改为a.2.Z c s 在这个序列上,每次选出c个正数,并将它们都减去1,询问能否进行s次操作.每次询问独立,即每次询问不会对序列进行修改. n<=1e6 修改数值不好掌握.我们离线读入询问,把所有的s,a离散化下来. 发现,对于一个Z c s,我们只要判断能不能操作.所以只关心大小关系. 大于等于s的数可以在s次中都参与贡献,小于s的数只能部分参与贡献. 设cnt为不小于s的数的…