zoukankan      html  css  js  c++  java
  • 【解题报告】 [HNOI2003]激光炸弹

    【解题报告】 [HNOI2003]激光炸弹

    题目:luogu P2280

    在这样可爱的夜晚,调试题目恐怕是最爽的选择了

    附:https://www.luogu.org/record/list?user=136889

    在这么多次失败下我终于成功了

    解题思路:

    前缀和与拆分

    这是一道简单题,但是我却调试了那么多次没调出来,竟然是循环的问题

    rp--。。

    建立一个二维数组,储存某个区域的目标的数量,然后就使用一个二维前缀和,就可以弄出来了,注意因为时间的原因,在输入的时候也就直接输入了,我那么多次就是因为超时

    AC代码

    #include <iostream>
    using namespace std;
    const int maxn=5005;
    int r,n;
    int s[maxn][maxn];
    int ans;
    int x,y,w;
    int max(int a,int b)
    {
    	return a>b? a:b;
    }
    int main()
    {
    	cin>>n>>r;
    	for(int i=1;i<=n;i++)
    	{
    		cin>>x>>y>>w; 
    		s[x+1][y+1]=w;
    	}
    	for(int i=1;i<=5001;i++)
    	{
    		for(int j=1;j<=5001;j++)
    		s[i][j]+=s[i-1][j]+s[i][j-1]-s[i-1][j-1];
    	}
    	for(int i=0;i<=5001-r;i++)
    	{
    		for(int j=0;j<=5001-r;j++)
    		ans=max(ans,s[i][j]-s[i+r][j]-s[i][j+r]+s[i+r][j+r]); 
    	}
    	cout<<ans<<endl;
    	return 0;
    }
    
    本博文为wweiyi原创,若想转载请联系作者,qq:2844938982
  • 相关阅读:
    Nexus3.0私服搭建
    JavaScript
    Spring基础
    Hibernate注解
    HTML5
    Apache Tomcat
    Java安装(Ubuntu)
    C++ 日期 & 时间
    C++ 引用
    C++ 指针
  • 原文地址:https://www.cnblogs.com/wweiyi2004/p/11306348.html
Copyright © 2011-2022 走看看