敌兵布阵
2015-07-21 23:34
363 查看
http://acm.hdu.edu.cn/showproblem.php?pid=1166
#include<iostream>
#include<cstdio>
using namespace std;
int n,a[50005];
char sh[15];
int lowbit(int i)
{
return i&(-i);
}
void updata(int i,int val)
{
while(i<=n)
{
a[i]+=val;
i+=lowbit(i);
}
}
int sum(int i)
{
int sum=0;
while(i>0)
{
sum+=a[i];
i-=lowbit(i);
}
return sum;
}
int main()
{
int i,val,t,x,y,zz=1;
cin>>t;
while(t--)
{
memset(a,0,sizeof(a));
cin>>n;
for(i=1;i<=n;i++)
{
cin>>val;
updata(i,val);
}
printf("Case %d:\n",zz++);
while(cin>>sh)
{
if(sh[0]=='E')
break;
cin>>x>>y;
if(sh[0]=='A')
updata(x,y);
else if(sh[0]=='S')
updata(x,-y);
else
printf("%d\n",sum(y)-sum(x-1));
}
}
return 0;
}
#include<iostream>
#include<cstdio>
using namespace std;
int n,a[50005];
char sh[15];
int lowbit(int i)
{
return i&(-i);
}
void updata(int i,int val)
{
while(i<=n)
{
a[i]+=val;
i+=lowbit(i);
}
}
int sum(int i)
{
int sum=0;
while(i>0)
{
sum+=a[i];
i-=lowbit(i);
}
return sum;
}
int main()
{
int i,val,t,x,y,zz=1;
cin>>t;
while(t--)
{
memset(a,0,sizeof(a));
cin>>n;
for(i=1;i<=n;i++)
{
cin>>val;
updata(i,val);
}
printf("Case %d:\n",zz++);
while(cin>>sh)
{
if(sh[0]=='E')
break;
cin>>x>>y;
if(sh[0]=='A')
updata(x,y);
else if(sh[0]=='S')
updata(x,-y);
else
printf("%d\n",sum(y)-sum(x-1));
}
}
return 0;
}
相关文章推荐
- J2EE--日志记录之log4j
- 【安卓基础三】adb命令
- Mycat(4):消息表mysql数据库分表实践
- Matrix Admin 后台模板笔记
- 变量及函数的生存期、作用范围、链接属性
- java基础语法--02
- POJ 2479 Maximum sum & POJ 2573 Max Sequence (DP,最大连续子串和)
- 设计模式_适配器模式
- c++ vector
- Java谣言终结者之Arraylist和Linkedlist到底谁快
- ibatis+springmvc的dao实现+配置文件
- ZOJ 1048 Financial Management
- Hdu 2072 单词数【字符串】
- UITabBar自定义方式三(中间有按钮)
- Android之——拦截短信
- 线程之从线程返回信息
- 理解 Python 中的 *args 和 **kwargs
- 游程编码
- eclipse打包问题:Export aborted because fatal lint errors we
- Neither GenericXmlContextLoader nor AnnotationConfigContextLoader was able to detect defaults