HDU 4708 Rotation Lock Puzzle(模拟)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4708
题目大意:给定一个方形矩阵,边长为3-10的奇数。每一圈的数字可以沿着顺时针方向和逆时针方向旋转,求使得矩阵主对角线和反对角线和最大时的数以及需要旋转的最小步骤。
分析:简单的模拟。分别计算每一圈旋转后的四个角的值最大需要的步骤(取顺时针、逆时针最小)。
但是我有理由相信这道题目有问题。因为矩阵是正方形,所以把原来的矩阵“躺下”,横竖坐标互换一下,即在输入时不是输入map[i][j] 而是 map[j][i],这样答案应该也是正确的,但是OJ却返回WA。因为这一点,最开始时计算每一圈四个角时的横竖坐标全都互换了,却半天不能AC,以至于怀疑连这么简单的题目都不会做,坑死。哪位大神有高见可以留言。
代码如下:
# include<iostream>
# include<cstdio>
# include<algorithm> using namespace std; int map[][];
int main()
{
int n,sum,step,i,j;
while(scanf("%d",&n) && n)
{
for(i=; i<n; i++)
for(j=; j<n; j++)
scanf("%d",&map[i][j]);
int temp;
sum = step =;
for(i=; i<n/; i++)
{
int tempsum = -,tempstep = ;
for(j=i; j<n-i-; j++)
{
temp = map[j][i] + map[n-i-][j] + map[i][n-j-] + map[n-j-][n-i-];
if(temp > tempsum)
{
tempsum = temp;
tempstep = min(j-i,n-i-j-);
}
}
sum += tempsum;
step += tempstep;
}
printf("%d %d\n",sum+map[n/][n/],step);
}
return ;
}
大神就是大神,一下子看出了问题所在,下面是一位大虾点出来的
你少考虑了一种情况,或者说你那个AC的代码其实是错的。
if(temp > tempsum)
{
tempsum = temp;
tempstep = min(j-i,n-i-j-);
}
else if (temp == tempsum)
{
tempstep = min(tempstep, min(j-i, n-i-j-));
}
果然是少考虑了,就算再做简单题也不能马虎了
HDU 4708 Rotation Lock Puzzle(模拟)的更多相关文章
- HDU 4708:Rotation Lock Puzzle
Rotation Lock Puzzle Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- HDU 4708 Rotation Lock Puzzle (简单题)
Rotation Lock Puzzle Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- hdu 4708 Rotation Lock Puzzle 2013年ICPC热身赛A题 旋转矩阵
题意:给出一个n*n的矩阵,旋转每一圈数字,求出对角线可能的最大值,以及转到最大时的最小距离. 只要分析每一层就可以了,本来想用地址传递二维数组,发现行不通,改了一下就行了. 这里有个坑,比如: 1 ...
- hduoj 4708 Rotation Lock Puzzle 2013 ACM/ICPC Asia Regional Online —— Warmup
http://acm.hdu.edu.cn/showproblem.php?pid=4708 Rotation Lock Puzzle Time Limit: 2000/1000 MS (Java/O ...
- hdu4708 Rotation Lock Puzzle
Rotation Lock Puzzle Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- HDUOJ---(4708)Rotation Lock Puzzle
Rotation Lock Puzzle Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- Rotation Lock Puzzle
Problem Description Alice was felling into a cave. She found a strange door with a number square mat ...
- HDU 4041 Eliminate Witches! (模拟题 ACM ICPC 2011亚洲北京赛区网络赛)
HDU 4041 Eliminate Witches! (模拟题 ACM ICPC 2011 亚洲北京赛区网络赛题目) Eliminate Witches! Time Limit: 2000/1000 ...
- Python用上锁和解锁 lock lock.acquire lock.release 模拟抢火车票
Python用上锁和解锁 lock lock.acquire lock.release 模拟抢火车票 import jsonimport timefrom multiprocessing impor ...
随机推荐
- iLearning D3.js 2.0 released
There are some great changes in 2.0 version. Console in tutorial: In previous version, there will be ...
- Git log高级用法
格式化Log输出 首先,这篇文章会展示几种git log格式化输出的例子.大多数例子只是通过标记向git log请求或多或少的信息. 如果你不喜欢默认的git log格式,你可以用git config ...
- zoj 3757 Alice and Bob and Cue Sports 模拟
题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3757 #include<cstdio> #incl ...
- POJ3107--Godfather(树的重心)
vector建图被卡了..改为链式前向星500ms过的..差了四倍多?... 表示不太会用链表建图啊..自己试着写的,没看模板..嗯..果然错了..落了一句话orz 树的重心就是找到一个树中一个点,其 ...
- 升级web项目步骤
1.备份数据库(数据库服务器cmd执行,exp pra/pra@ORCL file=c:\name.dmp)2.删除原有表,导入新的备份文件(数据库服务器cmd执行,imp pra/pra@ORCL ...
- Lucene子项目------------------Solr遇到的问题
SolrCore Initialization Failures paper: org.apache.solr.common.SolrException:org.apache.solr.common. ...
- Android开源git40个App源码
http://www.itbbu.com/1039.html (JamsMusicPlayer)很棒的音乐播放器(new) (F8)日程安排的软件 (Conversations)基于XMPP的 ...
- php中error_report函数的含义及各参数含义
个错误级别,如下: 1 E_ERROR 致命的运行时错误.错误无法恢复过来.脚本的执行被暂停2 E_WARNING 非致命的运行时错误.脚本 ...
- careercup-递归和动态规划 9.9
9.9 设计一种算法,打印八皇后在8*8棋盘上的各种摆法,其中每个皇后都不同行.不同列,也不在对角线上.这里的“对角线”指的是所有的对角线,不只是平分整个棋盘的那两条对角线. 类似leetcode:N ...
- web工程中spring+ibatis的单元测试--转载
为了保证代码的正确,软件的质量,单元测试几乎是每个程序员都要面临的工作了;而开发中大部分的工作都涉及数据库的操作,也就是平时经常可以看到的DAO了;由于是对数据库的操作,就必然有事务的问题了;如果是启 ...