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 骰子涂色的更多相关文章

  1. 算法习题---4-4骰子涂色(UVa253)

    一:题目 分别对两个骰子的六个面涂色r-红 b-蓝 g-绿,通过转动骰子,看两个骰子是不是一样的涂色方法 (一)题目详解 题目规定了正方体的六个面的序号:从1-,按照这个需要提供涂色序列 (二)案例展 ...

  2. 【紫书】Quadtrees UVA - 297 四叉树涂色

    题意:前序遍历给出两个像素方块.求两个方块叠加后有几个黑色格子. 题解:每次读进来一个方块,就在二维数组上涂色.每次把白色涂黑就cnt++: 具体递归方法是以右上角坐标与边长为参数,每次通过几何规律往 ...

  3. 骰子涂色 (Cube painting,UVa 253)

    题目描述:算法竞赛入门习题4-4  题目思路:1.旋转其中一个骰子进行匹配 2.进行遍历,如果匹配,就进行相对面的匹配 3.三个对立面都匹配即是一样等价的 //没有按照原题的输入输出 #include ...

  4. uva 253 - Cube painting(相同骰子)

    习题4-4 骰子涂色(Cube painting, UVa 253) 输入两个骰子,判断二者是否等价.每个骰子用6个字母表示,如图4-7所示. 图4-7 骰子涂色 例如rbgggr和rggbgr分别表 ...

  5. UVa 253

    UVa 253 #include <iostream> #include <cstdio> #include <string> #include <cstri ...

  6. 1260: [CQOI2007]涂色paint

    Description 假设你有一条长度为5的木版,初始时没有涂过任何颜色.你希望把它的5个单位长度分别涂上红.绿.蓝.绿.红色,用一个长度为5的字符串表示这个目标:RGBGR. 每次你可以把一段连续 ...

  7. 【BZOJ-1260】涂色paint 区间DP

    1260: [CQOI2007]涂色paint Time Limit: 30 Sec  Memory Limit: 64 MBSubmit: 1147  Solved: 698[Submit][Sta ...

  8. 并查集(涂色问题) HDOJ 4056 Draw a Mess

    题目传送门 题意:给出一个200 * 50000的像素点矩阵,执行50000次操作,每次把一个矩形/圆形/菱形/三角形内的像素点涂成指定颜色,问最后每种颜色的数量. 分析:乍一看,很像用线段树成段更新 ...

  9. UVA 253 Cube painting(暴力打表)

    Cube painting Problem Description: We have a machine for painting cubes. It is supplied with three d ...

随机推荐

  1. office 2016 install(office2016组件自定义安装激活程序) v5.9.3中文绿色版

    下载地址  http://www.ddooo.com/softdown/71741.htm#dltab office 2016 install是目前下载office2016和office2016组件最 ...

  2. mybatis中使用where in查询时的注意事项

    我使用的时候collection值为mapper的参数名如:int deleteRoleByUserIds(@Param("userIds") String[] userIds); ...

  3. CSS :hover 选择器

    定义和用法 :hover 选择器用于选择鼠标指针浮动在上面的元素. 提示::hover 选择器可用于所有元素,不只是链接. 提示::link 选择器设置指向未被访问页面的链接的样式,:visited ...

  4. 二进制协议 vs 文本协议

    二进制协议 vs 文本协议 在服务器程序开发过程中,各个服务直接需要进行交互.这样就需要定义消息的协议,一般来说协议主要包括二进制协议和文本协议,下面就我在工作中用到的两种协议说说自己的看法. 1 二 ...

  5. 使用JDBC+POI把Excel中的数据导出到MySQL

    POI是Apache的一套读MS文档的API,用它还是可以比较方便的读取Office文档的.目前支持Word,Excel,PowerPoint生成的文档,还有Visio和Publisher的. htt ...

  6. 案例:使用scan IP无法连接数据库

    环境:Oracle RAC(11.2.0.3) 现象:通过scanIP连接数据库报错ORA-12514: ORA-12514: TNS:listener does not currently know ...

  7. js模拟电梯操作

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. C# Bulk Operations(转)

    转自http://blog.csdn.net/winnyrain/article/details/51240684 Overcome SqlBulkCopy Limitations with C# B ...

  9. eclipse启动 报错,错误信息为 return exit code=13

    打不开的报错如下图: 解决方法:手工配置Eclipse使用的JDK,在Eclipse的安装目录中找到eclipse.ini文件,增加正确的JDK安装目录,如图 在plugins/ 下一行,增加 -vm ...

  10. MySQL重装失败,could not start the service MySQL.Error:0

    MySQL5.5 安装失败现象: mysqld.exe [6132] 中发生了未经处理的 win32 异常 could not start the service MySQL.Error:0 1.在 ...