srm 550
来源:互联网 发布:挂办公室的油画 知乎 编辑:程序博客网 时间:2024/04/29 16:19
资瓷点此阅读QvQ
300
Description
有个机器人,从某一点出发,他只有碰到地形边缘或者碰到走过的点时才会改变运动方向,然后接着走,现在给出他的运动轨迹,判断他的运动是否合法,如果合法的话,那么整个地形的最小面积是多少。每次走的步数
Solution
先确定最大的最小的
Code
#include <bits/stdc++.h>using namespace std;#define pb push_back#define mp make_pair#define F first#define S secondtypedef long long LL;typedef pair<int, int> pii;int dx[] = {0, -1, 0, 1};int dy[] = {1, 0, -1, 0};const int N = 205;bool vis[N][N];struct RotatingBot { int minArea(vector <int> moves) { int n = moves.size(); int x = 100, y = 100; int mxx = 100, mxy = 100, mnx = 100, mny = 100; for (int i = 0; i < n; ++i) { int dir = i % 4; int tx = x + dx[dir] * moves[i]; int ty = y + dy[dir] * moves[i]; mxx = max(mxx, tx), mnx = min(mnx, tx); mxy = max(mxy, ty), mny = min(mny, ty); x = tx, y = ty; } x = 100, y = 100; vis[x][y] = 1; if (mxx > 151 || mxy > 151 || mnx < 49|| mxy < 49) return -1; for (int i = 0; i <= 151; ++i) { vis[i][mxy + 1] = vis[i][mny - 1] = 1; vis[mxx + 1][i] = vis[mnx - 1][i] = 1; } for (int i = 0; i < n; ++i) { int dir = i % 4; for (int j = 0; j < moves[i]; ++j) { int tx = x + dx[dir]; int ty = y + dy[dir]; if (vis[tx][ty]) return -1; vis[tx][ty] = 1; x = tx, y = ty; } if (i != n - 1 && !vis[x + dx[dir]][y + dy[dir]]) return -1; } return (mxx - mnx + 1) * (mxy - mny + 1); }};
500
Description
两个人在一个无限大的格子里轮流涂红蓝两色,第一个人先在
Solution
将前几轮的情况手画一下,是下图这个样子的。。
容易发现只有在
Code
#include <bits/stdc++.h>//conclusionusing namespace std;#define pb push_back#define mp make_pair#define F first#define S secondtypedef long long LL;typedef pair<int, int> pii;struct CheckerExpansion { vector <string> resultAfter(long long t, long long x0, long long y0, int w, int h) { vector<string> ans; for (int i = 0; i < h; ++i) { string s = ""; for (int j = 0; j < w; ++j) { LL x = x0 + j; LL y = y0 + h - i - 1; if (y > x) { s += "."; continue; } if ((x + y) % 2 == 0) { LL n = (x + y) / 2; LL m = abs(x - n); if (n >= t) s += "."; else if ((n & m) == m) { //amazing if (n & 1) s += "B"; else s += "A"; } else s += "."; } else s += "."; } ans.pb(s); } return ans; }};
0 0
- SRM 550
- SRM 550
- srm 550
- SRM 114 DIV2 [550]
- SRM 114 DIV2 [550]
- SRM 497 DIV1 550
- SRM 550 - 500 CheckerExpansion
- SRM 610 - 550 AlbertoTheAviator
- SRM 550 TopView
- srm
- srm 144 div 2 550
- SRM 570 DIV1 550 CentaurCompany
- TopCoder SRM 144 DIV2(550-point)
- TopCoder SRM 144 DIV2 550points
- TopCoder SRM 144 DIV1 550 Lottery
- SRM 697 div2 550 推公式
- topcode srm SRM 557
- Top Coder Arena SRM 144 DIV 2 550point
- Java接口声明对象
- git客户端提交代码到github
- 数据结构实验之栈八:栈的基本操作 SDUT
- 线程中的yield与sleep方法的区别
- HDU 3729 最大二分匹配
- srm 550
- 岛上书店
- AJAX 数据传输进度条设计与实现
- 自动化软件测试概述
- ARM裸机开发(四):bootloader的设计
- 【Redis基础】SSH 中Spring-data-redis使用体验
- guidata handles理解
- B-codeforces558B-Amr and The Large Array
- phpredis 安装