Codeforces Round #368 (Div. 2) E. Garlands 二维树状数组 暴力

本文介绍了一种使用二维稀疏表格解决矩阵中链的权值更新与查询问题的方法。通过实现 update 和 get 函数,可以高效地完成对特定链的权值设置为0或恢复原值的操作,并能快速查询矩阵的权值总和。

参考http://www.cnblogs.com/qscqesze/p/5792926.html

题意

给你一个nm的矩阵,里面有k条链,你有q次询问

每次询问可以使得一条链变成0,或者使得这条链变成原来的值。

然后查询一个矩阵的权值和。

分析。。没有卡。不知道为何。。自己的代码错了,直接贴别人的

#include<bits/stdc++.h>
using namespace std;
const int maxn = 2e3+6;
long long d[maxn][maxn];
int lowbit(int x)
{
    return x&(-x);
}
void update(int x,int y,int w)
{
    for(int i=x;i<maxn;i+=lowbit(i))
        for(int j=y;j<maxn;j+=lowbit(j))
            d[i][j]+=w;
}
long long get(int x,int y)
{
    long long ans = 0;
    for(int i=x;i;i-=lowbit(i))
        for(int j=y;j;j-=lowbit(j))
            ans+=d[i][j];
    return ans;
}
vector<int> px[maxn],py[maxn],pw[maxn];
int flag[maxn],la[maxn];
char op[25];
int main()
{
    int n,m,k;
    scanf("%d%d%d",&n,&m,&k);
    for(int i=1;i<=k;i++)
    {
        int num;scanf("%d",&num);
        la[i]=1;
        for(int j=1;j<=num;j++)
        {
            int x,y,z;scanf("%d%d%d",&x,&y,&z);
            px[i].push_back(x);
            py[i].push_back(y);
            pw[i].push_back(z);
        }
    }
    int q;scanf("%d",&q);
    for(int i=1;i<=q;i++)
    {
        scanf("%s",op);
        if(op[0]=='S')
        {
            int a;scanf("%d",&a);
            flag[a]^=1;
        }
        else{
            int a,b,c,d;scanf("%d%d%d%d",&a,&b,&c,&d);
            for(int j=1;j<=k;j++)
            {
                if(la[j]==flag[j])continue;
                if(flag[j]==0)
                {
                    for(int i2=0;i2<px[j].size();i2++)
                        update(px[j][i2],py[j][i2],pw[j][i2]);
                    la[j]=flag[j];
                }
                else
                {
                    for(int i2=0;i2<px[j].size();i2++)
                        update(px[j][i2],py[j][i2],-pw[j][i2]);
                    la[j]=flag[j];
                }
            }
            printf("%lld\n",get(c,d)+get(a-1,b-1)-get(c,b-1)-get(a-1,d));
        }
    }
}
标题基于Python的汽车之家网站舆情分析系统研究AI更换标题第1章引言介绍舆情分析在汽车行业的重要性、研究背景、意义及论文创新点。1.1舆情分析的研究背景与意义阐述汽车行业舆情分析对市场决策与品牌管理的价值。1.2国内外舆情分析系统研究现状概述国内外舆情分析系统的技术发展与应用情况。1.3论文研究方法与创新点说明本文采用的技术方法及在舆情分析中的创新之处。第2章相关理论总结舆情分析、文本挖掘与Python编程相关理论。2.1舆情分析基础理论介绍舆情分析的定义、流程及关键技术。2.2文本挖掘技术阐述文本预处理、特征提取与情感分析等技术。2.3Python编程语言基础概述Python在数据处理与可视化方面的优势。第3章系统设计详细介绍基于Python的汽车之家网站舆情分析系统的设计方案。3.1系统总体架构设计系统的整体架构、模块划分及数据流向。3.2数据采集模块设计介绍如何使用Python爬虫采集汽车之家网站数据。3.3数据处理与分析模块设计阐述数据清洗、情感分析与关键词提取等过程。3.4可视化展示模块设计说明如何使用Python库进行数据可视化展示。第4章系统实现阐述系统的具体实现过程与关键技术。4.1开发环境与工具选择介绍系统开发所使用的Python库与开发环境。4.2数据采集实现详细描述爬虫程序的设计与实现。4.3数据处理与分析实现阐述数据处理流程与情感分析算法的实现。4.4可视化展示实现说明可视化图表的设计与实现过程。第5章实验与分析对系统进行实验验证并分析结果。5.1实验数据集与评估指标介绍实验所采用的数据集与评估舆情分析效果的指标。5.2实验方法与步骤给出实验的具体方法与步骤,包括数据采集、处理与分析等。5.3实验结果与分析从准确率、召回率等指标对实验结果进行详细分析。第6章结论与展望总结研究成果并展望未来研究方向。6.1研究结论概括系统实现的主要成果与舆情分析效
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值