【CCF】除法 树状数组
【AC】
- #include<iostream>
- #include<math.h>
- #include<cstring>
- using namespace std;
- typedef long long LL;
- int N,M;
- int type,l,r,v;
- int A[+];
- LL TreeArr[+];
- int lowbit(int i)
- {
- return i&(-i);
- }
- void toValue(int i,int num)
- {
- while(i<=N)
- {
- TreeArr[i] += num;
- i += lowbit(i);
- }
- }
- LL sum(int i)
- {
- LL total = ;
- while(i != )
- {
- total += TreeArr[i];
- i -= lowbit(i);
- }
- return total;
- }
- int main(){
- cin>>N>>M;
- memset(TreeArr,,sizeof(TreeArr));
- for(int j=; j<=N; j++){
- cin>>A[j];
- toValue(j, A[j]);
- }
- while(M--){
- cin>>type;
- if(type==){
- cin>>l>>r>>v;
- if(v==) continue;
- for(int i=l; i<=r; i++){
- if(A[i]>=v&&A[i]%v==){
- toValue(i, A[i]/v-A[i]);
- A[i] /= v;
- }
- }
- }else if(type==){
- cin>>l>>r;
- cout<< sum(r) - sum(l-)<<endl;
- }
- }
- return ;
- }
【90分】
- #include<iostream>
- #include<cstdio>
- #include<cstring>
- #include<string>
- #include<cmath>
- #include<algorithm>
- #include<queue>
- #include<map>
- using namespace std;
- typedef long long ll;
- const int maxn=1e5+;
- ll a[maxn];
- ll tree[maxn];
- int n,m;
- int lowbit(int x){
- return x&(-x);
- }
- void add(int k,ll x){
- while(k<=n){
- tree[k]+=x;
- k+=lowbit(k);
- }
- }
- ll query(int k){
- ll res=;
- while(k){
- res+=tree[k];
- k-=lowbit(k);
- }
- return res;
- }
- void init(){
- memset(tree,,sizeof(tree));
- }
- int main(){
- while(~scanf("%d%d",&n,&m)){
- init();
- for(int i=;i<=n;i++){
- scanf("%lld",&a[i]);
- add(i,a[i]);
- }
- int opt,l,r;
- ll v;
- for(int i=;i<=m;i++){
- scanf("%d%d%d",&opt,&l,&r);
- if(opt==){
- scanf("%lld",&v);
- if(v==) continue;
- for(int j=l;j<=r;j++){
- if(a[j]>=v&&a[j]%v==){
- add(j,a[j]/v-a[j]);
- a[j]/=v;
- }
- }
- }else{
- ll ans=query(r)-query(l-);
- printf("%lld\n",ans);
- }
- }
- }
- return ;
- }
【CCF】除法 树状数组的更多相关文章
- 【HDU4947】GCD Array(莫比乌斯反演+树状数组)
点此看题面 大致题意: 一个长度为\(n\)的数组,实现两种操作:将满足\(gcd(i,k)=d\)的\(a_i\)加上\(v\),询问\(\sum_{i=1}^xa_i\). 对于修改操作的推式子 ...
- inline void 树状数组神奇感悟【雾
才发现扫描线可以用树状数组搞... 致远星患者 (另外根据这篇博文的内容怎么越来越感觉自己往 PJ 入门靠拢了...) 还有一点,咱把树状数组当做线段树来康的话其实一切都会很清晰,这个来张四合一的图: ...
- neuoj1472 yuki的氪金之旅(倒置树状数组
这题一直re不造为啥..后来yww大神把树状数组“倒过来”就过了,倒过来的好处是算sum(d[i]+1)就行,不涉及除法,不用求逆元. 题意:初始手牌颜值是0,一共抽卡n次,第i次抽卡有pi的概率能抽 ...
- 牛客网暑期ACM多校训练营(第五场) F - take —— 期望+树状数组+逆元
看到一篇好的博客特意转出来观摩大佬:转:https://blog.csdn.net/greybtfly/article/details/81413526 题目大意:给n个箱子排成一排,从头到尾按顺序依 ...
- 康拓展开 & 逆康拓展开 知识总结(树状数组优化)
康拓展开 : 康拓展开,难道他是要飞翔吗?哈哈,当然不是了,康拓具体是哪位大叔,我也不清楚,重要的是 我们需要用到它后面的展开,提到展开,与数学相关的,肯定是一个式子或者一个数进行分解,即 展开. 到 ...
- 清北学堂—2020.1提高储备营—Day 2 afternoon(线段树、树状数组)
qbxt Day 2 afternoon --2020.1.18 济南 主讲:李佳实 目录一览 1.线段树 2.二叉搜索树(略过) 3.树状数组 总知识点:基础数据结构(本人初学感觉好难) 一.线段树 ...
- BZOJ 1103: [POI2007]大都市meg [DFS序 树状数组]
1103: [POI2007]大都市meg Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2221 Solved: 1179[Submit][Sta ...
- bzoj1878--离线+树状数组
这题在线做很麻烦,所以我们选择离线. 首先预处理出数组next[i]表示i这个位置的颜色下一次出现的位置. 然后对与每种颜色第一次出现的位置x,将a[x]++. 将每个询问按左端点排序,再从左往右扫, ...
- codeforces 597C C. Subsequences(dp+树状数组)
题目链接: C. Subsequences time limit per test 1 second memory limit per test 256 megabytes input standar ...
随机推荐
- Python小脚本程序
本文旨在搜集最简单最原子性的代码块,简单清晰容易阅读,然后由用户自己组合.Python代码排版请自行修改. 这里是索引目录: 1. 下载网站文件 2. 下载网站多个文件 1. 下载网站文件 impor ...
- SQL查询出每门课都大于80 分的学生姓名
Course表如下: 查询出每门课都大于80 分的学生姓名有两种方法. 1.select distinct name from Course where name not in (select di ...
- 关于微信小程序 textarea组件在fixed定位的模块中随页面移动问题
具体的情况: 在模拟器中没问题,可是在真机下就出现以下问题, <textarea />在一个view盒子中,view盒子是固定定位,页面滑动时候,固定定位的盒子会定在屏幕的相对位置,但 ...
- swl字符串
创建字符串方法 去掉时间戳 #define NSLog(FORMAT, ...) printf("%s\n", [[NSString stringWithFormat:FORMAT ...
- API调用微信getWXACodeUnlimit()获取小程序码
微信文档地址:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/qr-code/getWXACodeUnlimit.html? ...
- IDEA注释模板设置
1. 文件注释 1.1 Java类文件注释 Setting -> Editor -> File and Code Templates -> Includes -> File H ...
- 1048: [HAOI2007]分割矩阵
Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1184 Solved: 863[Submit][Status][Discuss] Descripti ...
- Ansible指令和常用模块使用
这里文章记录一下ansible的指令选项和常用的模块使用 ansible指令选项 -m:要执行的模块,默认为command -a:模块的参数 -u:ssh连接的用户名,默认用root,ansible. ...
- 十、Shell 函数
Shell 函数 linux shell 可以用户定义函数,然后在shell脚本中可以随便调用. shell中函数的定义格式如下: [ function ] funname [()] { action ...
- 课时5.什么是URL(理解)
其实浏览器的地址栏中输入的地址就是一个URL. http://127.0.0.1/index.html(浏览器会自动添加:80) http://127.0.0.1:80/index.html(这是浏览 ...