旋转过程的下标变化,画个2x2的表格,模拟就可以出来了

#include <string>
#include<iostream>
#include<map>
#include<memory.h>
#include<vector>
#include<algorithm> namespace cc
{
using std::cout;
using std::endl;
using std::cin;
using std::map;
using std::vector;
using std::string;
using std::sort; constexpr int N = 51; map<string, int> status;
int board[N][N]; int n;
string toString(int b[][N])
{
string str = "";
for (int i=1;i<=n;i++)
{
for (int j=1;j<=n;j++)
{
str += std::to_string(b[i][j]);
}
}
return str; } string xuanzhuan(int i)
{
int temp[N][N];
if (i == 0)
{
//顺时针90度
for (int i = 1, k = n; i <= n; i++, k--)
for (int j = 1; j <= n; j++)
temp[j][k] = board[i][j];
return toString(temp);
}
else if (i==1)
{
for (int i = 1, k = n; i <= n; i++, k--)
for (int j = 1; j <= n; j++)
temp[j][k] = board[i][j];
// 180
int temp2[N][N];
for (int i = 1, k = n; i <= n; i++, k--)
for (int j = 1; j <= n; j++)
temp2[j][k] = temp[i][j];
return toString(temp2);
}
else if (i==2)
{ for (int i = 1; i <= n; i++)//逆时针90度
for (int j = 1, k = n; j <= n; j++, k--)
temp[k][i] = board[i][j];
return toString(temp);
} } void solve()
{
while (cin>>n&&n)
{
memset(board,0,sizeof(board));
status.clear();
int r, c;
char op;
int ok = 0;
int play = 1;
int step = 0;
for (int i=1;i<=2*n;i++)
{
cin >> r >> c >> op;
if (op=='-')
{
//nazou
board[r][c] = 0;
}
else
{
board[r][c] = 1;
}
if(ok==0)
{
step=i;
play = i;
string str = "";
str = xuanzhuan(0);
if (ok==0&&status[str] == 1)
{
ok = 1;
}
str = xuanzhuan(1);
if (ok == 0 && status[str] == 1)
{
ok = 1;
}
str = xuanzhuan(2);
if (ok == 0 && status[str] == 1)
{
ok = 1;
}
str = toString(board);
if (ok == 0 && status[str] == 1)
{
ok = 1;
}
status[str] = 1;
}
}
if (ok == 0)
{
cout << "Draw" << endl;
}
else
{
cout << "Player " << (play % 2+1) << " wins on move " << step << endl;
}
}
} }; int main()
{ #ifndef ONLINE_JUDGE
freopen("d://1.text", "r", stdin);
#endif // !ONLINE_JUDGE
cc::solve(); return 0;
}

  

