题目

发现询问是针对整个区间,也就是说位置什么用都没有

发现我们需要构造出\(s\)个长度为\(c\)的数列,每个数只能在一个数列中出现一次,且一个数最多的使用次数是其大小

对于那些大于等于\(s\)的数,我们让这些数在每一个数列里都出现就好了,如果这样的数有\(val\)个,相当于我们要构造的数列的长度变成了\(c-val\)

对于小于\(s\)的数我们可以让这些数在每一个数列里尽量出现,看一下这些数的和是否能充满剩下的\(s\times(c-val)\)个位置就好了

树状数组维护一下就好了

代码

#include<algorithm>
#include<cstdio>
#define LL long long
#define lowbit(i) ((i)&(-i))
#define re register
#define maxn 1000005
inline int read() {
char c=getchar();int x=0;while(c<'0'||c>'9') c=getchar();
while(c>='0'&&c<='9') x=(x<<3)+(x<<1)+c-48,c=getchar();return x;
}
int n,m,sz;
char opt[maxn][2];
int a[maxn],b[maxn],c[maxn],pos[maxn];
struct Bit {
LL t[maxn];
inline void add(int x,int val) {for(re int i=x;i<=sz;i+=lowbit(i)) t[i]+=val;}
inline LL ask(int x) {LL now=0;for(re int i=x;i;i-=lowbit(i)) now+=t[i];return now;}
}B[2];
inline int find(int x) {
int l=1,r=sz;
while(l<=r) {
int mid=l+r>>1;
if(c[mid]==x) return mid;
if(c[mid]>x) r=mid-1;else l=mid+1;
}
return 0;
}
int main() {
n=read(),m=read();
for(re int i=1;i<=m;i++) scanf("%s",opt[i]),a[i]=read(),b[i]=read(),c[i]=b[i];
std::sort(c+1,c+m+1),sz=std::unique(c+1,c+m+1)-c-1;
for(re int i=1;i<=m;i++) {
int x=find(b[i]);
if(opt[i][0]=='U') {
if(pos[a[i]]) B[0].add(pos[a[i]],-1),B[1].add(pos[a[i]],-1*c[pos[a[i]]]);
B[0].add(x,1),B[1].add(x,b[i]);pos[a[i]]=x;
}
else {
a[i]-=B[0].ask(sz)-B[0].ask(x-1);
if(a[i]<=0) {puts("TAK");continue;}
if(B[1].ask(x-1)>=(LL)a[i]*(LL)b[i]) puts("TAK");
else puts("NIE");
}
}
return 0;
}

[POI2015]LOG的更多相关文章

  1. [POI2015]LOG(树状数组)

    今天考试考了这题,所以来贡献\([POI2015]LOG\)的第一篇题解.代码略丑,调了快三个小时才调出来\(AC\)代码. 对于这种小清新数据结构题,所以我觉得树状数组才是这道题的正确打开方式. 首 ...

  2. 树状数组【洛谷P3586】 [POI2015]LOG

    P3586 [POI2015]LOG 维护一个长度为n的序列,一开始都是0,支持以下两种操作:1.U k a 将序列中第k个数修改为a.2.Z c s 在这个序列上,每次选出c个正数,并将它们都减去1 ...

  3. 洛谷 P3586 [POI2015]LOG

    P3586 [POI2015]LOG 题目描述 维护一个长度为n的序列,一开始都是0,支持以下两种操作:1.U k a 将序列中第k个数修改为a.2.Z c s 在这个序列上,每次选出c个正数,并将它 ...

  4. 洛谷P3586 [POI2015]LOG(贪心 权值线段树)

    题意 题目链接 Sol 显然整个序列的形态对询问没什么影响 设权值\(>=s\)的有\(k\)个. 我们可以让这些数每次都被选择 那么剩下的数,假设值为\(a_i\)次,则可以\(a_i\)次被 ...

  5. Luogu 3586 [POI2015]LOG

    考虑离散化后开权值线段树. 设序列中不小于$s$的数有$cnt$个,小于$s$的数的和为$sum$. 那么操作Z能成功的充要条件是$sum \geq (c - cnt) * s$. 如果序列中不小于$ ...

  6. P3586 [POI2015]LOG

    传送门 对于询问,首先如果正数数量不到 $c$ 个显然无解 然后如果大于等于 $s$ 的数大于等于 $c$ 个,那么显然有解 否则,考虑贪心地取数,首先初始大于等于 $s$ 的哪些数我们每次取都可以取 ...

  7. POI2015 解题报告

    由于博主没有BZOJ权限号, 是在洛咕做的题~ 完成了13题(虽然有一半难题都是看题解的QAQ)剩下的题咕咕咕~~ Luogu3585 [POI2015]PIE Solution 模拟, 按顺序搜索, ...

  8. HBSX2019 3月训练

    Day 1 3月有31天废话 今天先颓过了就只剩30天了 初步计划 每天一道字符串/数据结构题 图论学习 根据<若干图论模型探讨>(lyd)复习 二分图与网络流学习 <算法竞赛进阶指 ...

  9. POI 2018.10.27

    [POI2015]LOG 维护一个长度为n的序列,一开始都是0,支持以下两种操作:1.U k a 将序列中第k个数修改为a.2.Z c s 在这个序列上,每次选出c个正数,并将它们都减去1,询问能否进 ...

随机推荐

  1. No Mapping For GET "xxx.do"

    今天写的一个form表单提交时总是报错找不到mapping,form如下: <form action="toUpdate.do" method="post" ...

  2. Shiro官方快速入门10min例子源码解析框架3-Authentication(身份认证)

    在作完预备的初始化和session测试后,到了作为一个权鉴别框架的核心功能部分,确认你是谁--身份认证(Authentication). 通过提交给shiro身份信息来验证是否与储存的安全信息数据是否 ...

  3. Java 泛型的使用

    一.泛型的简介1.为什么要使用泛型? 一般使用在集合上,比如现在把一个字符串类型的值放入到集合里面,这个时候,这个值放到集合之后,失去本身的类型,只能是object类型.这时,如果想要对这个值进行类型 ...

  4. LeetCode GrayCode

    class Solution { public: vector<int> grayCode(int n) { vector<int> res; res.push_back(); ...

  5. Ubuntu增加一个用户并给普通用户赋予root权限的方法

    1.添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser tommy //添加一个名为tommy的用户#passwd tommy   //修改密码Changing pass ...

  6. Java基础之引用(String,char[],Integer)总结于牛客网的专项练习题

    1.String的引用: 下列代码执行后的结果为: public class Test { public static void main(String[] args) { StringBuffer ...

  7. 实用的 Chrome Developers Tools

    做前端的,都喜欢 chrome , 里面的开发工具也很实用,网上看到文章不错,部分摘来分享 ------------------------------- console.log,中包含一些格式化的指 ...

  8. 我为什么用docker-compose来打包开发环境

    BUILD, SHIP, RUN Docker is the world's leading software containerization platform Docker的出现,让虚拟技术更上一 ...

  9. ubuntu 14.04/14.10 iptables 防火墙设置

    1. 一键批处理设置      [plain] view plaincopyprint? #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/loc ...

  10. Mybatis学习第四天——Mybatis与Spring整合

    主要介绍mapper配置与mapper的扫描配置,使用dao层的配置这里不多说. 1.导包 1.1 Mybatis的jar包 1.2 Spring的jar包 1.3 Spring与Mybatis整合包 ...