UVa 253 骰子涂色
https://vjudge.net/problem/UVA-253
题意:输入两个骰子的六面颜色,判断是否等价。
思路:我最想到的是暴力,不过一直错,也不知道哪里错了。第二种方法就是在一个骰子里出现的一对颜色在第二个骰子也有,只要三对颜色都匹配成功,那么就是等价的。
#include<iostream>
#include<string>
#include<cstring>
using namespace std; char str[];
int vis[];
int ok; int main()
{
//freopen("D:\\txt.txt", "r", stdin);
while (gets(str)!=NULL)
{
ok = ;
memset(vis, , sizeof(vis));
for (int i = ; i < ;i++)
for (int j = ; j < ; j++)
{
if (!vis[j] && str[i] == str[j] && str[ - i] == str[ - j])
{
vis[j] = vis[ - j] = ;
break; //这个break必须得加
}
}
for (int i = ; i < ; i++)
{
if (!vis[i])
{
ok = ;
cout << "FALSE" << endl;
break;
}
}
if (ok) cout << "TRUE" << endl;
}
return ;
}
再附上我的暴力,不过是wrong的。先留着吧,以后说不定我就能发现哪里错了。
#include<iostream>
#include<string>
#include<cstring>
using namespace std; char str[], s1[], s2[], s3[], s4[];
int vis[];
int ok; void solve(int cur)
{
if (cur == )
{
s3[] = '\0';
for (int k = ; k < ; k++)
{
s4[k] = s3[k + ];
s4[k + ] = s3[k];
}
s4[] = '\0';
if (!strcmp(s1, s3) || !strcmp(s1, s4))
{
ok = ;
}
}
else
{
for (int i = ; i < ; i++)
{
if (ok) return;
if (!vis[i])
{
s3[cur] = s2[i];
s3[ - cur] = s2[ - i];
vis[i] = ;
solve(cur + );
vis[i] = ;
}
}
}
} int main()
{
//freopen("D:\\txt.txt", "r", stdin);
while (gets(str) != NULL)
{
memset(vis, , sizeof(vis));
memcpy(s1, str, );
memcpy(s2, str + , );
s1[] = '\0';
s2[] = '\0';
ok = ;
solve();
if (ok) cout << "TRUE" << endl;
else cout << "FALSE" << endl;
}
return ;
}
UVa 253 骰子涂色的更多相关文章
- 算法习题---4-4骰子涂色(UVa253)
一:题目 分别对两个骰子的六个面涂色r-红 b-蓝 g-绿,通过转动骰子,看两个骰子是不是一样的涂色方法 (一)题目详解 题目规定了正方体的六个面的序号:从1-,按照这个需要提供涂色序列 (二)案例展 ...
- 【紫书】Quadtrees UVA - 297 四叉树涂色
题意:前序遍历给出两个像素方块.求两个方块叠加后有几个黑色格子. 题解:每次读进来一个方块,就在二维数组上涂色.每次把白色涂黑就cnt++: 具体递归方法是以右上角坐标与边长为参数,每次通过几何规律往 ...
- 骰子涂色 (Cube painting,UVa 253)
题目描述:算法竞赛入门习题4-4 题目思路:1.旋转其中一个骰子进行匹配 2.进行遍历,如果匹配,就进行相对面的匹配 3.三个对立面都匹配即是一样等价的 //没有按照原题的输入输出 #include ...
- uva 253 - Cube painting(相同骰子)
习题4-4 骰子涂色(Cube painting, UVa 253) 输入两个骰子,判断二者是否等价.每个骰子用6个字母表示,如图4-7所示. 图4-7 骰子涂色 例如rbgggr和rggbgr分别表 ...
- UVa 253
UVa 253 #include <iostream> #include <cstdio> #include <string> #include <cstri ...
- 1260: [CQOI2007]涂色paint
Description 假设你有一条长度为5的木版,初始时没有涂过任何颜色.你希望把它的5个单位长度分别涂上红.绿.蓝.绿.红色,用一个长度为5的字符串表示这个目标:RGBGR. 每次你可以把一段连续 ...
- 【BZOJ-1260】涂色paint 区间DP
1260: [CQOI2007]涂色paint Time Limit: 30 Sec Memory Limit: 64 MBSubmit: 1147 Solved: 698[Submit][Sta ...
- 并查集(涂色问题) HDOJ 4056 Draw a Mess
题目传送门 题意:给出一个200 * 50000的像素点矩阵,执行50000次操作,每次把一个矩形/圆形/菱形/三角形内的像素点涂成指定颜色,问最后每种颜色的数量. 分析:乍一看,很像用线段树成段更新 ...
- UVA 253 Cube painting(暴力打表)
Cube painting Problem Description: We have a machine for painting cubes. It is supplied with three d ...
随机推荐
- Spark Core(三)Executor上是如何launch task(转载)
1. 启动任务 在前面一篇博客中(Driver 启动.分配.调度Task)介绍了Driver是如何调动.启动任务的,Driver向Executor发送了LaunchTask的消息,Executor接收 ...
- JavaScript加强
1.Aptana简介 Aptana是一个非常强大,开源,专注于JavaScript的Ajax开发IDE它的特性包括 1.JavaScript,JavaScript函数,HTML,CSS语言的Code ...
- CentOS6.5安装Redis数据库
1.以安装redis2.8.19为例 下载安装包:http://redis.io tar zxvf redis-2.8.19.tar.gz #解压 cd redis-2.8.19 #进入解压后的文件夹 ...
- Log4net 日志传到 graylog监控
graylog是java的一个日志监控插件.存储用的是mongoDB,效率还是挺高的.不过嘛,文档太少了,安装和配置都很不容易. 官网:http://www.graylog.org/ 在graylog ...
- 019-centos的yum用法
1.检测系统是否已经安装过mysql或其依赖:# yum list installed | grep mysql(当然也可以用 rpm -qa | grep mysql) 2.卸载已经存在的mysql ...
- python插入排序算法总结
插入排序算法总结: 插入算法的核心是 每次循环到一个数时,都认为这个数之前的数列都是排好序的,将一个数插入到已经排好序的有序数列中,从而得到一个新的.个数加一的有序数列. 过程:从第一个元素开始,第一 ...
- pythonl类继承例子
#coding=utf-8 class Person(object): def __init__(self,name,age): self.name=name sel ...
- Linux服务器---使用mysql
使用mysql 1.登录,可以用密码登录,也可以不用密码登录.命令格式“mysql –u 用户名 –p 密码” [root@localhost src]# mysql -u root –p / ...
- WordPress存在DoS拒绝服务漏洞,推荐删除根目录下的xmlrpc.php
WordPress存在DoS拒绝服务漏洞,推荐删除根目录下的xmlrpc.php受影响的版本:WordPress 3.9.x-3.9.1WordPress 3.8.x-3.8.3WordPress 3 ...
- Django框架----Web框架本质
Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...