uva-141-枚举的更多相关文章

  1. UVa 12169 (枚举+扩展欧几里得) Disgruntled Judge

    题意: 给出四个数T, a, b, x1,按公式生成序列 xi = (a*xi-1 + b) % 10001 (2 ≤ i ≤ 2T) 给出T和奇数项xi,输出偶数项xi 分析: 最简单的办法就是直接 ...

  2. UVa 140 (枚举排列) Bandwidth

    题意较复杂,请参见原题=_=|| 没什么好说的,直接枚举每个排列就好了,然后记录最小带宽,以及对应的最佳排列. STL里的next_permutation函数真是好用. 比较蛋疼的就是题目的输入了.. ...

  3. UVa 1151 (枚举 + MST) Buy or Build

    题意: 平面上有n个点,现在要把它们全部连通起来.现在有q个套餐,如果购买了第i个套餐,则这个套餐中的点全部连通起来.也可以自己单独地建一条边,费用为两点欧几里得距离的平方.求使所有点连通的最小费用. ...

  4. Even Parity UVA - 11464 (枚举)

    从来没有觉得枚举有多费脑子的.但是这道题还是很香的. 思路:就是非常简单的枚举啦.   从一般的枚举开始考虑.一般的做法就是在所有的格子中有两种状态1, 0. 而一共有225个格子,所有一共要枚举的情 ...

  5. UVa 1354 枚举子集 Mobile Computing

    只要枚举左右两个子天平砝码的集合,我们就能算出左右两个悬挂点到根悬挂点的距离. 但是题中要求找尽量宽的天平但是不能超过房间的宽度,想不到要怎样记录结果. 参考别人代码,用了一个结构体的vector,保 ...

  6. UVA 141 The Spot Game 斑点游戏。。

     The Spot Game  The game of Spot is played on an NxN board as shown below for N = 4. During the game ...

  7. Uva 11754(枚举+中国剩余定理)

    #include<iostream> #include<cstdio> #include<cmath> #include<cstring> #inclu ...

  8. 【原创】项目三Raven-2

    实战流程 1,C段扫描,并发现目标ip是192.168.186.141 nmap -sP 192.168.186.0/24 扫描目标主机全端口 nmap -p- 192.168.186.141 访问8 ...

  9. 10年省赛-Greatest Number (二分+暴力) + 12年省赛-Pick apples(DP) + UVA 12325(暴力-2次枚举)

    题意:给你n个数,在里面取4个数,可以重复取数,使和不超过M,求能得到的最大的数是多少: 思路:比赛时,和之前的一个题目很像,一直以为是体积为4(最多选择四次)的完全背包,结果并不是,两两求和,然后二 ...

  10. UVa 10465 Homer Simpson (枚举)

    10465 - Homer Simpson Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_onli ...

随机推荐

  1. [转] nginx配置优化+负载均衡+动静分离(附带参数解析)

    #指定nginx进程运行用户以及用户组user www www;#nginx要开启的进程数为8worker_processes  8;#全局错误日志文件#debug输出日志最为详细,而crit输出日志 ...

  2. ionic 监听页面滚动,点击停止滚动

    类似今日头条,页面上有很多card,点击每个card跳转该card的详情页面.这里有一个问题,当我滚动页面时,会先后触发touchstart.touchmove.touchend,但是当touchen ...

  3. NGINX 资料

    查看资料详情     nginx

  4. Gerrit安装

    1.安装gerrit [sisi@pre-srv44 ~]$ su - gerrit2Password: [gerrit2@pre-srv44 ~]$ lltotal 83872-rw-r--r-- ...

  5. Android开发之Activity生命周期篇

    一.Activity: 1.Activity:Activity是一个与用记交互的系统模块,几乎所有的Activity都是和用户进行交互的. 2.在Android中Activity主要是用来做控制的,它 ...

  6. PAT 乙级 1017 A除以B (20) C++版

    1017. A除以B (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求计算A/B,其中A是不超过 ...

  7. 传统Java Web(非Spring Boot)、非Java语言项目接入Spring Cloud方案

    技术架构在向spring Cloud转型时,一定会有一些年代较久远的项目,代码已变成天书,这时就希望能在不大规模重构的前提下将这些传统应用接入到Spring Cloud架构体系中作为一个服务以供其它项 ...

  8. Java NIO系列教程(四) Scatter/Gather

    Java NIO开始支持scatter/gather,scatter/gather用于描述从Channel(译者注:Channel在中文经常翻译为通道)中读取或者写入到Channel的操作.分散(sc ...

  9. Java-Runoob-高级教程-实例-方法:06. Java 实例 – 方法覆盖

    ylbtech-Java-Runoob-高级教程-实例-方法:06. Java 实例 – 方法覆盖 1.返回顶部 1. Java 实例 - 方法覆盖  Java 实例 前面章节中我们已经学习了 Jav ...

  10. JSON 简介

    ylbtech-JSON: JSON 简介 JSON:JavaScript Object Notation(JavaScript 对象表示法) JSON是存储和交换文本信息的语法,类似 XML. JS ...