codeforces Gargari and Bishops(很好的暴力)
/*
题意:给你一个n*n的格子,每一个格子都有一个数值!将两只bishops放在某一个格子上,
每一个bishop可以攻击对角线上的格子(主对角线和者斜对角线),然后会获得格子上的
数值(只能获取一次)。要求输出两个bishops获取的最大值以及它们所在的位置! 思路:直接暴力!....不错的暴力题目!
首先我们都知道每一条主对角线上的横纵坐标的和相同,每一条副对角线上的横纵坐标的差相同!
那么我们在输入的时候就可以将所有对角线上的数值之和求出来了! 最后我们发现如果要获得最大值,那么还有一条就是两个bishops所在的对角线不能相交在
同一个格子上!只要满足两个bishops的哼纵坐标之和互为奇偶就可以了! 在所有格子中找到横纵坐标之和为奇数并且获得对角线上数值最大的格子和横纵坐标之
和为偶数并且获得对角线上数值最大的格子!
二者最大获得值相加就是最终的答案了!
*/
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#define N 2005
using namespace std;
typedef long long LL;
int num[N][N];
LL sumN[N*], sumM[N*]; int n; int main(){
while(scanf("%d", &n)!=EOF){
memset(sumN, , sizeof(sumN));
memset(sumM, , sizeof(sumM));
for(int i=; i<=n; ++i)
for(int j=; j<=n; ++j){
scanf("%d", &num[i][j]);
sumN[i+j]+=num[i][j];//横纵坐标之和为i+j的对角线的数值和
sumM[i-j+n]+=num[i][j];//横纵坐标之差为i-j的对角线的数值和
} LL maxOdd=-, maxEvent=-, s;
int x1, x2, y1, y2;
for(int i=; i<=n; ++i)
for(int j=; j<=n; ++j){
if((i+j)&){
if(maxOdd<(s=sumN[i+j]+sumM[i-j+n]-num[i][j])){
maxOdd=s;//横纵坐标之和为奇数并且获得对角线上数值最大的格子
x1=i;
y1=j;
}
}
else{
if(maxEvent<(s=sumN[i+j]+sumM[i-j+n]-num[i][j])){
maxEvent=s;//横纵坐标之和为偶数并且获得对角线上数值最大的格子
x2=i;
y2=j;
}
}
} printf("%lld\n",maxOdd+maxEvent);
printf("%d %d %d %d\n", x1, y1, x2, y2);
}
return ;
}
codeforces Gargari and Bishops(很好的暴力)的更多相关文章
- CodeForces463C Gargari and Bishops(贪心)
CodeForces463C Gargari and Bishops(贪心) CodeForces463C 题目大意: 在国际象棋的棋盘上放两个主教,这个两个主教不能攻击到同一个格子,最后的得分是这 ...
- Codeforces Round #266 (Div. 2)B(暴力枚举)
很简单的暴力枚举,却卡了我那么长时间,可见我的基本功不够扎实. 两个数相乘等于一个数6*n,那么我枚举其中一个乘数就行了,而且枚举到sqrt(6*n)就行了,这个是暴力法解题中很常用的性质. 这道题找 ...
- Codeforces Round #264 (Div. 2) C Gargari and Bishops 【暴力】
称号: 意甲冠军:给定一个矩阵,每格我们有一个数,然后把两个大象,我希望能够吃的对角线上的所有数字.我问两个最大的大象可以吃值. 分析:这种想法是暴力的主题,计算出每一格放象的话能得到多少钱,然后求出 ...
- Codeforces 463C Gargari and Bishops 题解
题目出处: http://codeforces.com/contest/463/problem/C 感觉本题还是挺难的.须要好好总结一下. 计算对角线的公式: 1 右斜对角线,也叫主对角线的下标计算公 ...
- codeforces 463C. Gargari and Bishops 解题报告
题目链接:http://codeforces.com/contest/463/problem/C 题目意思:要在一个 n * n 大小的棋盘上放置两个bishop,bishop可以攻击的所有位置是包括 ...
- Codeforces Round #264 (Div. 2) C. Gargari and Bishops 主教攻击
http://codeforces.com/contest/463/problem/C 在一个n∗n的国际象棋的棋盘上放两个主教,要求不能有位置同时被两个主教攻击到,然后被一个主教攻击到的位置上获得得 ...
- codeforces 463C Gargari and Bishops
题目链接 这个题, 最主要的应该是找到对角线上的格子的关系. “ \" 这种对角线, 关系是x-y+n相等, ” / “ 这种, 关系是x+y相等.知道每个格子的两种对角线的值, 那么这个格 ...
- 【CodeForces】Gargari and Bishops
依据贪心能够知道,放置的教主必须不能相互攻击到(也就是不在一条对角线上)才干够使得结果最大化. 依据观察能够得到教主相互不攻击的条件是他的坐标和互为奇偶(x + y) 之后直接暴力,处理每一个坐标对角 ...
- Codeforces 778A:String Game(二分暴力)
http://codeforces.com/problemset/problem/778/A 题意:给出字符串s和字符串p,还有n个位置,每一个位置代表删除s串中的第i个字符,问最多可以删除多少个字符 ...
随机推荐
- centos 6.X minimal 系列最小化安装完成后,安装mono和jexus过程小记录
在使用虚拟机安装minimal版centos运行mono+jexus的时候,遇到了一些坑,记录一下,比如虚拟机访问不了网络,没wget命令没开放80端口,等等小问题,其他网上教程已经有mono+jex ...
- WINDOWS窗口风格 WS_OVERLAPPEDWINDOW
转自:http://blog.csdn.net/hquxiezk/archive/2008/07/29/2733269.aspx #define WS_OVERLAPPEDWINDOW (WS_OVE ...
- day9---多线程,线程锁,队列
进程.线程 http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html 使用threading模块实现多线程编程[综述] Pyt ...
- MVVM框架中的一个非常重要的内容:数据双向绑定
双向绑定的意思就是,如下图中,当在input框中输入字符时,红色框框中的字也会随之改变. input框中需要一个绑定:ms-duplex(即“双工绑定”),http://avalonjs.github ...
- HTTP笔记整理(2)
四. http协议之请求 1.http请求由三部分组成,分别是:请求行(request line).请求报头(request header).请求正文(body) (1). 请求行:用来说明请求类 ...
- Groonga 3.0.8 发布,全文搜索引擎
Groonga 3.0.8 改进了管理界面的可用性,支持 groonga_query_log_path 指令(groonga-httpd) 提供基于 nginx 的 HTTP 服务功能,改进了 del ...
- Win7环境下搭建Go开发环境,基于VSCode编辑器
一.在搭建的时候参考以下文章 http://www.cnblogs.com/zsy/archive/2016/02/28/5223957.html http://blog.csdn.net/hil20 ...
- 一致性hash的理解
参考: http://www.blogjava.net/hello-yun/archive/2012/10/10/389289.html http://blog.csdn.net/cywosp/art ...
- 《C#图解教程》读书笔记之六:接口和转换
本篇已收录至<C#图解教程>读书笔记目录贴,点击访问该目录可获取更多内容. 一.接口那点事儿 (1)什么是接口? 一组函数成员而未实现的引用类型.只有类和结构能实现接口. (2)从ICom ...
- [转]quick-cocos2d-x 多分辨率适配详解
http://cn.quick-x.com/?p=1436 多种分辨率的适配一直都是一个蛋疼的问题,各家公司可能都有自己的一套方案.今天我为大家介绍的是我们在多款游戏里实践后的解决方案,相对来说成本和 ...