题目描述

Cainiao is a university student who loves ACM contest very much. It is a festival for him once when he attends ACM Asia Regional Contest because he always can find some famous ACMers there.

Cainiao attended Asia Regional Contest Fuzhou Site on November 20, 2011. After he got seat map, he wanted to know which seat is the best one.

Cainiao have joined so many QQ Group about ACM/ICPC that he is almost familiar with the strength of each team. In his mind, the value of a seat is defined as following:



1. Strength of each team can be expressed as a positive integer.

2. The value of a seat is related to the adjacent seat (up/down/left/right, only four directions being considering).

3. For an adjacent seat, if the strength of this team is stronger than yours, the absolute value of difference of two teams should be added to your seat, otherwise, the absolute value of difference should be subtracted from your seat.

4. If the adjacent seat is empty (which means you are located at the most left/right/up/down), the value of your seat should be subtracted 1.

5. The best one in a contest is the seat that has the highest value.

6. The initial value of the seat is ZERO.

For example, there are 12 ( 3 X 4 ) teams in a contest, the strength of each team is as figure (a), and then you can calculate the value of each seat as figure (b).

输入

Input contain a positive integer T( T <=50 ) in the first line, which means T cases.

The first line of each case contains two positive integers N and M (3 <= N, M <= 20) which means the row and column number of the teams, then N rows following, each line contains M positive integers that represent the strengths of the teams.

输出

For each case, first output the case number, and then output the value and row number and column number of the best seat in one line for each case. 

If there are multiple solutions for one case, you should output the seat whose row number is largest and only output the seat whose column number is largest if still overlapping.

示例输入

13 41 5 3 46 3 3 44 3 2 1

示例输出

Case 1: 7 1 1

提示

 

来源

2012年"浪潮杯"山东省第三届ACM大学生程序设计竞赛

/**************
简单的模拟题,因为粗心被弄得WA了好多次。。
题意很简单,不说了。
我的解法:求 f[i][j] 时,用 num[i][j]上下左右四个方向元素的和 减去 4*num[i][j];
考虑到边界,只需要把 num[i][j]-1的6给边界的给外面一行/列  就OK了。
*********************/
Code:
#include <iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
const int MAX = 30;
int num[MAX][MAX];
int figure[MAX][MAX];
int main()
{
int t,m,n,i,j,h;
cin>>t;
for(h = 1;h<=t;h++)
{
cin>>m>>n;
memset(num,0,sizeof(num));
memset(figure,0,sizeof(figure));
for(i = 1;i<=m;i++)
for(j = 1;j<=n;j++)
{
cin>>num[i][j];
}
/// 边界处理
for(i = 1;i<=m;i++)
{
num[i][0] = num[i][1]-1;
num[i][n+1] = num[i][n]-1;
}
for(i = 1;i<=n;i++)
{
num[0][i] = num[1][i]-1;
num[m+1][i] = num[m][i]-1;
}
for(i = 1;i<=m;i++)
{
for(j = 1;j<=n;j++)
{
int sum = num[i+1][j] + num[i-1][j] + num[i][j+1] + num[i][j-1];/// 思路中代码实现
figure[i][j] = sum - num[i][j]*4;
}
}
int ans = -99999999,r,c;
for(i = 1;i<=m;i++)
{
for(j = 1;j<=n;j++)
{
if(ans<figure[i][j])
{
ans = figure[i][j];
r = i;c = j;
}
}
}
cout<<"Case "<<h<<": "<<ans<<" "<<r<<" "<<c<<endl;
}
return 0;
} /**************************************
Problem id : SDUT OJ 2409
User name : CY_
Result : Accepted
Take Memory : 476K
Take Time : 0MS
Submit Time : 2014-04-28 09:27:04
**************************************/



