板子2

  线段树(单点更新)

/*  gyt
       Live up to every day            */
#include<cstdio>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<vector>
#include<stack>
#include<cstring>
#include<queue>
#include<set>
#include<string>
#include<map>
#include <time.h>
#define PI acos(-1)
using namespace std;
typedef long long ll;
typedef double db;
const int maxn = 500002;
const ll maxm = 1e7;
const ll base = 2333;
const int INF = 1<<30;
const db eps = 1e-8;
const ll mod = 1e9+13;
struct nodee{
    int left, right, mid, num;
}node[maxn];
int ca=1;

void build(int left, int right, int n) {
    node[n].left=left;
    node[n].right=right;
    node[n].mid=(left+right)/2;
    node[n].num=0;
    if (left+1==right)  return;
    build(left, (left+right)/2, 2*n);
    build((left+right)/2, right, 2*n+1);
}
void updata(int pos, int value, int n) {
    node[n].num+=value;
    if (node[n].left+1==node[n].right)
        return;
    if (pos<node[n].mid)
        updata(pos, value, 2*n);
    else
        updata(pos, value, 2*n+1);
}
int query(int left, int right, int n) {
    if (node[n].left==left && node[n].right==right) {
        return node[n].num;
    }
    if (left<node[n].mid) {
        if(right <= node[n].mid ){
            return query(left,right,2*n);
        }
        else{
            return query(left,node[n].mid,2*n) + query(node[n].mid,right,2*n + 1);
        }
    }
    else
        return query(left,right,2*n+1);
}
void solve() {
    int n;  scanf("%d", &n);
    build(1, n+1, 1);
    for (int i=1; i<=n; i++) {
        int x;  scanf("%d", &x);
        updata(i, x, 1);
    }
    char c[10];
    printf("Case %d:\n", ca++);
    while(1) {
        scanf("%s", c);
        if (strcmp(c, "End")==0)  break;
        int x, y;  scanf("%d%d", &x, &y);
        if (strcmp(c, "Query")==0) {
            int ans=query(x, y+1, 1);
            printf("%d\n", ans);
        }
         else if(strcmp(c,"Add") == 0){
            updata(x, y, 1);
        }
        else if(strcmp(c,"Sub") == 0){
            updata(x, -y, 1);
        }
    }
}
int main() {
    int t = 1;
   // freopen("in.txt","r",stdin);
  //  freopen("gcd.out","w",stdout);
    scanf("%d", &t);
    while(t--)
        solve();
    return 0;
}
时间: 2024-11-10 02:09:59

板子2的相关文章

Arduino 板子 COM 接口找不到设备

复位 Arduino 板子 1.打开官方的blink程序. 2.重新拔插usb. 3.点下载. 4.按住左上角的复位按键不放. 5.等显示开始下载瞬间松开按键.把握住那个瞬间. 6.多试验几次看能下载好不.Arduino 板子 COM 接口找不到设备,布布扣,bubuko.com

初次拿到板子的兴奋

今天,DE2-115终于拿到手了,按捺不住内心的兴奋,马上试验一下. 一个简单的流水灯程序对照书本写好之后,遇到的第一个问题是如何将程序烧进芯片.不过还好,手头资料算是比较充足的. 1.程序很简单: //======================================================= // This code is generated by Terasic System Builder //======================================

NFS 网络文件系统挂载在A8板子上

我承认自己是菜鸟,没什么网络知识就来搞挂载nfs网络文件系统,花费了5天的时间才把nfs网络文件系统成功挂载在A8板子上,实现了A8板子和虚拟机的文件共享.分享一下个人经验: 以下是基于nfs已经完成安装来说 板子接线问题:我是把板子和电脑都接到同一个路由器上的,保证在同一个网段,我的网关是192.168.0.1,故我的电脑.虚拟机.板子的网关也是它,我的电脑ip地址是192.168.0.111.虚拟机ip为192.168.0.121,板子ip为192.168.0.120,发现上面就是192.1

