AC日记——统计和 洛谷 P2068

统计和

思路:

  水题;

代码:

#include <bits/stdc++.h>
using namespace std;
#define maxn 100005
int n,m,tree[maxn];
inline void in(int &now)
{
    int if_z=1;now=0;
    char Cget=getchar();
    while(Cget>‘9‘||Cget<‘0‘)
    {
        if(Cget==‘-‘) if_z=-1;
        Cget=getchar();
    }
    while(Cget>=‘0‘&&Cget<=‘9‘)
    {
        now=now*10+Cget-‘0‘;
        Cget=getchar();
    }
    now*=if_z;
}
inline int lowbit(int x)
{
    return x&(-x);
}
inline void add(int x,int di)
{
    while(x<=n)
    {
        tree[x]+=di;
        x+=lowbit(x);
    }
}
inline int sum(int l,int r)
{
    l--;int res=0;
    while(r) res+=tree[r],r-=lowbit(r);
    while(l) res-=tree[l],l-=lowbit(l);
    return res;
}
int main()
{
    in(n),in(m);int a,b;char op[4];
    while(m--)
    {
        scanf("%s",op),in(a),in(b);
        if(op[0]==‘x‘) add(a,b);
        else printf("%d\n",sum(a,b));
    }
    return 0;
}
时间: 2024-10-14 08:39:49

AC日记——统计和 洛谷 P2068的相关文章

AC日记——最大数 洛谷 P1198 [JSOI2008]

题目描述 现在请求你维护一个数列,要求提供以下两种操作: 1. 查询操作. 语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值. 限制:L不超过当前数列的长度. 2. 插入操作. 语法:A n 功能:将n加上t,其中t是最近一次查询操作的答案(如果还未执行过查询操作,则t=0),并将所得结果对一个固定的常数D取模,将所得答案插入到数列的末尾. 限制:n是整数(可能为负数)并且在长整范围内. 注意:初始时数列是空的,没有一个数. 输入输出格式 输入格式: 第一行两个整数,M

AC日记——栈 洛谷 P1044

题目背景 栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表. 栈有两种最重要的操作,即pop(从栈顶弹出一个元素)和push(将一个元素进栈). 栈的重要性不言自明,任何一门数据结构的课程都会介绍栈.宁宁同学在复习栈的基本概念时,想到了一个书上没有讲过的问题,而他自己无法给出答案,所以需要你的帮忙. 题目描述 宁宁考虑的是这样一个问题:一个操作数序列,从1,2,一直到n(图示为1到3的情况),栈A的深度大于n. 现在可以进行两种操作, 1.将一个数,从操作数序列的头

AC日记——忠诚 洛谷 P1816

题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意.但是由于一些人的挑拨,财主还是对管家产生了怀疑.于是他决定用一种特别的方法来判断管家的忠诚,他把每次的账目按1,2,3…编号,然后不定时的问管家问题,问题是这样的:在a到b号账中最少的一笔是多少?为了让管家没时间作假他总是一次问多个问题. 输入输出格式 输入格式: 输入中第一行有两个数m,n表示有m(m<=100000)笔账,n表示有n个问

AC日记——潜伏者 洛谷 P1071 (模拟)

题目描述 R 国和 S 国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动.历尽艰险后,潜伏于 S 国的 R 国间谍小 C 终于摸清了 S 国军用密码的编码规则: 1. S 国军方内部欲发送的原信息经过加密后在网络上发送,原信息的内容与加密后所得的内容均由大写字母‘A’-‘Z’构成(无空格等其他字符). 2. S 国对于每个字母规定了对应的“密字”.加密的过程就是将原信息中的所有字母替换为其对应的“密字”. 3. 每个字母只对应一个唯一的“密字”,不同的字母对应不同的“密字”.“密字”可以

AC日记——机器翻译 洛谷 P1540

题目背景 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章. 题目描述 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换.对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译:如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译. 假设内存中有M个单元,每单元能存放一个单词和译义.每当软件将一个新单词存入内存前,如果当前内存中已存入的单

AC日记——三连击 洛谷 P1008

题目背景 本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序. 题目描述 将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成1:2:3的比例,试求出所有满足条件的三个三位数. 输入输出格式 输入格式: 木有输入 输出格式: 若干行,每行3个数字.按照每行第一个数字升序排列. 输入输出样例 输入样例#1: 输出样例#1: 192 384 576 * * * ... * * * (输出被和谐了) 思路: 搜索: 水到炸. 来,上代码

AC日记——方差 洛谷 P1471

方差 思路: 线段树: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 100005 struct TreeNodeType { int l,r,mid,size; double sum,sum2,flag; inline void updata(double x) { flag+=x; sum2+=sum*x*2+size*x*x; sum+=x*size; } }; struct TreeNodeType tre

AC日记——独木桥 洛谷 p1007

题目背景 战争已经进入到紧要时间.你是运输小队长,正在率领运输部队向前线运送物资.运输任务像做题一样的无聊.你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们.士兵们十分愤怒,因为这座独木桥十分狭窄,只能容纳一个人通过.假如有两个人相向而行在桥上相遇,那么他们两个人将无妨绕过对方,只能有一个人回头下桥,让另一个人先通过.但是,可以有多个人同时呆在同一个位置. 题目描述 突然,你收到从指挥部发来的信息,敌军的轰炸机正朝着你所在的独木桥飞来!为了安全,你的部队必须

AC日记——魔方 洛谷 P2007

魔方 思路: 模拟: 代码: #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; struct MFType { int ai[4][4]; }; struct MFType ci[7]; int len; char done[500],ch[10]; /* 1.front 2.back 3.left 4.righ