博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj4378 [POI2015]Logistyka
阅读量:5025 次
发布时间:2019-06-12

本文共 1973 字,大约阅读时间需要 6 分钟。

  对于询问(a,b),设X=(数列中小于等于b的数字和),Y=b*(数列中大于b的数字的个数),若X+Y>=a*b,则询问可行,否则不可行,实现的话用两个树状数组维护一下即可

  代码

  

1 #include
2 #include
3 #include
4 #define fi first 5 #define sc second 6 #define mp make_pair 7 #define N 2000100 8 using namespace std; 9 long long c1[N],c2[N],e[N],a[N],b[N];10 int typ[N],n,i,m,tot,u,v[N];11 char ch;12 int ef(int x)13 {14 int l=1,r=n,m;15 while (l<=r)16 {17 m=(l+r)>>1;18 if (e[m]>x) r=m-1;else l=m+1;19 }20 return r;21 }22 int lowbit(int x)23 {24 return x&-x;25 }26 void cc(int x,int w,long long ww)27 {28 while (x<=n)29 {30 c1[x]+=w;31 c2[x]+=ww;32 x+=lowbit(x);33 }34 }35 pair
sum(int x)36 {37 int ans1=0;38 long long ans2=0;39 while (x)40 {41 ans1+=c1[x];42 ans2+=c2[x];43 x-=lowbit(x);44 }45 return mp(ans1,ans2);46 }47 int main()48 {49 scanf("%d%d",&n,&m);50 tot++;e[tot]=0;51 for (i=1;i<=m;i++)52 {53 scanf(" %c %lld%lld",&ch,&a[i],&b[i]);54 if (ch=='U') 55 {56 tot++;e[tot]=b[i];57 typ[i]=0;58 }59 else typ[i]=1;60 }61 sort(e+1,e+1+tot);e[0]=-1;n=0;62 for (i=1;i<=tot;i++)63 if (e[i]!=e[i-1]) e[++n]=e[i];64 cc(1,n,n*e[1]);65 for (i=1;i<=m;i++)66 {67 if (!typ[i])68 {69 u=ef(v[a[i]]);70 cc(u,-1,-v[a[i]]);71 v[a[i]]=b[i];72 u=ef(v[a[i]]);73 cc(u,1,v[a[i]]);74 }75 else76 {77 u=ef(b[i]);78 pair
ans2=sum(u);79 long long v1=n-ans2.fi;80 long long v2=ans2.sc;81 if (v1*b[i]+v2>=a[i]*b[i])82 printf("TAK\n");83 else84 printf("NIE\n");85 }86 }87 }

 

  

转载于:https://www.cnblogs.com/fzmh/p/5388887.html

你可能感兴趣的文章
第七周作业
查看>>
函数式编程与参数
查看>>
flush caches
查看>>
SSAS使用MDX生成脱机的多维数据集CUB文件
查看>>
ACM_hdu1102最小生成树练习
查看>>
MyBatis源码分析(一)--SqlSessionFactory的生成
查看>>
android中ListView点击和里边按钮或ImageView点击不能同时生效问题解决
查看>>
CTF常用工具之汇总
查看>>
java的面向对象 (2013-09-30-163写的日志迁移
查看>>
HDU 2191 【多重背包】
查看>>
51nod 1433 0和5【数论/九余定理】
查看>>
【AHOI2013复仇】从一道题来看DFS及其优化的一般步骤和数组分层问题【转】
查看>>
less 分页显示文件内容
查看>>
如何对数据按某列进行分层处理
查看>>
[Qt] this application failed to start because it could not find or load the Qt platform plugin
查看>>
Git Submodule管理项目子模块
查看>>
学会和同事相处的30原则
查看>>
NOJ——1568走走走走走啊走(超级入门DP)
查看>>
文件操作
查看>>
Python:GUI之tkinter学习笔记3事件绑定(转载自https://www.cnblogs.com/progor/p/8505599.html)...
查看>>