【搜索】Shuffle'm Up
运用第i个s12和第i+1个s12中,每个位置具有的确定的映射关系:
pos = pos * 2 + 1 (pos < c)
pos = pos * 2 - c * 2 (pos >= c)
例如c =3, 则位置为 0 1 2 3 4 5 会映射成 3 0 4 1 5 2
从第1到第2c个位置依次进行匹配,用搜索应该也可以做,合适于数据大的情况。
#include<string.h>
#include<stdio.h> int main(){
int n, c;
char s1[], s2[], s12[], des[];
scanf("%d",&n);
//cin >> n;
for(int t = ; t <= n; t ++){
scanf("%d %c %c %c",c,s1,s2,des);
int ans = ;
bool flag = false;
char str1[];
strcpy(str1, s1); // str1保存原始状态的s1。 while(!flag){
int i, k = ;
for(i = ; i < c; i ++){ // s1和s2按规则合成s12。
s12[k ++] = s2[i];
s12[k ++] = s1[i];
}
s12[k] = ;
ans ++;
if(!strcmp(s12, des)){ // 若s12与目标相同。
flag = true;
break;
}
for(i = , k = ; k < c; k ++) // 新的s1。
s1[i ++] = s12[k];
s1[i] = ;
for(i = , k = c; k < * c; k ++) // 新的s2。
s2[i ++] = s12[k];
s2[i] = ;
if(!strcmp(s1, str1)) // 等到s1经过x次变换后回到str1,则说明不可能到达目标情况了。 break;
}
if(flag) printf("%d %d\n",t,ans);
else printf("%d -1",t);
}
return ;
}
【搜索】Shuffle'm Up的更多相关文章
- kuangbin专题 专题一 简单搜索 Shuffle'm Up POJ - 3087
题意:(1)有两副颜色多样的扑克牌,(A~H)表示不同颜色,给你两副牌,S1,S2和一副你需要洗出的KEY,S12由S2最底部,S1底部...一直下去,直到洗成S12,就是图片展示的那样.(2)洗好的 ...
- [暴力搜索] POJ 3087 Shuffle'm Up
Shuffle'm Up Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10003 Accepted: 4631 Des ...
- POJ 3087 Shuffle'm Up 模拟,看着不像搜索啊
题意:给定s1,s1两副扑克,顺序从下到上.依次将s2,s1的扑克一张一张混合.例如s1,ABC; s2,DEF. 则第一次混合后为DAEBFC. 然后令前半段为s1, 后半段为s2. 如果可以变换成 ...
- 【项目】搜索广告CTR预估(二)
项目介绍 给定查询和用户信息后预测广告点击率 搜索广告是近年来互联网的主流营收来源之一.在搜索广告背后,一个关键技术就是点击率预测-----pCTR(predict the click-through ...
- Shuffle'm Up 分类: 函数 POJ 查找 2015-08-09 17:01 6人阅读 评论(0) 收藏
Shuffle'm Up Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7529 Accepted: 3466 Descript ...
- 【Spark】Spark的Shuffle机制
MapReduce中的Shuffle 在MapReduce框架中,shuffle是连接Map和Reduce之间的桥梁,Map的输出要用到Reduce中必须经过shuffle这个环节,shuffle的性 ...
- 你会用shuffle打乱列表吗?
在网站上我们经常会看到关键字云(Word Cloud)和标签云(Tag Cloud),用于表明这个关键字或标签是经常被查阅的,而且还可以看到这些标签的动态运动,每次刷新都会有不一样的关键字或便签,让浏 ...
- 搜索:POJ2251&POJ1426&POJ3087&POJ2488
图的遍历也称为搜索,就是从图中某个顶点出发,沿着一些边遍历图中所有的顶点,且每个顶点仅被访问一次,遍历可采取两种不同的方式:深度优先搜索(DFS)和广度优先搜索(BFS). 1.DFS算法思想` 从顶 ...
- POJ 3590 The shuffle Problem
Any case of shuffling of n cards can be described with a permutation of 1 to n. Thus there are total ...
随机推荐
- ceph 维护之 osd节点添加
一.目标 添加一台新osd 节点,主机名ceph6 到 ceph 集群.public IP:10.6.32.25 cluster_network :10.6.33.25 二.基础环境配置 1 ...
- PAT1066(AVL树)
An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child sub ...
- fbx模型加载的材质球路径
选择Location为外部加载时,会通过搜索来读取外部文件 From Model's Material 搜索项目中Materials文件 [ModelName].mat 会优先搜索当前子文件夹有没有 ...
- vue动态绑定类样式ClassName知多少
对于动态绑定类样式,之前用的最多的也就是:class="{'classA':true}" ,今天遇到一种情况,就是要给元素动态添加一个保存在数据源中的类样式,那前边的这种写法显然满 ...
- 第五章 Inheritance继承
[继承] Java不支持多重继承 - 每个子类只有一个超类. 不是将成员变量声明为静态,更好的做法是将University实例化为对象,然后使用该对象访问其成员,如下所示: [抽象类] 可以包含或者不 ...
- Extract Dataset
FROM <SAP PROGRAM DESIGN> Extract Datasets简称为Extract,是SAP中除了内表之外的另一种大量内存数据处理方式,允许用户动态地存储并排序结构化 ...
- day15 json,os,sys,hashlib
序列化模块 import json # json 序列化模块 是所有语言通用的一种标准(数据转化格式). # str int bool dict list(tuple) None import pi ...
- PHP统计网站pv(访问量)
//首先判断有没有统计的文件 if(is_file("pv.txt")){//有 //取文件里面的值 $count=file_get_contents("pv.txt&q ...
- Swift 错误记录
最近几天开始学习Swift,作为一个从 OC 转到 Swift 的程序员,我一直以为很简单.但是现在学习一个星期之后,发现问题还是蛮多的! 最大的问题就是 太特么 不习惯了!!!!!!!!!! 好吧, ...
- 四元数运动学笔记(5)IMU驱动的运动误差方程
1.扩展卡尔曼滤波EKF1.1线性化卡尔曼滤波1.2偏差微分方程的推导1.3线性化卡尔曼滤波的流程1.4 离散EKF2.误差状态的运动方程2.1连续时间的IMU系统动态方程2.1.1相关变量2.1.2 ...