计蒜客 矩阵变换 (bfs+set)
来源:互联网 发布:手机知乎怎么复制 编辑:程序博客网 时间:2024/06/02 02:31
题目:
题目大意:
让你求解出原字符串怎样通过已有的规则变化为目标串,输出所用到的规则。
题目思路:
这样的话,我们先将所谓的规则写成相应的函数,然后利用bfs进行字符串的变换,知道字符串变为目标串结束,如果你不进行visit标记的话,那么MLE,如果采用O(n)的方法来标记的话,肯定会超时,那么就用set作为标记数组,这样就能得出相应的结果。
代码:
#include <bits/stdc++.h>using namespace std;string s;//最开始串string as;//目标串set<string>sset;bool checkvisit(string s){ if(sset.find(s)!=sset.end())return false; return true;}struct node{ string mys; string ans;};string ca(string s){ string b; for(int i=s.size()-1;i>=4;i--) b.push_back(s[i]); for(int i=3;i>=0;i--) b.push_back(s[i]); return b;}string cb(string s){ string b; b.push_back(s[3]); for(int i=0;i<3;i++) b.push_back(s[i]); for(int i=5;i<s.size();i++) b.push_back(s[i]); b.push_back(s[4]); return b;}string cc(string s){ string b; int a[8]={1,7,2,4,5,3,6,8}; for(int i=0;i<8;i++) b.push_back(s[a[i]-1]); return b;}void bfs(){ queue<node>Q; node start; start.mys=s; sset.insert(s); Q.push(start); while(!Q.empty()){ node now=Q.front();Q.pop(); if(now.mys==as){ cout<<now.ans<<endl; break; } node next; string tmp; tmp=ca(now.mys); next.mys=tmp,next.ans=now.ans; if(checkvisit(next.mys)){ next.ans.push_back('A'); Q.push(next); sset.insert(next.mys); } tmp=cb(now.mys); next.mys=tmp,next.ans=now.ans; if(checkvisit(next.mys)){ next.ans.push_back('B'); Q.push(next); sset.insert(next.mys); } tmp=cc(now.mys); next.mys=tmp,next.ans=now.ans; if(checkvisit(next.mys)){ next.ans.push_back('C'); Q.push(next); sset.insert(next.mys); } }}int main(){ cin>>s>>as; bfs(); return 0;}
阅读全文
0 0
- 计蒜客 矩阵变换 (bfs+set)
- HDU4998Rotate(矩阵变换)
- codevs1099 字串变换(bfs)
- 矩阵变换
- 变换矩阵
- 矩阵变换
- 矩阵变换
- 矩阵论基础知识2(正交、 Givens 变换、Householder变换)
- 图形矩阵变换(2D篇)
- 图形矩阵变换(2D篇)
- 点的变换(矩阵转化)
- OpenGL(4)-Opengl矩阵变换
- 三言两语说shader(三)矩阵变换
- (8)矩阵的初等变换
- 旋转变换(一)旋转矩阵
- 旋转变换(一)旋转矩阵
- 逆矩阵(初等变换法)C++
- 旋转变换(一)旋转矩阵
- idea插件开发之Java子类继承父类
- 洛谷 P1090 合并果子
- 【剑指offer】替换空格问题
- Socket网络编程简单实例Demo,文件传输。
- JS事件委托
- 计蒜客 矩阵变换 (bfs+set)
- vld内存泄漏检查工具不能显示内存泄漏文件名与行号
- 线程池-invokeAll的使用
- java内存溢出问题处理
- springMVC笔记
- spring AOP
- Spring -Ioc学习(1)
- 逻辑混乱--html与css学习小结
- Elasticsearch Reference 5.5 中文翻译3