先说一说这个OJ:貌似是11区某大学ACM的OJ,叫AIZU ONLINE JUDGE,貌似还可以看到部分犇的代码。。。跪跪跪

然后知道这个OJ是某场比赛安利的= =

接下来将做法:

首先我们可以发现每个点周围两种颜色的个数都是2...(不要问我为什么)

然后可以发现,构成图形是由2 * 2的同色的地砖或者围成一圈的同色地砖且每边的长度都是偶数,详见样例(不要问我为什么,因为很重要所以说两遍)

接着可以发现,如果第一行的状态确定了,整个解就确定了,而且第一行的状态可以做到和k一一对应(不要问我为什么,因为很重要所以说三遍)

然后就可以直接进行构造了。。。

对于一个点(x, y),它上面的点(x, y - 1)的周围另外三个点的颜色都已经确定了,故也可以将它的颜色确定

 #include <cstdio>
#include <cstring> using namespace std;
typedef long long ll;
const int N = ;
const int dx[] = {, -, , };
const int dy[] = {, , , -}; int n;
ll K;
int mp[N][N]; inline bool out (int x) {
return x <= || x > n;
} #define X i + dx[k]
#define Y j + dy[k]
int main() {
int i, j, k, cnt;
while (scanf("%d%lld", &n, &K), n) {
--K;
if (K >= (1ll << (n / )) || (n & )) {
puts("No");
putchar('\n');
continue;
}
memset(mp, -, sizeof(mp));
for (i = ; i <= n; ++i)
mp[][i] = ((K >> (n - i >> )) & );
for (i = ; i < n; ++i)
for (j = ; j <= n; ++j) {
for (k = cnt = ; k < ; ++k) {
if (out(X) || out(Y)) continue;
if (mp[X][Y] == mp[i][j]) ++cnt;
}
if (cnt == ) mp[i + ][j] = !mp[i][j];
else mp[i + ][j] = mp[i][j];
}
for (i = ; i <= n; ++i) {
for (j = ; j <= n; ++j)
putchar(mp[i][j] ? 'E' : '.');
putchar('\n');
}
putchar('\n');
}
return ;
}

AOJ1024 Cleaning Robot 2.0的更多相关文章

  1. HOJ 2226&POJ2688 Cleaning Robot(BFS+TSP(状态压缩DP))

    Cleaning Robot Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4264 Accepted: 1713 Descri ...

  2. Cleaning Robot (bfs+dfs)

    Cleaning Robot (bfs+dfs) Here, we want to solve path planning for a mobile robot cleaning a rectangu ...

  3. poj 2688 Cleaning Robot bfs+dfs

    题目链接 首先bfs, 求出两两之间的距离, 然后dfs就可以. #include <iostream> #include <cstdio> #include <algo ...

  4. POJ 2688 Cleaning Robot

    题意: 给你一个n*m的图.你从'o'点出发,只能走路(图中的'.')不能穿墙(图中的'x'),去捡垃圾(图中的' * ')问最少走多少步能捡完所有垃圾,如有垃圾捡不了,输出-1. 思路: 有两个思路 ...

  5. Japan 2005 Domestic Cleaning Robot /// BFS 状压 二进制位运算 结构体内构造函数 oj22912

    题目大意: 输入w h,接下来输入h行w列的图 ' . ':干净的点:  ' * ' :垃圾:  ' x ' : 墙:  ' o ' : 初始位置: 输出 清理掉所有垃圾的最短路径长度 无则输出-1 ...

  6. Cleaning Robot POJ - 2688

    题目链接:https://vjudge.net/problem/POJ-2688 题意:在一个地面上,有一个扫地机器人,有一些障碍物,有一些脏的地砖,问,机器热能不能清扫所有的地砖, (机器人不能越过 ...

  7. Notes on how to use Webots, especially how to make a robot fly in the air

    How to create a new project Wizard - New project directory   Scene Tree Scene tree is a representati ...

  8. POJ 2632 Crashing Robots 模拟 难度:0

    http://poj.org/problem?id=2632 #include<cstdio> #include <cstring> #include <algorith ...

  9. C. Vasya and Robot二分

    1.题目描述 Vasya has got a robot which is situated on an infinite Cartesian plane, initially in the cell ...

随机推荐

  1. CentOS7.3防火墙firewalld简单配置

    今天安装了centos7.3, 想用iptables的save功能保存规则的时候发现跟rhel不一样了,  后来度娘说centos用的是firewalld而不是iptables了, 平时工作都是用re ...

  2. Educational Codeforces Round 21 Problem A - C

    Problem A Lucky Year 题目传送门[here] 题目大意是说,只有一个数字非零的数是幸运的,给出一个数,求下一个幸运的数是多少. 这个幸运的数不是最高位的数字都是零,于是只跟最高位有 ...

  3. Elasticsearch 基础概念知识

    接近实时(NRT) Elasticsearch是一个接近实时的搜索平台.这意味着,从索引一个文档直到这个文档能够被搜索到有一个轻微的延迟(通常是1秒). 集群(cluster) 一个集群就是由一个或多 ...

  4. Atcoder Educational DP Contest

    前面简单一点的题直接过吧. A 暴力DP B 怎么还是暴力DP C 还是暴力DP D 直接背包 E 这个背包不太一样了,这里有一个技巧,就是因为价值很小,所以直接对价值背包,求出来达到某一个权值最小的 ...

  5. 自整理的jquery.Validate验证表达式

    自整理几个jquery.Validate验证正则: 1. 只能输入数字和字母    /^[0-9a-zA-Z]*$/g jQuery.validator.addMethod("letters ...

  6. jquery扩展的两个方法与区别 $.extend $.fn.extend

    jQuery.extend:Query本身的扩展方法 jQuery.fn.extent(Object) jquery 所选对象扩展方法 jQuery.extend 我们先把jQuery看成了一个类,这 ...

  7. 【NOI2013】向量内积

    定义两个$d$维向量${A=[a_1,a_2....a_n]}$,${B=[b_1,b_2....b_n]}$的内积为其相对应维度的权值的乘积和: $${\left \langle A,B \righ ...

  8. go 异常处理

    package main import "fmt" func main() { defer func() { if err := recover(); err != nil { f ...

  9. python 函数返回函数

    def hi(name="yasoob"): def greet(): return "now you are in the greet() function" ...

  10. c++ 判断两个容器是否相等(equal)

    #include <iostream> // cout #include <algorithm> // equal #include <vector> // vec ...