回型遍历
来源:互联网 发布:网络阅读利弊的辩论 编辑:程序博客网 时间:2024/05/22 01:35
QAQ
按说最差也就四十万啊,为啥不过。。。。
#include <cstdio>#include <iostream>using namespace std;int getv(int col, int row, int max_col, int max_row) { int level = min(min(row, max_row - 1 - row), min(col, max_col - 1 - col)); int distance = row + col - level * 2; int start_value = 2 * level * (max_row + max_col - 2 * level) + 1; if (row == level || col == max_col - 1 - level || (max_col < max_row && level * 2 + 1 == max_col)) return start_value + distance; int next_value = start_value + (max_row + max_col - 4 * level - 2) * 2; return next_value - distance; } int dx[]={0,0,1,-1},dy[]={1,-1,0,0};int main(){ int n,m,x,y,z; scanf("%d%d%d%d%d",&n,&m,&x,&y,&z); int now_x=x,now_y=y; for(int i=1;i<=z;i++) { int now=getv(now_x,now_y,n,m); for(int j=0;j<=3;j++) if(getv(now_x+dx[j],now_y+dy[j],n,m)==now+1) { now_x+=dx[j],now_y+=dy[j]; break; } } printf("%d %d",now_x,now_y);}
正解!
一下走一行就行啦
#include <cstdio>#include <iostream>#define ll long longusing namespace std;long long getv(long long col, long long row, ll max_col, ll max_row) { ll level = min(min(row, max_row - 1 - row), min(col, max_col - 1 - col)); ll distance = row + col - level * 2; ll start_value = 2 * level * (max_row + max_col - 2 * level) + 1; if (row == level || col == max_col - 1 - level || (max_col < max_row && level * 2 + 1 == max_col)) return start_value + distance; ll next_value = start_value + (max_row + max_col - 4 * level - 2) * 2; return next_value - distance; }ll dx[]={0,1,0,-1,0},step,nows;ll n,m,x,y,z;int main(){ scanf("%lld%lld%lld%lld%lld",&n,&m,&x,&y,&z); z+=getv(x,y,n,m); z--; ll ww=m-1,w=n-1; ll x=0,y=0; while(1) { if(z-w<=0) { y+=z; break; } else y+=w,z-=w; if(z-ww<=0) { x+=z; break; } else x+=ww,z-=ww; if(z-w<=0) { y-=z; break; } else y-=w,z-=w; if(z-ww<=0) { x-=z; break; } x-=ww,z-=ww; } printf("%lld %lld",y,x);}
阅读全文
1 0
- 回型遍历
- 回型遍历
- 回型遍历(螺旋遍历)(js)
- 二维数组的回型遍历
- 回形遍历 calc
- 回形遍历
- 遍历
- 遍历
- 遍历
- 遍历
- 遍历
- 遍历
- 遍历
- 遍历
- 遍历
- 遍历
- 遍历
- 遍历
- 委托
- 重大学生学Linux云计算4个月年薪13万
- Python 最难的问题你猜是什么?
- 2017 面向游戏玩家的八款最佳 Linux 发行版
- 看看世界各地的中秋节是怎么过的
- 回型遍历
- 原生js的ajax请求
- 虚拟机安装mac 在开机页面无限重启
- 汉诺塔问题
- STM32 GPIO初始化步骤
- C#控制台基础 将十六进制的字符串 转换成 十进制数
- 学习日记-第一个Bootstrap页面总结
- 最经典的最长上升子序列问题【LIS】【垃圾死啦都】
- C#控制台基础 将byte类型以十六进制字符串的形式输出