CCF认证2017-9 除法
来源:互联网 发布:安卓淘宝引流量软件 编辑:程序博客网 时间:2024/06/03 20:10
题目链接:http://118.190.20.162/view.page?gpid=T59
用树状数组模板做,一开始只有50分,超时
突发奇想做了些优化,意外的100分了!这数据真的。。(感觉自己是碰巧卡过去了)
#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#include<queue>#include<map>#include<set>#include<string>#include<stack>using namespace std;typedef long long ll;const int N=100000+10;ll a[N];int b[N];int n,m;int lowbit(int x){ return x & (-x);}void modify(int x,int add)//一维{ while(x<=n) { a[x]+=add; x+=lowbit(x); }}ll get_sum(int x){ ll ret=0; while(x!=0) { ret+=a[x]; x-=lowbit(x); } return ret;}int main(){ //freopen("/home/zlwang/Desktop/t2.txt","r",stdin); while(~scanf("%d%d",&n,&m)) { int v; memset(a,0,sizeof(a)); for(int i=1;i<=n;i++) { scanf("%d",&b[i]); modify(i,b[i]); } int l,r,c; for(int i=0;i<m;i++) { scanf("%d",&c); if(c==1) { scanf("%d%d%d",&l,&r,&v); //本来50分 if(v==1) continue; //先加此行代码80分 for(int j=l;j<=r;j++) if(b[j]>=v&&b[j]%v==0) //b[j]>=v ,再加这里满分 { modify(j,b[j]/v-b[j]); b[j]/=v; } } else if(c==2) { scanf("%d%d",&l,&r); printf("%lld\n",get_sum(r)-get_sum(l-1)); } } } return 0;}
阅读全文
3 0
- CCF认证2017-9 除法
- CCF 除法
- ccf 除法
- CCF NOI1040 除法游戏
- CCF 201709-5 除法
- 201709-5 除法 ccf
- ccf 201709-5 除法
- CCF认证2017-09 通信网络
- CCF 201709-5 除法 Java
- ccf认证--201509-3
- ccf认证-201509-4
- ccf认证-201503-4
- CCF认证 送货
- CCF认证-ISBN号码
- CCF认证经验
- CCF认证 201604 俄罗斯方块
- CCF认证 201409 画图
- CCF认证历年试题集
- js 之 setTimeout 0 分析
- 2.5音频编辑软件&2.6语音识别技术
- Eclipse安装教程
- ## centos实现https ##
- Python学习——Class类
- CCF认证2017-9 除法
- 重启了Linux ,然后 启动MySQL 出现 Starting MySQL….. ERROR! The server quit without updating PID file
- redis客户端与服务端连接
- TCPSocket
- 深入了解Java爬虫的运用技术
- 安装ubuntu16.04.3单系统-开机显示no boot devices found
- Java(4-2)
- Java web连数据库的案例
- ARC 074