本题传送门

本题知识点:宽度优先搜索 模拟 + map

本题题意有点懵。就是单纯的把S1像例子那样插到S2里,根本不是什么宽搜题,因为只是一个方向就可以了。说是搜索题倒是有点意思,因为要查重。

不过cin还是慢啊,一个cin就把我卡tle了。

所以最后这就是简单的模拟题,加上一个map(竟然不超时!)。

数据很小。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<map>
using namespace std; int T, n; int main()
{
scanf("%d", &T);
for(int k = 1; k <= T; k++){
bool ok = false;
char s1[202], s2[202], s12[202], s[202];
scanf("%d", &n);
scanf("%s %s %s", s1, s2, s12);
map<string, int> m;
int ans = 0;
while(true){
ans++;
int cnt = 0;
for(int i = 0; i < n; i++){
s[cnt++] = s2[i];
s[cnt++] = s1[i];
}
s[cnt] = '\0'; if(strcmp(s, s12) == 0){
ok = true;
break;
} if(m.find(s) != m.end()){
break;
} m[s] = 0; for(int i = 0; i < n; i++){
s1[i] = s[i];
s2[i] = s[n + i];
}
s1[n] = s2[n] = '\0';
} if(ok) printf("%d %d\n", k, ans);
else printf("%d %d\n", k, -1);
}
return 0;
}

【POJ3087】Shuffle'm Up的更多相关文章

  1. 【面试】shuffle函数的实现

    一.前言 有位同学面试的时候被问到shuffle函数的实现,他之后问我,我知道这个函数怎么用,知道是对数组(或集合)中的元素按随机顺序重新排列.但是没有深入研究这个是怎么实现的.现在直接进入JDK源码 ...

  2. 【BZOJ-1965】SHUFFLE 洗牌 快速幂 + 拓展欧几里德

    1965: [Ahoi2005]SHUFFLE 洗牌 Time Limit: 3 Sec  Memory Limit: 64 MBSubmit: 541  Solved: 326[Submit][St ...

  3. 【BZOJ】【1965】SHUFFLE 洗牌

    扩展欧几里德+快速幂 每次转换位置:第x位的转移到2*x %(n+1)这个位置上 那么m次后就到了(2^m)*x %(n+1)这个位置上 那么找洗牌m次后在 l 位置上的牌就相当于解线性模方程: (2 ...

  4. 【搜索】Shuffle'm Up

    运用第i个s12和第i+1个s12中,每个位置具有的确定的映射关系: pos = pos * 2 + 1 (pos < c) pos = pos * 2 - c * 2 (pos >= c ...

  5. 【LeetCode】随机化算法 random(共6题)

    [384]Shuffle an Array(2019年3月12日) Shuffle a set of numbers without duplicates. 实现一个类,里面有两个 api,struc ...

  6. 【bzoj1965】: [Ahoi2005]SHUFFLE 洗牌 数论-快速幂-扩展欧几里得

    [bzoj1965]: [Ahoi2005]SHUFFLE 洗牌 观察发现第x张牌 当x<=n/2 x=2x 当x>n/2 x=2x-n-1 好像就是 x=2x mod (n+1)  就好 ...

  7. 【LeetCode】870. Advantage Shuffle 解题报告(Python)

    [LeetCode]870. Advantage Shuffle 解题报告(Python) 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn ...

  8. 【例题 8-15 UVA - 12174】Shuffle

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 枚举第一段的范围[0..i] (0<=i<s) 然后看看[i+1..i+s-1],[i+s,i+s+s-1]..这些区间 ...

  9. 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL

    周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...

随机推荐

  1. Asp.Net 技术

    Asp.Net 技术Nuget 管理器Spring.NET 框架Spring.core 包 微服务Consul .NetCore 框架:Spring.net Nhibernate 框架Dapper.n ...

  2. EntityFramework DBContext 类动态控制 数据库连接(支持Oracle,SQL server)

     public class ManagementDBContext : DbContext     {         public static string configString = Conf ...

  3. [ ERROR ] Error in test library 'pymysql': Creating keyword 'Connect' failed: Keyword with same name defined multiple times.

    [ ERROR ] Error in test library 'pymysql': Creating keyword 'Connect' failed: Keyword with same name ...

  4. Maven项目中jstl表达式失效

    从网上看到的可能原因: 1.包没导入 2.web.xml版本太低,不支持 最后,我一直忽略了的解决办法: 关于jstl和el表达式失效的解决办法 - - ITeye博客 https://aazham. ...

  5. C#-Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046}

    异常信息如下 捕获到执行这句时异常: Excel.Application ep = new Excel.ApplicationClass(); Retrieving the COM class fac ...

  6. 【解决】挂载NFS服务时,不同共享客户端间的数据不同步

    问题现象 当您用台 ECS 挂载同一个 NFS 文件系统,在 ECS-A 上 append 写文件,在 ECS-B 用 tail -f 观察文件内容的变化.在 ECS-A 写完之后,在 ECS-B 看 ...

  7. sed命令配置反向引用

    比如反向引用的例子, 原日志如下: {"accessip_list":"::","method":"GET"," ...

  8. 矩阵LU分解程序实现(Matlab)

    n=4;%确定需要LU分解的矩阵维数 %A=zeros(n,n); L=eye(n,n);P=eye(n,n);U=zeros(n,n);%初始化矩阵 tempU=zeros(1,n);tempP=z ...

  9. oracle之percent_rank() over()函数和PERCENTILE_CONT() within group()over()函数详解

    创建一个临时表 create table EMP ( EMPNO NUMBER(4) not null, ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR NUMBER ...

  10. the_permalink()和get_permalink()的区别

    wordpress中the_permalink()是用于posts loop循环中(判断是否有文章,如果有文章则展示出来:如果没有文章就显示没有文章),常用于文章分类列表和文章页的模板中,用法如下 & ...