题目描述:

对于一副扑克牌,我们有多种不同的洗牌方式。一种方法是从中间某个位置分成两半,然后相交换,我们称之为移位(shift)。比如原来的次序是123456,从第4个位置交换,结果就是561234。这个方式其实就是数组的循环移位,为了多次进行这个操作,必须使用一种尽可能快的方法来编程实现。在本题目中,还引入另外一种洗牌方式,就是把前一半(如果总数是奇数,就是(n-1)/2)牌翻转过来,这种操作称之为翻转(flip)。在前面shift操作的结果上进行flip,结果就是165234。当然,如果是实际的扑克牌,直接翻转会造成正反面混在一起的,我们就不管那么多了。
        给定n张牌,初始次序为从1到n,经过若干次的shift和flip操作后,结果会是什么样?

思路

剑指 offer 例题, 三次 reverse. Leetcode 3.5 出了个新题, 和这道类似

代码

#include <iostream>
#include <stdio.h>
using namespace std;int card[2000];
int ops[2000];
int n, k;void myReverse(int st, int ed) {while(st < ed) {swap(card[st], card[ed]);st ++;ed --;}
}void shift(int x) {myReverse(1, x);myReverse(x+1, n);myReverse(1, n);
}void flip() {myReverse(1, n/2);
}int main() {while(scanf("%d%d", &n, &k) != EOF && n != 0) {for(int i = 1; i <= n; i ++)card[i] = i;for(int i = 0; i < k; i ++)scanf("%d", ops+i);for(int i = 0; i < k; i ++) {int x = ops[i];shift(x);flip();}for(int i = 1; i <= n; i ++)printf("%d ", card[i]);printf("\n");}return 0;
}

九度 1479:移位和旋转相关推荐

  1. 九度 1408 寻找表达式 (中缀转后缀)

    题目描述 总结 1. '_' 运算符不是 a*10 + b, 而是 a*(10 or 100) + b 2. char * 与 string 的相互转化 char* = string.c_str() ...

  2. 【Android RTMP】NV21 图像旋转处理 ( 问题描述 | 图像顺时针旋转 90 度方案 | YUV 图像旋转细节 | 手机屏幕旋转方向 )

    文章目录 安卓直播推流专栏博客总结 一. NV21 图像格式与 Camera图像传感器方向问题 二. NV21 图像格式视频旋转 1. 图像旋转问题及解决方案 ( 顺时针旋转 90 度 ) 2. NV ...

  3. 剑指Offer - 九度1511 - 从尾到头打印链表

    剑指Offer - 九度1511 - 从尾到头打印链表2013-11-29 21:08 题目描述: 输入一个链表,从尾到头打印链表每个节点的值. 输入: 每个输入文件仅包含一组测试样例. 每一组测试案 ...

  4. 九度 1545:奇怪的连通图

    题目描述 总结 1. 用 BFS 实现 Dijkstra. 要点是, visited 后标记, 把某个点从优先队列取出后再标记 代码 未通过九度测试 RE /** source.cpp** Creat ...

  5. 九度题库(所有题目整理,适合计算机考研和面试的人用)

    本来搜一道面试题,找到叫九度题库的地方,发现里面的题目都比较基础,很适合当面试题来练习. 于是,闲得蛋疼,把所有题目给爬下来了,并整理成markdown格式,然后export成pdf,方便大家离线阅读 ...

  6. 九度 1462:两船载物问题(01背包)

    题目描述: 给定n个物品的重量和两艘载重量分别为c1和c2的船,问能否用这两艘船装下所有的物品. 思路 1. 朴素背包问题 2. 有几个细节要好好把握 (1) 在读入物品重量时顺带统计物品的最大值和总 ...

  7. 【强烈推荐】程序猿们,九度Online Judge开始举办月赛啦!!会编程才是王道!!!!!

    程序猿们,九度Online Judge开始举办月赛啦!!会编程才是王道!! 在国内计算机考研中,已经有越来越多的高校采用ACM上机考试的形式,在复试中来考察考生的实际动手编程能力,并且机试在复试中所占 ...

  8. 剑指Offer - 九度1367 - 二叉搜索树的后序遍历序列

    剑指Offer - 九度1367 - 二叉搜索树的后序遍历序列2013-11-23 03:16 题目描述: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出 ...

  9. 九度OJ1486 /POJ 1029/2012北京大学研究生复试上机

    wa到死!wa到死!这是一个看着简单,坑及其多的题! 坑一:POJ上是单组输入,九度上是多组输入,妈蛋要是研究生复试遇到这种大坑肯定死掉啊!而且对于codeforces比较习惯的 同学肯定会觉得巨坑无 ...

最新文章

  1. python 字符串按指定分隔符分割
  2. Flutter开发之认识Flutter(一)
  3. 皮一皮:多少人的爱情在昨天就像他一样...
  4. KVM的内存气球技术(balloon)
  5. 16进制数用空格分开 tcp_面试时,你是否被问到过TCP/IP协议?
  6. VS2010 运行库设置
  7. sublime text3 3176激活
  8. Lucene的索引链结构_IndexChain
  9. 曲奇云盘资源搜索引擎_工具集--任意资源搜索神器(不限速!!)
  10. Godot Label 节点
  11. eyoucms个人网站去版权
  12. 原来电路最高工作频率是这么算出来的(STA基础篇)
  13. maven install报The forked VM terminated without saying properly goodbye. VM crash or System.exit call
  14. 宁芝普拉姆键盘说明书以及键盘校验软件
  15. centos7操作系统下编译安装veracrypt
  16. 2015年校园招聘12家IT公司面试体验
  17. 手把手教你学习Solidity|Solidity开发【一】
  18. 更新域内计算机时间,Word2013如何自动更新文档中的日期和时间?如何设置打印前自动更新域...
  19. 计算机主板按那三种方法分类,如何查看计算机主板型号,几秒钟即可了解三种方法...
  20. 802.11的物理层-CS/CCA过程

热门文章

  1. yii 使用 有赞sdk_有赞移动如何做到并行灰度的复杂场景?
  2. 服务器远程重新做系统吗,服务器远程做系统安装系统
  3. 各自然带代表植被_必备知识:植被与地理环境
  4. python中用def实现自动排序_漫画排序算法Python实现
  5. java正则表达式 百分号_转义中间字符串百分号,是一个正则表达式的最佳选择?...
  6. linux php 依赖,在php5-fpm-alpine docker容器中安装php-gd依赖于alpine linux
  7. 支持 简体,繁体,英文的js日历控件
  8. Android从入门到进阶之高级控件
  9. JAVASE图书系统期末试题
  10. Hibernate 注解配置