zoukankan      html  css  js  c++  java
  • Evanyou Blog 彩带

      题目传送门

      

    题目描述

    输入输出格式

    输入格式:

     

    输入文件名为input.txt

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

     

    输出格式:

     

    输出文件名为output.txt

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

     

    输入输出样例

    输入样例#1: 复制
    2 1
    0 0 1
    1 1 1
    
    输出样例#1: 复制

      1


      分析:也没什么好分析的,基本的前缀和,用下容斥原理,注意一下边界就可以了。

      Code:(稍微有点乱,将就下吧)

      

    #include<cstdio>
    #include<cstring>
    #include<cstdlib>
    #include<cmath>
    #include<iostream>
    #include<iomanip>
    #include<algorithm>
    #define Fi(i,a,b) for(int i=a;i<=b;i++)
    using namespace std;
    const int N=5e3+7;
    int ans,n,m,a[N][N],maxx;
    int main()
    {
      ios::sync_with_stdio(false);
      cin>>n>>m;int x,y,v;
      Fi(i,1,n){cin>>x>>y>>v;a[x][y]=v;maxx=max(maxx,max(x,y));}
      Fi(i,1,maxx)a[i][0]=a[i][0]+a[i-1][0],a[0][i]=a[0][i]+a[0][i-1];
      Fi(i,1,maxx)Fi(j,1,maxx)
        {a[i][j]=a[i][j]+a[i-1][j]+a[i][j-1]-a[i-1][j-1];}
      Fi(i,m,maxx)ans=max(ans,max(a[i][m-1]-a[i-m][m-1],a[m-1][i]-a[m-1][i-m]));
      Fi(i,m,maxx)Fi(j,m,maxx)
        {ans=max(ans,a[i][j]-a[i-m][j]-a[i][j-m]+a[i-m][j-m]);}
      cout<<ans<<"
    ";return 0;
    }
  • 相关阅读:
    U盘支持启动windows和Linux
    emacs安装
    npm 安装指定的第三方包
    npm安装第三方包
    npm 安装淘宝镜像
    ssm 环境搭建
    gitBook安装简介
    git 博客搭建
    git 多人开发
    git ssh提交
  • 原文地址:https://www.cnblogs.com/cytus/p/9002248.html
Copyright © 2011-2022 走看看