题目链接:https://vjudge.net/problem/CodeChef-FNCS

在一个地方卡了一晚上,就是我本来以为用根号n分组,就会分成根号n个。事实上并不是。。。。因为用的是根号n下取整分组,得到的组数要用n/floor(sqrt(n))具体计算。

另外还有各种奇怪的bug……包括unsigned long long什么的……orz

#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long ull;
const int maxn=;
int a[maxn];
int fl[maxn],fr[maxn];
int cnt[maxn][];
ull res[];
ull tree[maxn];
int N,block_size; int lowbit(int x)
{
return x&-x;
} void add(int k,int x)
{
while (k<=N)
{
tree[k]+=x;
k+=lowbit(k);
}
} ull query(int k)
{
ull res=0ull;
while (k)
{
res+=tree[k];
k-=lowbit(k);
}
return res;
} void init(int n)
{
N=n;
for (int i=;i<=N;i++) tree[i]=0ull;
} ull query2(int k)
{
if (k<) return ;
ull r=0ull;
int block_id=(k-)/block_size+;
for (int i=;i<block_id;i++) r+=res[i];
for (int i=(block_id-)*block_size+;i<=k;i++)
{
r+=query(fr[i])-query(fl[i]-);
}
return r;
} int main()
{
int n;
scanf("%d",&n);
for (int i=;i<=n;i++) scanf("%d",&a[i]);
for (int i=;i<=n;i++) scanf("%d%d",&fl[i],&fr[i]);
block_size=sqrt(n);
int block=n/block_size;
for (int i=;i<=block;i++)
{
for (int j=(i-)*block_size+;j<=i*block_size;j++)
{
cnt[fr[j]+][i]--;
cnt[fl[j]][i]++;
}
res[i]=;
for (int j=;j<=n;j++)
{
cnt[j][i]+=cnt[j-][i];
res[i]+=1ull*a[j]*cnt[j][i];
}
}
init(n);
for (int i=;i<=n;i++) add(i,a[i]);
int q;
scanf("%d",&q);
while (q--)
{
int op,x,y;
scanf("%d%d%d",&op,&x,&y);
if (op==)
{
ull r=query2(y)-query2(x-);
printf("%llu\n",r);
}
else
{
for (int i=;i<=block;i++)
{
res[i]+=1ull*cnt[x][i]*(y-a[x]);
}
add(x,y-a[x]);
a[x]=y;
}
}
return ;
}

最新文章

  1. App开发流程之加密工具类
  2. MVC4做网站六后台管理:6.2网站信息设置
  3. android动画的Interpolator
  4. oracle 11g设置打开空表extent储存块
  5. 数据库订正脚本性能优化两则:去除不必要的查询和批量插入SQL
  6. (easy)LeetCode 258.Add Digits
  7. 关于linq
  8. 配置Struts2的异常处理
  9. linux进程间通信之共享内存篇
  10. InPageError c000009c使用chkdsk修复磁盘
  11. CEGUI添加自定义控件
  12. javase基础回顾(二)LinkedList需要注意的知识点 阅读源码收获
  13. CSS属性操作
  14. 客户端无法加入域,报错:“无法与域‘xxx.com’的Active Directory域控制器(AD DC)链接” 请确保键入的域名正确
  15. 【BZOJ2125】最短路(仙人掌,圆方树)
  16. vue中axios 配置请求拦截功能 及请求方式如何封装
  17. Jmeter(三十九)User.Properties定义全局变量
  18. 转载:QT QTableView用法小结
  19. NAS设备是什么
  20. maven install时报错 Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (default-test)

热门文章

  1. 使用source命令解决mysql导入乱码问题
  2. (译)JavaScript 中的正则表达式(RegEx)实操——快速掌握正则表达式,伴有随手可练的例子————(翻译未完待续)
  3. 使用 MySQL 存储 Hue 元数据
  4. Python的import导入与时间
  5. java二分法来求一个数组中一个值的key
  6. python语法图
  7. Java - 问题集 - linux下,jar: command not found
  8. pprof 查看goroutine
  9. Qt 汽车仪表再次编写,Widget,仪表显示,绘制界面
  10. Ubuntu下使用Git_3