BZOJ4378: [POI2015]Logistyka
来源:互联网 发布:金凯度 知乎 编辑:程序博客网 时间:2024/05/16 03:38
题意看错以为有坐标的限制….赋值0的情况没处理好
对于一个询问,每次选c个,拿s次
如果序列中某个元素>=s,每次一定要拿它,设这样的有k个,对于剩下的< s的元素,易证当序列中剩余的数之和>=(c-k)*s时有解,就是个二维偏序问题,离散化+树状数组
code:
#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#include<bitset>#include<string>#include<vector>#include<cstdio>#include<cstdlib>#include<cstring>#include<climits>#include<complex>#include<iostream>#include<algorithm>#define ll long long#define lowbit(x) x&(-x)using namespace std;const int maxn = 1100000;int n,m,N;ll s1[maxn],s2[maxn],c[maxn],To[maxn];void add1(int x,int c){for(;x<=N;x+=lowbit(x))s1[x]+=c;}int query1(int x){int re=0;for(;x;x-=lowbit(x))re+=s1[x];return re;}void add2(int x,ll c){for(;x<=N;x+=lowbit(x))s2[x]+=c;}ll query2(int x){ll re=0;for(;x;x-=lowbit(x))re+=s2[x];return re;}struct node{int ti,ki,p,c,nc;}a[maxn];inline bool cmpt(const node x,const node y){return x.ti<y.ti;}inline bool cmpc(const node x,const node y){return x.nc<y.nc;}char str[1100];int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=m;i++) { a[i].ti=i; scanf("%s",str); a[i].ki=str[0]=='U'?0:1; scanf("%d%d",&a[i].p,&a[i].nc); } sort(a+1,a+m+1,cmpc); for(int i=1;i<=m;i++) { if(a[i].nc!=a[i-1].nc) To[++N]=a[i].nc; a[i].c=N; } sort(a+1,a+m+1,cmpt); int num=0; for(int i=1;i<=m;i++) { if(!a[i].ki) { if(c[a[i].p]) add2(c[a[i].p],-To[c[a[i].p]]),add1(c[a[i].p],-1),num--; if(a[i].c) { ++num; c[a[i].p]=a[i].c; add2(a[i].c,To[a[i].c]); add1(a[i].c,1); } } else { int temp=num-query1(a[i].c); if(temp>=a[i].p) { puts("TAK");continue; } a[i].p-=temp; ll tmp=query2(a[i].c); if(tmp>=(ll)a[i].p*a[i].nc) puts("TAK"); else puts("NIE"); } } return 0;}
阅读全文
0 0
- 【POI2015】【BZOJ4378】Logistyka
- BZOJ4378: [POI2015]Logistyka
- 【bzoj4378】[POI2015]Logistyka
- [bzoj4378][POI2015]Logistyka
- BZOJ4378[POI2015] Logistyka
- BZOJ4378 POI2015 Logistyka
- BZOJ4378: [POI2015]Logistyka
- 【BZOJ4378】[POI2015]Logistyka【树状数组】【结论题】
- bzoj4378 Logistyka 树状数组
- 4378: [POI2015]Logistyka
- BZOJ 4378: [POI2015]Logistyka 树状数组
- POI2015 题解
- bzoj 3747: [POI2015]Kinoman
- bzoj3747【POI2015】Kinoman
- [BZOJ3747] [POI2015]Kinoman
- BZOJ 3747: [POI2015]Kinoman
- BZOJ 3748: [POI2015]Kwadraty
- BZOJ4379: [POI2015]Modernizacja autostrady
- C# 批量生成随机密码,必须包含数字和字母,并用加密算法加密
- C#lock 的string String.Intern 方法
- Hamming Distance
- Java类加载机制
- Python数据库(MySQL、MongoDB、Redis)编程
- BZOJ4378: [POI2015]Logistyka
- div布局
- 【JavaScript学习】面向对象的程序设计(6):原型式继承
- 基于github或者码云平台的使用git提交,下载,更新项目
- ThinkPHP 配置数据库文件
- Android 开发者的进阶之路
- Unknown bottom blob 'data' (layer 'conv1', bottom index 0)
- concurrent学习笔记
- TCP协议中的三次握手和四次挥手