您的位置:首页 > 编程语言

HDU 4500 小Q系列故事——屌丝的逆袭 2013腾讯编程马拉松初赛第〇场第一题

2013-03-23 21:03 155 查看
题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=4500
 

本题关键是判断同性和异性,用积大于0和小于0判断,然后记录坐标就行。

开始我认定小Q是男性,就直接相加了,结果WA。

 

代码如下:

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <string>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#include <queue>
using namespace std;

/*
freopen("input.txt",  "r", stdin);  //读数据
freopen("output.txt", "w", stdout); //注释掉此句则输出到控制台
*/

int xh[25][25];

int main()
{
int i,n,m,j,x1,y1,max;
while(cin>>n>>m,n&&m)
{
memset(xh,0,sizeof(xh));
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
scanf("%d",&xh[i][j]);
max=-0x7f7f7f7f;//最大值初始化最小
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
int temp=0;
if(xh[i][j]*xh[i-1][j]>0)//判断是否是同性
temp-=abs(xh[i-1][j]);//同性减
else
temp+=abs(xh[i-1][j]);//异性加
if(xh[i][j]*xh[i+1][j]>0)
temp-=abs(xh[i+1][j]);
else
temp+=abs(xh[i+1][j]);
if(xh[i][j]*xh[i][j-1]>0)
temp-=abs(xh[i][j-1]);
else
temp+=abs(xh[i][j-1]);
if(xh[i][j]*xh[i][j+1]>0)
temp-=abs(xh[i][j+1]);
else
temp+=abs(xh[i][j+1]);

if(temp>max)
{//记录
max=temp;x1=i;y1=j;
}
}
cout<<x1<<" "<<y1<<" "<<max<<endl;
}
return 520;
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