codevs1083+codevs1160 模拟
来源:互联网 发布:淘宝大学认证 编辑:程序博客网 时间:2024/06/03 05:39
题目:codevs1160 codevs1083
思路:模拟题主要就是找规律吧
代码如下:
codevs1160 :
#include<iostream>#include<cstring>#define right 1#define up 2#define left 3#define down 4using namespace std;int n;int m = 1;int a[100][100];int dir = right;int x ,y ;void go(){if(dir == right){a[x][++y] = ++m;}else if(dir == up){a[--x][y] = ++m;}else if(dir == left){a[x][--y] = ++m;}else if(dir == down){a[++x][y] = ++m;}}int main(){cin >> n;x = n/2;y = n/2;memset(a,0,sizeof(a));a[x][y] = 1;while(m < n*n){go();if(dir == right&&!a[x-1][y]){dir = up;}else if(dir == up&&!a[x][y-1]){dir = left;}else if(dir == left&&!a[x+1][y]){dir = down;}else if(dir == down&&!a[x][y+1]){dir = right;}}int sum = 0;for(int i = 0;i < n;i++){for(int j = 0;j < n;j++){cout << a[i][j] << " ";}cout << endl;}for(int i = 0;i < n;i++){sum += a[i][i]+a[i][n-i-1];} sum -= 1;cout << sum;return 0;}
#include<iostream>#define right 1#define right_up 2#define left_down 3#define down 4using namespace std;int x = 1,y = 1;int dir = right;void go(int dir){if(dir == right)y++;else if(dir == right_up){x--;y++;}else if(dir == down) x++;else if(dir == left_down){y--;x++;}}int main(){int n;cin >> n;while(--n){go(dir);if(x==1&&dir == right_up){dir = right;}else if(x == 1&&dir == right){dir = left_down;}else if(y == 1&& dir == left_down){dir = down; } else if(y == 1&& dir == down) { dir = right_up; }}cout << x << "/" << y;return 0; }
阅读全文
0 0
- codevs1083+codevs1160 模拟
- codevs1083 Cantor表
- codevs1160 蛇形矩阵
- codevs1160-蛇形矩阵(螺旋矩阵)
- codevs1083 Cantor表(类似于蛇形矩阵吧)
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟:
- 模拟
- 模拟
- 模拟
- 调试远程注入下的DLL并解决namke生成的问题
- 17.11.18日报
- 猜数游戏
- ibmysql.dll : fatal error LNK1107: 文件无效或损坏: 无法在 0x368 处读取
- 我的电路实践
- codevs1083+codevs1160 模拟
- 模拟三次密码输入的场景
- 折半查找、大小写转换
- 在阿里云服务器上开启了一个express服务但是只能内网访问 外网没有办法进行访问
- 算法分析:求最近点对问题(c++)
- 释怀过去
- 利用反射调用webservice
- 设置elevation后没有用,没有阴影显示
- Material Design控件之Switch|SwitchCompat