CodeForces463C Gargari and Bishops(贪心)

CodeForces463C

题目大意: 

在国际象棋的棋盘上放两个主教,这个两个主教不能攻击到同一个格子,最后的得分是这两个主教的攻击的格子上的分数之和。

求最大的分数。

解题思路: 

由于攻击的范围是对角线,所以两个主教一个在黑格,一个在白格。画个图就能够发现一旦一个主教放在了黑格。那么剩下的黑格是都不能在放主教的,否则就是攻击到同样的格子。

所以求出每条对角线的和,通过这个得出每一个格子作为主教的得分,最后黑白格分开讨论。

代码:

#include <cstdio>
#include <algorithm>
#include <cstring> using namespace std; typedef long long ll;
const int maxn = 2e3 + 5; int N;
ll G[maxn][maxn];
ll d1[maxn*2], d2[maxn*2]; int main () { while (scanf ("%d", &N) != EOF) { memset(d1, 0, sizeof (d1));
memset(d2, 0, sizeof (d2)); for (int i = 1; i <= N; i++)
for (int j = 1; j <= N; j++) {
scanf ("%lld", &G[i][j]);
d1[i + j] += G[i][j];
d2[(i - j) + N] += G[i][j];
} ll odd = -1, even = -1;
int oddx, oddy, evenx, eveny;
for (int i = 1; i <= N; i++) {
for (int j = 1; j <= N; j++) { if ((i + j)&1) {
if (odd < d1[i + j] + d2[i - j + N] - G[i][j]) {
odd = d1[i + j] + d2[i - j + N] - G[i][j];
oddx = i;
oddy = j;
}
} else {
if (even < d1[i + j] + d2[i - j + N] - G[i][j]) {
even = d1[i + j] + d2[i - j + N] - G[i][j];
evenx = i;
eveny = j;
}
}
}
} printf ("%lld\n%d %d %d %d\n", odd + even, oddx, oddy, evenx, eveny);
}
return 0;
}

CodeForces463C Gargari and Bishops(贪心)的更多相关文章

  1. codeforces Gargari and Bishops(很好的暴力)

    /* 题意:给你一个n*n的格子,每一个格子都有一个数值!将两只bishops放在某一个格子上, 每一个bishop可以攻击对角线上的格子(主对角线和者斜对角线),然后会获得格子上的 数值(只能获取一 ...

  2. codeforces 463C. Gargari and Bishops 解题报告

    题目链接:http://codeforces.com/contest/463/problem/C 题目意思:要在一个 n * n 大小的棋盘上放置两个bishop,bishop可以攻击的所有位置是包括 ...

  3. 【CodeForces】Gargari and Bishops

    依据贪心能够知道,放置的教主必须不能相互攻击到(也就是不在一条对角线上)才干够使得结果最大化. 依据观察能够得到教主相互不攻击的条件是他的坐标和互为奇偶(x + y) 之后直接暴力,处理每一个坐标对角 ...

  4. codeforces 463C Gargari and Bishops

    题目链接 这个题, 最主要的应该是找到对角线上的格子的关系. “ \" 这种对角线, 关系是x-y+n相等, ” / “ 这种, 关系是x+y相等.知道每个格子的两种对角线的值, 那么这个格 ...

  5. Codeforces Round #264 (Div. 2) C Gargari and Bishops 【暴力】

    称号: 意甲冠军:给定一个矩阵,每格我们有一个数,然后把两个大象,我希望能够吃的对角线上的所有数字.我问两个最大的大象可以吃值. 分析:这种想法是暴力的主题,计算出每一格放象的话能得到多少钱,然后求出 ...

  6. Codeforces Round #264 (Div. 2) C. Gargari and Bishops 主教攻击

    http://codeforces.com/contest/463/problem/C 在一个n∗n的国际象棋的棋盘上放两个主教,要求不能有位置同时被两个主教攻击到,然后被一个主教攻击到的位置上获得得 ...

  7. Codeforces 463C Gargari and Bishops 题解

    题目出处: http://codeforces.com/contest/463/problem/C 感觉本题还是挺难的.须要好好总结一下. 计算对角线的公式: 1 右斜对角线,也叫主对角线的下标计算公 ...

  8. 【Henu ACM Round#24 B】Gargari and Bishops

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 如果写过n皇后问题. 肯定都知道 某个点(i,j)和它在同一条对角线上的点分别是i+j的值和i-j的值相同的点. 然后会发现选择的两 ...

  9. LUXURY 8

    A - Gargari and Bishops Time Limit:3000MS     Memory Limit:262144KB     64bit IO Format:%I64d & ...

随机推荐

  1. 闲来瞎扯 -- 在vs2008下编写linux程序

    虽说vim很强大,但是个人感觉器代码提示功能不如visual assist来的强大.如何使用visual assist来实现代码的提示功能呢? 首先说明我的环境 : 宿主机是xp(O(∩_∩)O~还是 ...

  2. perl 实现微信简版<2>

    <pre name="code" class="python">use LWP::UserAgent; use URI::Escape; use N ...

  3. spring 定时任务(3)--配置多个定时任务

    <!-- 定义调用对象和调用对象的方法 --> <!-- 定时任务 A start --> <bean id="jobtask" class=&quo ...

  4. 打印 上一主题 下一主题 利用cURL实现单个文件分多段同时下载,支持断点续传(修订版)

      利用cURL实现单个文件分多段同时下载,支持断点续传(修订版) [复制链接] 摘自 http://bbs.chinaunix.net/thread-917952-1-1.html 在ubuntu下 ...

  5. C#基础:事件(一) 【转】

    前面简要介绍了委托的基本知识,包括委托的概念.匿名方法.Lambda表达式等,现在讲讲与委托相关的另一个概念:事件. 事件由委托定义,因为事件的触发方(或者说发布方)并不知道事件的订阅方会用什么样的函 ...

  6. Linux启动新进程的几种方法及比较

    有时候,我们需要在自己的程序(进程)中启动另一个程序(进程)来帮助我们完成一些工作,那么我们需要怎么才能在自己的进程中启动其他的进程呢?在Linux中提供了不少的方法来实现这一点,下面就来介绍一个这些 ...

  7. 很好很实用的.net、网站系统后台模板

    本模板是程序园给大家提供的应用系统开发后台模板,主要使用div+css布局实现,菜单使用了ddaccordion.js菜单控件. 转载请标明:http://www.kwstu.com/ArticleV ...

  8. POJ 1734 求最小环路径 拓展Floyd

    九野的博客,转载请注明出处:http://blog.csdn.net/acmmmm/article/details/11888019 题意: n个点 m条无向边 下面m条有权无向边 问图中最小环的路径 ...

  9. Android自己定义组件系列【7】——进阶实践(4)

    上一篇<Android自己定义组件系列[6]--进阶实践(3)>中补充了关于Android中事件分发的过程知识.这一篇我们接着来分析任老师的<可下拉的PinnedHeaderExpa ...

  10. XSD (xml Schema Definition)

    .xsd文件是定义DataSet的XML文件,利用XML文件的结构优势容易可视化地设计DataSet,设计完它会生成相应的.cs文件,里面的内容就是对应的类型化的DataSet.你的代码里的DataA ...