怪异的洗牌
来源:互联网 发布:语音交友软件 编辑:程序博客网 时间:2024/06/02 10:56
题目连接
这一题,其实就是个模拟题,没有什么算法,但是由于没有注意题目中的每一次操作,都需要重新赋位置的数值,导致wa了几次,下次注意题意,很重要。
AC代码:
#include <stdio.h>int main(){int n, k, i, j, m, f;int pos;int a[1005], b[1005];while(~scanf("%d%d", &n, &k)&&n){for(i = 0;i < n;i ++)a[i] = i + 1;for(i = 0;i < k;i ++){scanf("%d", &pos);int size = n - pos;for(j = 0;j < n;j++)b[(j+size)%n] = a[j];//shiftfor(f = 0,m =n / 2 - 1;f<m;f ++,m --)//flip{int tmp;tmp = b[f];b[f] = b[m];b[m] = tmp;}for(j = 0;j < n;j ++) a[j] = b[j];//provide next array for change digits}for(i = 0;i < n;i ++)printf("%d ",b[i]);printf("\n");}return 0;}
#include <stdio.h>int main(){int n, k, i, j, m, f;int pos;int a[1005], b[1005];while(scanf("%d %d", &n, &k)!=EOF&&n!=0){//int size = n - pos;int tmp;for(i = 0;i < n;i ++)a[i] = i + 1;for(i = 0;i < k;i ++){/*for(j = 0;j < n;j++)b[(j+size)%n] = a[j];*/scanf("%d", &pos);for(j = pos;j < n;j ++)b[j - pos] = a[j];for(j = pos - 1;j>=0;j --) a[n - pos + j] = a[j]; for(j = 0;j < n - pos;j++) a[j] = b[j];for(f = 0,m =n / 2 - 1;f<m;f ++,m --){tmp = a[f];a[f] = a[m];a[m] = tmp;}}for(i = 0;i < n;i ++) printf("%d ",a[i]);printf("\n");}return 0;}
- 怪异的洗牌
- 题目1477:怪异的洗牌
- 题目1477:怪异的洗牌
- 九度OJ 题目1477:怪异的洗牌
- 怪异的SQL注入
- 怪异的SQL注入
- 怪异的SQL注入
- 怪异的SQL注入
- 怪异的感觉
- 怪异的问题
- gavinnn,怪异的名字
- 怪异的dhcp
- 怪异的图像转换
- 删除怪异的表
- 怪异的系统自动关机
- 怪异的switch
- 怪异的insight
- 怪异的楼梯
- Java中访问权限修饰符
- Java中Scanner类的用法
- 多线程编程——实战篇(一)
- 课程设计说明书
- “/”应用程序中的服务器错误。 找到了多个与名为“Home”的控制器匹配的类型。如果为此请求(“{controller}/{action}/{id}”)提供服务的路由没有指定命名空间来搜索匹配此请求的
- 怪异的洗牌
- Windbg使用指南(1)---常用命令
- 图像处理和计算机视觉中的经典论文(部分)
- 改写《魔塔》后篇01:在地图上绘制怪物
- 编解码--HEVC,SVC
- HDU 1166 敌兵布阵(线段树)
- 嵌入式Linux系统下I2C设备驱动程序的开发
- 362. Prevention is better than cure. 预防胜于治疗
- 小巫随笔6