Sdut 2409 The Best Seat in ACM Contest(山东省第三届ACM省赛 H 题)(模拟)的更多相关文章

  1. [2012山东省第三届ACM大学生程序设计竞赛]——n a^o7 !

    n a^o7 ! 题目:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2413 Time Lim ...

  2. [2012山东省第三届ACM大学生程序设计竞赛]——Mine Number

    Mine Number 题目:http://acm.sdut.edu.cn/sdutoj/problem.php? action=showproblem&problemid=2410 Time ...

  3. 山东省第三届ACM省赛

    Solved ID PID Title Accepted Submit   A 2407 Impasse (+) 0 0   B 2415 Chess 0 0   C 2414 An interest ...

  4. Sdut 2416 Fruit Ninja II(山东省第三届ACM省赛 J 题)(解析几何)

    Time Limit: 5000MS Memory limit: 65536K 题目描述 Haveyou ever played a popular game named "Fruit Ni ...

  5. [ACM]2013山东省“浪潮杯”省赛 解题报告

    题目地址:http://acm.upc.edu.cn/problemset.php?page=13  2217~2226 A.Rescue The Princess 一个等边三角形告诉前2个点,求逆时 ...

  6. ACM: NBUT 1105 多连块拼图 - 水题 - 模拟

    NBUT 1105  多连块拼图 Time Limit:1000MS     Memory Limit:65535KB     64bit IO Format:  Practice  Appoint ...

  7. 2012年"浪潮杯"山东省第三届ACM大学生程序设计竞赛--n a^o7 ! 分类: 比赛 2015-06-09 17:16 14人阅读 评论(0) 收藏

    n a^o7 ! Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 All brave and intelligent fighte ...

  8. hdu 4438 第37届ACM/ICPC 天津赛区现场赛H题

    题意:Alice和Bob两个人去打猎,有两种(只)猎物老虎和狼: 杀死老虎得分x,狼得分y: 如果两个人都选择同样的猎物,则Alice得分的概率是p,则Bob得分的概率是(1-p): 但是Alice事 ...

  9. sdut2408 pick apples (贪心+背包)山东省第三届ACM省赛

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/svitter/article/details/24642587 本文出自:http://blog.c ...

随机推荐

  1. Exception in thread "main" java.lang.IllegalArgumentException:解决方法

    使用fileSystem的delete方法无法删除文件或目录 Exception in thread "main" java.lang.IllegalArgumentExcepti ...

  2. HW3.18

    import javax.swing.JOptionPane; public class Solution { public static void main(String[] args) { Str ...

  3. 利用stdin stdout stderr及POSIX-linux机制重定向写日志

    由open返回的文件描述符一定是该进程尚未使用的最小描述符.由于程序启动时自动打开文件描述符0.1.2,因此第一次调用open打开文件通常会返回描述符3,再调用open就会返回4.可以利用这一点在标准 ...

  4. 高并发Web服务的演变:节约系统内存和CPU

    一.越来越多的并发连接数 现在的Web系统面对的并发连接数在近几年呈现指数增长,高并发成为了一种常态,给Web系统带来不小的挑战.以最简单粗暴的方式解决,就是增加Web系统的机器和升级硬件配置.虽然现 ...

  5. Topology拓扑

  6. Learning JavaScript Design Patterns The Singleton Pattern

    The Singleton Pattern The Singleton pattern is thus known because it restricts instantiation of a cl ...

  7. PHP留言板(实例)

    lyb.htm <div class="lymain"> <script language="JavaScript"> function ...

  8. MapKit框架使用

    MapKit框架使用 一.地图的基本使用 1.简介 MapKit:用于地图展示,例如大头针/路线/覆盖层展示等(着重界面展示) 使用步骤: 导入主头文件 MapKit/MapKit.h MapKit有 ...

  9. 一个不喜欢读书的Javaer的读书单

    很可惜,从我一开始学技术开始,我就不喜欢看书,严重的时候翻不到两页就会开始狂打瞌睡.很幸运,有互联网能够为我提供很多知识,甚至一些知识从网上看来的会更加权威一些.但是,我的经验告诉我,无论是从功利性的 ...

  10. Android_RadioButton,CheckBox

    xml文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:t ...