Logo syxx_huangshiran的博客

博客

1.「一本通4.1例1」树状数组1

2024-04-14 20:45:32 By syxx_huangshiran
#include<bits/stdc++.h>
using namespace std;
long long c[1000005],n,m;
long long lowbit(long long x){
    return x&(-x);
}
long long sum(long long i){
    long long s=0;
    while(i>0){
        s+=c[i];
        i-=lowbit(i);
    }
    return s;
}
void add(long long i,long long val){
    while(i<=n){
        c[i]+=val;
        i+=lowbit(i);
    }
}
int main(){
    long long k,a,b,x;
    scanf("%lld%lld",&n,&m);
    for(long long i=1;i<=n;i++){
        scanf("%lld",&x);
        add(i,x);
    }
    while(m--){
        scanf("%lld%lld%lld",&k,&a,&b);
        if(k==2){
            printf("%lld\n",sum(b)-sum(a-1));
        }
        else{
            add(a,b);
        }
    }
    return 0;
}

数据结构过关考题目

2024-04-14 20:43:30 By syxx_huangshiran

数据结构过关考题目

仅供参考,毕竟小编也不知道老师换不换题

一、 1.「一本通4.1例1」树状数组1

二、12.「一本通4.3练习2」花神游历各国

三、14.「一本通4.2例1」数列区间最大值

四、20.「一本通4.4例1」点的距离

五、28.「一本通4.5例1」树的统计

六、31.「一本通4.5练习3」染色

七、45.「一本通4.6例1」营业额统计

八、52.「一本通5.5例1」滑动窗口

九、66.例5.6.4可持久化数组

十、列队

新博客

2024-03-19 20:28:42 By syxx_huangshiran

题目背景

大爷想上厕所,所以他决定找纸巾

题目描述

大爷精力为V,现有n个人,每个人占用精力为Vi,贡献纸巾可用次数为Wi,每个人要么至多给Mi次纸巾,要么数量无限,在所费精力不超过V的前提下所找到纸巾的可用次数最大值是多少?

输入格式

第1行,两个数N和V。下面N行,每行三个数Vi,Wi,Mi分别表示每个人的占用精力、贡献纸巾可用次数与数量, Mi>=1表示至多取Mi件,Mi=?1表示数量无限。

输出格式

一个数Ans,表示所找纸的可用次数最大值。

样例

样例输入

5 10 2 3 1 3 2 5 2 2 -1 4 2 1 2 4 2

样例输出

15

数据规模与约定

$N \le 30,V \le 200,Mi \le 10$

共 13 篇博客