JZOJ 5439. 【NOIP2017提高A组集训10.31】Calculate
来源:互联网 发布:端口是什么 怎么查看 编辑:程序博客网 时间:2024/06/03 10:10
Description
Input
Output
Data Constraint
Solution
设前缀和
g[i][j] 表示A 为i 、B 为j 的数量。这样就能
O(1) 算出t 的值,值改变时暴力维护即可。时间复杂度
O(T∗M∗MaxAi) 。
Code
#include<cstdio>#include<cstring>using namespace std;const int N=1e5+1,M=1001;int n,m,mx;long long num;long long g[M][M];int a[N],b[N];inline int read(){ int X=0,w=1; char ch=0; while(ch<'0' || ch>'9') {if(ch=='-') w=-1;ch=getchar();} while(ch>='0' && ch<='9') X=(X<<3)+(X<<1)+ch-'0',ch=getchar(); return X*w;}inline void write(long long x){if(x>9) write(x/10);putchar(x%10+'0');}inline int max(int x,int y){return x>y?x:y;}inline long long check(long long t){ long long sum=-num,all; for(int i=1;i<=mx;i++) if(all=g[i][i-1]) sum+=t/i*all-(all-g[i][t%i]); return sum;}int main(){ int T=read(); while(T--) { n=read(),m=read(),num=mx=0; memset(g,0,sizeof(g)); for(int i=1;i<=n;i++) mx=max(mx,a[i]=read()); for(int i=1;i<=n;i++) num+=(b[i]=read())/a[i],g[a[i]][b[i]%a[i]]++; for(int i=1;i<=mx;i++) for(int j=1;j<=mx;j++) g[i][j]+=g[i][j-1]; while(m--) { int type=read(); if(type==1) { int x=read(),y=read(); for(int i=b[x]%a[x];i<a[x];i++) g[a[x]][i]--; num-=b[x]/a[x];mx=max(mx,a[x]=y);num+=b[x]/y; for(int i=b[x]%y;i<a[x];i++) g[y][i]++; }else if(type==2) { int x=read(),y=read(); for(int i=b[x]%a[x];i<a[x];i++) g[a[x]][i]--; num-=b[x]/a[x];b[x]=y;num+=y/a[x]; for(int i=y%a[x];i<a[x];i++) g[a[x]][i]++; }else { int k=read(); long long l=0,r=1e12+1e9; while(l<r) { long long mid=(l+r)>>1; if(check(mid)<k) l=mid+1; else r=mid; } write(l),putchar('\n'); } } } return 0;}
阅读全文
1 0
- JZOJ 5439. 【NOIP2017提高A组集训10.31】Calculate
- JZOJ 5439. 【NOIP2017提高A组集训10.31】Calculate
- 【JZOJ 5439】【NOIP2017提高A组集训10.31】Calculate
- jzoj5439【NOIP2017提高A组集训10.31】Calculate
- JZOJ5439. 【NOIP2017提高A组集训10.31】Calculate 乱搞
- JZOJ5439. 【NOIP2017提高A组集训10.31】Calculate
- 【JZOJ5439】【NOIP2017提高A组集训10.31】Calculate
- 【JZOJ 5438】【NOIP2017提高A组集训10.31】Tree
- JZOJ 5437. 【NOIP2017提高A组集训10.31】Sequence
- JZOJ 5438. 【NOIP2017提高A组集训10.31】Tree
- JZOJ 5437. 【NOIP2017提高A组集训10.31】Sequence
- JZOJ 5438. 【NOIP2017提高A组集训10.31】Tree
- JZOJ 5432. 【NOIP2017提高A组集训10.28】三元组
- 【JZOJ 5432】【NOIP2017提高A组集训10.28】三元组
- JZOJ 5407. 【NOIP2017提高A组集训10.21】Deep
- JZOJ 5408. 【NOIP2017提高A组集训10.21】Dark
- 【JZOJ 5409】【NOIP2017提高A组集训10.21】Fantasy
- JZOJ 5410. 【NOIP2017提高A组集训10.22】小型耀斑
- WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制
- Javaweb的博客系统
- Win7环境下tensorflow环境搭建
- python软件安装
- Average of Levels in Binary Tree(leetcode)
- JZOJ 5439. 【NOIP2017提高A组集训10.31】Calculate
- PowerDesigner设置表字符编码 utf-8
- C语言易错知识点整理
- nginx 相对 apache 比较,总结一下
- 机器学习 (一)
- golang有用的库及工具 之 fasthttp客户端 最通用最有效最简单使用方式
- 【实战】模仿设置中心
- Toast之悬浮窗(不需要权限)
- 数据数据