• 洛谷P2280 [HNOI2003]激光炸弹


    题目描述
    这里写图片描述

    输入输出格式

    输入格式:
    输入文件名为input.txt

    输入文件的第一行为正整数n和正整数R,接下来的n行每行有3个正整数,分别表示 xi,yi ,vi 。

    输出格式:
    输出文件名为output.txt

    输出文件仅有一个正整数,表示一颗炸弹最多能炸掉地图上总价值为多少的目标(结果不会超过32767)。

    输入输出样例

    输入样例#1:
    2 1
    0 0 1
    1 1 1
    输出样例#1:
    1
    .
    .
    .
    .
    .

    分析

    对于这道题,我们可以直接用二维前缀和来做
    设f[i][j]表示从1,1到i,j这个矩形的总和
    则有f[i][j]=f[i-1][j]+f[i][j-1]+x-f[i-1][j-1]
    .
    .
    .
    .
    .

    程序:
    #include<iostream>
    using namespace std;
    int a[5002][5002],x,y,w,ans;
    int main()
    {
        int n,r;
        cin>>n>>r;
        for(int i=1;i<=n;i++)
        {
            cin>>x>>y>>w;
            a[x+1][y+1]=w;
        }
        for(int i=1;i<=5001;i++)
        for(int j=1;j<=5001;j++)
        a[i][j]=a[i-1][j]+a[i][j-1]+a[i][j]-a[i-1][j-1];
        for(int i=0;i<5001-r;i++)
        for(int j=0;j<5001-r;j++)
        ans=max(ans,a[i+r][j+r]-a[i+r][j]-a[i][j+r]+a[i][j]);
        cout<<ans;
        return 0;
    }
  • 相关阅读:
    C++实现二叉树的相应操作
    C++对文件的操作
    C++与C的区别二
    C++多线程编程二
    C++多线程编程一
    C语言多线程编程二
    C语言多线程编程一
    HTML练习(三)
    磁盘/内存模式查询数据
    RestTemplate使用不当引发的问题分析
  • 原文地址:https://www.cnblogs.com/YYC-0304/p/9499911.html
Copyright © 2020-2023  润新知