uva-141-枚举
旋转过程的下标变化,画个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-枚举的更多相关文章
- UVa 12169 (枚举+扩展欧几里得) Disgruntled Judge
题意: 给出四个数T, a, b, x1,按公式生成序列 xi = (a*xi-1 + b) % 10001 (2 ≤ i ≤ 2T) 给出T和奇数项xi,输出偶数项xi 分析: 最简单的办法就是直接 ...
- UVa 140 (枚举排列) Bandwidth
题意较复杂,请参见原题=_=|| 没什么好说的,直接枚举每个排列就好了,然后记录最小带宽,以及对应的最佳排列. STL里的next_permutation函数真是好用. 比较蛋疼的就是题目的输入了.. ...
- UVa 1151 (枚举 + MST) Buy or Build
题意: 平面上有n个点,现在要把它们全部连通起来.现在有q个套餐,如果购买了第i个套餐,则这个套餐中的点全部连通起来.也可以自己单独地建一条边,费用为两点欧几里得距离的平方.求使所有点连通的最小费用. ...
- Even Parity UVA - 11464 (枚举)
从来没有觉得枚举有多费脑子的.但是这道题还是很香的. 思路:就是非常简单的枚举啦. 从一般的枚举开始考虑.一般的做法就是在所有的格子中有两种状态1, 0. 而一共有225个格子,所有一共要枚举的情 ...
- UVa 1354 枚举子集 Mobile Computing
只要枚举左右两个子天平砝码的集合,我们就能算出左右两个悬挂点到根悬挂点的距离. 但是题中要求找尽量宽的天平但是不能超过房间的宽度,想不到要怎样记录结果. 参考别人代码,用了一个结构体的vector,保 ...
- 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 ...
- Uva 11754(枚举+中国剩余定理)
#include<iostream> #include<cstdio> #include<cmath> #include<cstring> #inclu ...
- 【原创】项目三Raven-2
实战流程 1,C段扫描,并发现目标ip是192.168.186.141 nmap -sP 192.168.186.0/24 扫描目标主机全端口 nmap -p- 192.168.186.141 访问8 ...
- 10年省赛-Greatest Number (二分+暴力) + 12年省赛-Pick apples(DP) + UVA 12325(暴力-2次枚举)
题意:给你n个数,在里面取4个数,可以重复取数,使和不超过M,求能得到的最大的数是多少: 思路:比赛时,和之前的一个题目很像,一直以为是体积为4(最多选择四次)的完全背包,结果并不是,两两求和,然后二 ...
- UVa 10465 Homer Simpson (枚举)
10465 - Homer Simpson Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_onli ...
随机推荐
- linux 添加多个网段
1.在系统中添加网络配置文件脚本 # cd /etc/sysconfig/network-scripts # cp ifcfg-eth0 ifcfg-eth0:0 2.修改新添加的网络配置脚本文件如下 ...
- sql server 存储过程使用游标记录
sql server 存储过程使用游标记录--方便下次参考使用 游标的组成: 声明游标 打卡游标 从一个游标中查找信息 关闭游标 释放游标 游标类型: 静态游标 动态游标 只进游标 键集驱动游标 静态 ...
- Lucene suggest [转]
The Big Data Zone is presented by Splunk, the maker of data analysis solutions such as Hunk, an an ...
- VMware中四种网络连接模式的区别
安装好VMwareWorkstations之后,进行虚拟机网络配置时有四种网络连接方式,桥接.仅主机.NAT.LAN区段. 之所以有不同的模式,在我看来是为了满足不同的网络需求,总的来说:桥接.NAT ...
- C++进阶小结
1.C++中类的不同存储区的对象的初始值 class test; class test { private: int i; int j; public: int geti() { return i; ...
- 廖雪峰Java4反射与泛型-1反射-1Class类
1.Class类与反射定义 Class类本身是一种数据类型(Type),class/interface的数据类型是Class,JVM为每个加载的class创建了唯一的Class实例. Class实例包 ...
- HTML5绘制饼图示例(一)
原文地址:http://www.2cto.com/kf/201108/100251.html HTML5引入Canvas元素,用于图形的绘制,我们可以仅仅基于HTML和JavaScript就能绘制出原 ...
- Scrapy学习篇(二)之常用命令行工具
简介 Scrapy是通过Scrapy命令行工具进行控制的,包括创建新的项目,爬虫的启动,相关的设置,Scrapy提供了两种内置的命令,分别是全局命令和项目命令,顾名思义,全局命令就是在任意位置都可以执 ...
- Mybatis 系列1-环境搭建
[Mybatis 系列10-结合源码解析mybatis 执行流程] [Mybatis 系列9-强大的动态sql 语句] [Mybatis 系列8-结合源码解析select.resultMap的用法] ...
- sas 获取字符串长度实例
data _null_;a='Dogcat';b=' Dog cat';c=' Dog cat ';Ra=length(a);Rb=length(b);Rc=length(c);put Ra=Rb ...