bzoj1218: [HNOI2003]激光炸弹(DP二维前缀和)
2024-10-02 08:09:30
1218: [HNOI2003]激光炸弹
题目:传送门
题解:
一道经典题目啊...
为了更好的操作...把整个坐标系向右上角移动,从(1,1)开始
那么f[i][j]统计一下以(i,j)作为右上角,以(1,1)作为左下角所组成的矩阵里面的价值和
不难发现,爆炸范围为R*R,且刚好在边上的点不会被摧毁,那么有效矩阵的四条边上肯定就只有R个点
那么ans=max(ans,f[i][j]+f[i-r][j-r]-f[i][j-r]-f[i-r][j]);
代码:
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>
using namespace std;
int f[][];
int main()
{
memset(f,,sizeof(f));
int n,r,x,y,v;scanf("%d%d",&n,&r);
for(int i=;i<=n;i++)scanf("%d%d%d",&x,&y,&v),f[x+][y+]+=v;
for(int i=;i<=;i++)
for(int j=;j<=;j++)f[i][j]+=f[i-][j];
for(int i=;i<=;i++)
for(int j=;j<=;j++)f[i][j]+=f[i][j-];
int ans=;
for(int i=r;i<=;i++)for(int j=r;j<=;j++)
ans=max(ans,f[i][j]+f[i-r][j-r]-f[i][j-r]-f[i-r][j]);
printf("%d\n",ans);
return ;
}
最新文章
- Mysql中sql_mode详解
- 探秘Tomcat(一)——Myeclipse中导入Tomcat源码
- D/A转换器实验
- Path文件操作实例
- iOS开发 返回字符串的宽高
- 【jmter】JDBC进行mysql数据库测试
- ios Swift 之github
- BZOJ3410: [Usaco2009 Dec]Selfish Grazing 自私的食草者
- 怎样实现IOS开发中的数据存储方式
- 3. QT窗体间值的传递(续)
- 编程策略类note
- SQL Server索引进阶:第六级,标签
- 7z文件格式及其源码
- ConcurrentHashMap 从Java7 到 Java8的改变
- phpmyadmin设置密码,不用登录直接进入
- nohup: failed to run command `java&#39;: No such file or directory
- 如何使用命令行备份SAP HANA数据库
- Unity3D 记第二次面试
- WebStorm 快键键
- 有关索引的DMV