UVA253 Cube painting
2016-02-24 22:58
513 查看
发现网络上大部分是穷举过的,也有其他牛逼的做法,我的做法好像跟大家不太一样,那就提供一点新的思路吧。我的方法是去观察给出的两个骰子的三个方向的四个面围成的圈,也就是
第一个圈:3 5 4 2
第二个圈:5 1 2 6
第三个圈:3 1 4 6
参照figure1就可明白,之后就观察两个骰子各自的三个圈能否一一对应(圈的方向可逆,即可顺时针,也可逆时针)这种做法幸运的Ac了,不过自己测试时自己想的一个数据过不了——abcdeffedcba 正确输出是FALSE,而我的输出是TRUE,所以这种做法有bug,不过所幸数据不刁钻,还是ac了,如果有大神能解决这个bug,欢迎指教。
第一个圈:3 5 4 2
第二个圈:5 1 2 6
第三个圈:3 1 4 6
参照figure1就可明白,之后就观察两个骰子各自的三个圈能否一一对应(圈的方向可逆,即可顺时针,也可逆时针)这种做法幸运的Ac了,不过自己测试时自己想的一个数据过不了——abcdeffedcba 正确输出是FALSE,而我的输出是TRUE,所以这种做法有bug,不过所幸数据不刁钻,还是ac了,如果有大神能解决这个bug,欢迎指教。
#include <iostream> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> using namespace std; int lstrcmp(char a[],char b[]) { int i,j,flag=0; for(i=0;i<4;i++) { int k=i; for(j=0;j<4;j++,k++) { if(a[k%4]!=b[j])break; } if(j==4){flag=1;break;} for(j=3;j>=0;j--,k++) { if(a[k%4]!=b[j])break; } if(j<0){flag=1;break;} } if(flag)return 1; else return 0; } int main() { char a[20]; char s1[10][10],s2[10][10]; int vis[10]; while(scanf("%s",&a)!=EOF) { memset(s1,'\0',sizeof(s1)); memset(s2,'\0',sizeof(s2)); memset(vis,0,sizeof(vis)); int i,j,flag=1; s1[1][0]=a[3-1];s1[1][1]=a[5-1];s1[1][2]=a[4-1];s1[1][3]=a[2-1]; s1[2][0]=a[5-1];s1[2][1]=a[1-1];s1[2][2]=a[2-1];s1[2][3]=a[6-1]; s1[3][0]=a[3-1];s1[3][1]=a[1-1];s1[3][2]=a[4-1];s1[3][3]=a[6-1]; s2[1][0]=a[3-1+6];s2[1][1]=a[5-1+6];s2[1][2]=a[4-1+6];s2[1][3]=a[2-1+6]; s2[2][0]=a[5-1+6];s2[2][1]=a[1-1+6];s2[2][2]=a[2-1+6];s2[2][3]=a[6-1+6]; s2[3][0]=a[3-1+6];s2[3][1]=a[1-1+6];s2[3][2]=a[4-1+6];s2[3][3]=a[6-1+6]; for(i=1;i<=3;i++) { int f=0; for(j=1;j<=3;j++) { if(!vis[j]&&lstrcmp(s1[i],s2[j])==1){f=1;vis[j]=1;break;} } if(!f){flag=0;break;} } if(flag)printf("TRUE\n"); else printf("FALSE\n"); } return 0; }
相关文章推荐
- Zookeeper异常:FAILED TO WRITE PID与Permission denied
- Container With Most Water
- AIDL随写
- 高僧斗法--Staircase Nim
- poj 1363 Rails(栈)
- 【bzoj2434】[Noi2011]阿狸的打字机 AC自动机+fail树+dfs序+树状数组
- 欢迎使用CSDN-markdown编辑器
- How Does Caching Work in AFNetworking? : AFImageCache & NSUrlCache Explained
- 【bzoj3172】[Tjoi2013]单词 AC自动机+fail树
- leetcode笔记:Contains Duplicate II
- 模型选择准则之AIC和BIC
- AIDL
- STM32 Keil仿真进不了Main()函数
- leetcode笔记:Contains Duplicate
- if __name__ == '__main__':
- 如何解决failed to push some refs to git
- remove duplicated gene pair using awk
- bzoj 2434 [Noi2011]阿狸的打字机(fail树+离线处理+BIT)
- TIME_WAIT和CLOSE_WAIT
- Cornerstone的分支问题Merge dry run failed: working copy is too old