【POJ3087】Shuffle'm Up

本题传送门

本题知识点:宽度优先搜索 模拟 + 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

原文地址:https://www.cnblogs.com/Ayanowww/p/11568641.html

时间: 2024-11-09 03:13:47

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

【Leetcode】Shuffle an Array

题目链接:https://leetcode.com/problems/shuffle-an-array/ 题目: Shuffle a set of numbers without duplicates. Example: // Init an array with set 1, 2, and 3. int[] nums = {1,2,3}; Solution solution = new Solution(nums); // Shuffle the array [1,2,3] and retur

【BZOJ】【1965】SHUFFLE 洗牌

扩展欧几里德+快速幂 每次转换位置:第x位的转移到2*x %(n+1)这个位置上 那么m次后就到了(2^m)*x %(n+1)这个位置上 那么找洗牌m次后在 l 位置上的牌就相当于解线性模方程: (2^m)*x ≡ l (mod n+1)  扩展欧几里得即可 1 /************************************************************** 2 Problem: 1965 3 User: Tunix 4 Language: C++ 5 Result

Poj 3087 Shuffle&#39;m Up 【BFS】

Shuffle'm Up Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6556 Accepted: 3077 Description A common pastime for poker players at a poker table is to shuffle stacks of chips. Shuffling chips is performed by starting with two stacks of pok

【Java】利用Collections类下的shuffle洗牌方法改进在一定的范围内产生不重复的随机数

上次在<[Java]在一定的范围内产生不同的随机数>(点击打开链接)上所提到的方法,尽管已经解决了一定范围内产生不同随机数的问题,运行速度已经可以的,至少不会弄很久都弄不好,其实利用Collections类下的shuffle方法思想可以更清晰.速度更快地在一定的范围内产生不同的随机数. Collections类下的shuffle方法是可以随机打乱一个数组中的元素的程序,也叫做洗牌方法. 有这个方法,配合我在<[Java]Java中的Collections类--Java中升级版的数据结构&

【原】centos6.5下hadoop cdh4.6 安装

1.架构准备: namenode 10.0.0.2 secondnamenode 10.0.0.3 datanode1 10.0.0.4 datanode2 10.0.0.6 datanode3 10.0.0.11 2.安装用户:cloud-user 3.[namenode]namenode到其他节点ssh无密码登录: ssh-keygen     (一路回车) ssh-copy-id [email protected]3 ssh-copy-id [email protected]4 ssh-c

hadoop 常用配置项【转】

hadoop 常用配置项[转] core-site.xml  name value  Description   fs.default.name hdfs://hadoopmaster:9000 定义HadoopMaster的URI和端口  fs.checkpoint.dir /opt/data/hadoop1/hdfs/namesecondary1 定义hadoop的name备份的路径,官方文档说是读取这个,写入dfs.name.dir  fs.checkpoint.period 1800 定

【转】Backbone使用总结

转自  http://www.pchou.info/javascript/2014/06/26/backbone-summary-01.html 开始在项目中大规模使用backbone,一路磕磕碰碰,边做边学习边体会,有一些心得和体会,记录在本文中 事件模型及其原理 Backbone.Events就是事件实现的核心,它可以让对象拥有事件能力 var Events = Backbone.Events = { .. } 对象通过listenTo侦听其他对象,通过trigger触发事件.可以脱离Bac

【转】ACM训练计划

[转] POJ推荐50题以及ACM训练方案 2010-08-21 21:05 转载自 wade_wang 最终编辑 000lzl POJ 推荐50题 第一类 动态规划(至少6题,2479 和 2593 必做) 2479 和 2593 1015 1042(可贪心) 1141 1050 1080 1221 1260 2411(稍难) 1276 第二类 搜索(至少4题) 1011 1033 1129 2049 2056 2488 2492(稍难,也可并查集) 第三类 贪心(至少2题) 1065 205

轻松用Storm进行实时大数据分析【翻译】

原文地址 简单易用,Storm让大数据分析变得轻而易举. 如今,公司在日常运作中经常会产生TB(terabytes)级的数据.数据来源包括从网络传感器捕获的,到Web,社交媒体,交易型业务数据,以及其他业务环境中创建的数据.考虑到数据的生成量,实时计算(real-time computation )已成为很多组织面临的一个巨大挑战.我们已经有效地使用了一个可扩展的实时计算系统--开源的 Storm 工具,它是有 Twitter 开发,通常被称为"实时 Hadoop(real-time Hadoo