HDU4708 Rotation Lock Puzzle 不错的模拟题
来源:互联网 发布:苹果电脑下不了淘宝 编辑:程序博客网 时间:2024/05/22 01:42
题意:给你一个n*n的矩阵,n为奇数,以最中心的一个数为基准,可以把这个矩阵 看成一圈一圈的,每一圈都可以逆时针或者顺时针旋转,每一次旋转每个元素只能移动一个单元格,求经过每一圈的旋转矩阵两个对角线和最大的值,并求出最少旋转次数
一圈一圈的处理,注意最中心的那个数不用管,就它一个,那么这个矩阵只有n/2圈需要操作,对于每一圈的元素都放在一个一维数组里面,然后枚举这个数组里的每一个元素为开头,统计接下来的三个数,求和比较大小即可,因为有逆时针的,所以顺时针时从开头开始枚举,逆时针则从尾部开始枚举,这题数据貌似有些烂,
int n;int mp[15][15];void init() {memset(mp,0,sizeof(mp));}bool input() {while(cin>>n,n) {for(int i=0;i<n;i++)for(int j=0;j<n;j++)cin>>mp[i][j];return false;}return true;}void cal() {int ans = 0;int cnt = 0;int nnum = n/2;int aa[100 + 55];for(int k=0;k<nnum;k++) {memset(aa,0,sizeof(aa));int pos = 0;int sum = 0;int now = 0;for(int j=k;j<n - k;j++)aa[pos++] = mp[k][j];for(int i=k + 1;i<n - k;i++)aa[pos++] = mp[i][n - k - 1];for(int j=n - k - 2;j >k;j--)aa[pos++] = mp[n - k - 1][j];for(int i=n - k - 1;i>k;i--)aa[pos++] = mp[i][k];for(int i=0;i<=(pos + 1)/2;i++) {int tmp = 0;tmp = aa[i%pos] + aa[(i+(n-2*k-1))%pos] + aa[(i+2*(n-2*k-1))%pos] + aa[(i+3*(n-2*k-1))%pos];if(tmp > sum) {sum = tmp;now = i;}if(tmp == sum) {if(i < now)now = i;}}for(int i=pos-1,mark = 0;mark <=(pos+1)/2;i--) {int tmp = 0;tmp = aa[i%pos] + aa[(i+(n-2*k-1))%pos] + aa[(i+2*(n-2*k-1))%pos] + aa[(i+3*(n-2*k-1))%pos];if(tmp > sum) {sum = tmp;now = pos - i;}if(tmp == sum) {if(pos - i < now)now = pos - i;}mark++;}ans += sum;cnt += now;}ans += mp[n/2][n/2];cout<<ans<<" "<<cnt<<endl;}void output() {}int main() {while(true) {init();if(input())return 0;cal();output();}return 0;}
0 0
- HDU4708 Rotation Lock Puzzle 不错的模拟题
- hdu4708 Rotation Lock Puzzle
- hdu 4708 Rotation Lock Puzzle(模拟)
- Hdu 4708 Rotation Lock Puzzle --模拟
- hdu - 4708 - Rotation Lock Puzzle
- hdu 4708 Rotation Lock Puzzle
- HDU 4708 Rotation Lock Puzzle
- hdu 4708 Rotation Lock Puzzle
- HDU 4708 Rotation Lock Puzzle
- HDU 4708 Rotation Lock Puzzle
- HDU 4708 Rotation Lock Puzzle
- hdu 4708 Rotation Lock Puzzle
- HDU 4708:Rotation Lock Puzzle
- HDU 4708 Rotation Lock Puzzle (热身赛第三题)
- HDU 4708 Rotation Lock Puzzle 解题报告
- hdu 4708 Rotation Lock Puzzle 2013年ICPC热身赛A题 旋转矩阵
- 2013杭电warm up1 Rotation Lock Puzzle
- HDU 4708 Rotation Lock Puzzle(数学啊)
- AS3本地运行库LocalConnection,SharedObject详解
- 关于flash中图片(jpg\\png\\gif)旋转后锯齿(模糊)问题
- Flash Build 4编译慢、报java heap space 堆空间异常错误的解决方法
- Flex中改变对象在容器中的叠放层次
- Flex TextInput 输入时选定状态框禁止
- HDU4708 Rotation Lock Puzzle 不错的模拟题
- flash垃圾回收机制,内存泄漏的常见情况及内存释放优化的原则
- flash as3的文字描边效果和投影效果
- AS3中释放优化的几条常识
- Flash Player 11 & AIR 3.0 新特性
- Super用法
- AS3.0编程 滤镜类及应用
- FLEX AIR添加系统托盘图标步骤
- C实现三种插入排序-简单插入排序、二分插入排序、希尔插入排序