首页 > 技术文章 > HDU 4500 小Q系列故事——屌丝的逆袭

xiaxiaosheng 2013-09-22 21:48 原文

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4500

解题报告:简单题,数据范围不大,直接暴力每个点,然后再比较出得分最大的点的位置和分数。

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<iostream>
 4 #include<cmath>
 5 using namespace std;
 6 
 7 int mei[30][30],sco[30][30];
 8 int addx[4] = {-1,0,1,0};
 9 int addy[4] = {0,1,0,-1};
10 
11 int main()
12 {
13     int n,m;
14     while(scanf("%d%d",&n,&m),n+m)
15     {
16         for(int i = 1;i<= n;++i)
17         for(int j = 1;j<= m;++j)
18         scanf("%d",&mei[i][j]);
19         int M = -4000000,lx,ly;
20         for(int i = 1;i <= n;++i)
21         for(int j = 1;j <= m;++j)
22         {
23             int tot = 0;
24             for(int k = 0;k < 4;++k)
25             {
26                 int xx = i + addx[k],yy = j + addy[k];
27                 if(xx < 1 || xx > n || yy < 1 || yy > m)
28                 continue;
29                 if(mei[xx][yy] * mei[i][j] < 0)
30                 tot += abs(mei[xx][yy]);
31                 else tot -= abs(mei[xx][yy]);
32             }
33             if(M < tot)
34             {
35                 M = tot;
36                 lx = i,ly = j;
37             }
38         }    
39         printf("%d %d %d\n",lx,ly,M);
40     }
41     return 0;
42 }
View Code

 

推荐阅读