Fenwick

 

Potentiometers

 UVALive - 2191 

题意:两种操作,一是把第x个数改成y,而是求x到y的和。

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 #define ll long long
 4 const int maxn=200010;
 5 int a[maxn],c[maxn];
 6 int n;
 7 int lowbit(int x){
 8     return x&(-x);
 9 }
10 
11 void add(int x,int d){
12     while(x<=n){
13         c[x]+=d;
14         x+=lowbit(x);
15     }
16 }
17 
18 ll sum(int x){
19     ll ans=0;
20     while(x>0){
21         ans+=c[x];
22         x-=lowbit(x);
23     }
24     return ans;
25 }
26 
27 int main(){
28     int kase=0;
29     while(scanf("%d",&n)&&n){
30         memset(c,0,sizeof(c));
31         for(int i=1;i<=n;i++) {
32             scanf("%d",&a[i]);
33             add(i,a[i]);                   //for(int j=i-lowbit(i)+1;j<=i;j++) c[i]+=a[j];
34         }
35         if(kase) puts("");
36         printf("Case %d:\n",++kase);
37         char s[5];
38         int x,y;
39         while(scanf("%s",s)){
40             if(strcmp(s,"END")==0) break;;
41             scanf("%d%d",&x,&y);
42             if(s[0]=='S'){
43                 int d=y-a[x];
44                 add(x,d);
45                 a[x]=y;  //!!!
46             }else{
47                 printf("%lld\n",sum(y)-sum(x-1));
48             }
49         }
50     }
51     return 0;
52 }
View Code

 

Rabbit Kingdom

 HDU - 4777 

题意:给N个数,有M个查询,问区间[L,R]之间有多少个数与这个区间内的其他数都互质。

待补题~~

 

Magic Ball Game

 HDU - 4605

题意:一个权值为X球从根节点开始下落,每落到一个节点的时候,1.如果X=W[i],或者没有儿子节点了,球停止下落。2.如果X<W[i],球各有1/2的概率落到左右儿子节点。3.如果X>W[i],球有1/8的概率落到左儿子,有7/8的概率落到右儿子。问球落到点v的概率是多少(概率用7^x/2^y表示,即输出x和y就可以)。

待补题~~

转载于:https://www.cnblogs.com/yijiull/p/7268450.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值