Altium_Designer17-PCB-如何重新定义板子外形

当我们绘制完电路图.完成PCB布局和布线后,我们会遇到下面这种情况: 发现什么了吗?那么大的黑框框,我们只用到了很少的一部分.那有啥?告诉你黑框框的大小就是你最后将要印刷的PCB板的实际大小!大家都知道,板子的面积是跟我们的$$挂钩的,这么大的板子只有一小部分有用,岂不是很浪费?那么问题来了,要怎样重新定义板子的外形呢? 试用软件版本:Altium Designer 17 步骤: 1.将模式切换至规划模式 快捷键 1 在菜单栏View>>Board Planning Mode  1 这时,我们

使用stm32F4Discovery 的stlink v2给其他板子调试

不适用stm8. 1. 拔掉 CN3 的 跳线帽 2.CN2 的 原理图 3.按照2中的原理图和板子(核心板stm32c8t6),实际上我这边连接使用的结果是: 4. 5. 6.相关资料: 链接:http://pan.baidu.com/s/1i4IhjQd 密码:ryow

使用mbed进行STM32板子的开发

keil太难用!keil太难用!keil太难用! keil点亮一个灯都超麻烦,什么鬼东西. mbed可以网络编程,打破了mac和windows的壁垒!写好,编译,然后下下来,在拖到板子里.就直接烧进去了! mbed有自己封装好的库,"mbed.h",可以使用C++来写代码,重载好爽啊!!!!! 总之,ARM的开发可以和Arduino一样简单!!!! 看一下由三个LED组成的流水灯的代码: #include "mbed.h" //声明输出口 //D8什么的选好板子后已

《FPGA全程进阶---实战演练》第二章之焊接板子及调试注意事项

1.若是读者第一次做板子,强烈建议画完PCB板后将PCB图打印出来,然后对照你买的芯片将芯片放置对 应的位置,然后查看所有的封装格式适不适合,否则等你做出板子来后再试,为时晚矣.笔者虽然知道要这么 做,但是笔者第一次发给工厂做回来的PCB发现有一个芯片封装画大了,而且那个芯片还是贴片封装的,这让 笔者心痛不已,300多大洋就这么要毁于一旦了. 2.在参考别人的电路时一定要注意,你想用的芯片型号的电路适不适合你参考的电路图,若是完全一致,那么可以直接照抄照搬,若是不一样,这时候要非常注意电路的设计

替罪羊树(重量平衡树)总结及板子

没事干写个板子来玩一玩...平衡树的板子,上一篇写的 splay 的题解,这一篇来搞点别的.其实就我自己来说,并不太喜欢 splay ,各种旋转什么的,扭扭捏捏一点都不爽,那怎么办咧,于是学了这么个东西---替罪羊树,不平衡就重构嘛,简单粗暴,写起来也方便. 替罪羊树的主要思想就是将不平衡的树压成一个序列,然后暴力重构成一颗平衡的树. 这里的平衡指的是:对于某个 0.5<=alpha<=1 满足 size( lson(x) )<=alpha*size(x) 并且 size( rson(x

AC自动机总结及板子

蒟蒻最近想学个AC自动机简直被网上的板子搞疯了,随便点开一个都是带指针的,然而平时用到指针的时候并不多,看到这些代码也完全是看不懂的状态.只好在大概理解后自己脑补(yy)了一下AC自动机的代码,居然还过了,这里对学到的东西做一点小小的总结.顺便造福一下跟我之前一样没有学过AC自动机并且不会用指针的Oier,给出一段不带指针的板子. AC自动机的模型很好理解,就是在Trie树上做类似于KMP的操作.所以说在AC自动机里也会有一个类似于 next 数组的东西------ fail 数组来作为失配指针

POJ 3278 Catch That Cow(BFS,板子题)

Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 88732   Accepted: 27795 Description Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,00