题目链接

题目大意

给你一个长度为n的序列(n为偶数),序列为[1,2,3,....n],操作m次,进行m次操作后输出这个序列

有三种操作

1:每次将最左边的元素移到最右边,重复x次

2:每次将最右边的元素移动到最左边,重复x次

3:交换[1,2] [3,4] ...[n-1,n]的元素

题目思路

这个最开始我一直以为是模拟当然最后也是模拟,不过是巧妙的模拟

这个题目的关键就是,你要把这个序列分为一个奇数序列和一个偶数序列。你会发现这两个序列内部的元素永远不会变化而且如果把每一个序列的元素他们单独绕成一个环,这些元素的相对位置不会发生变化。你就只要求出每一个序列的最开始位置即可

代码

#include<bits/stdc++.h>
#define fi first
#define se second
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const ll INF=0x3f3f3f3f3f3f3f3f;
const int maxn=1e5+5,mod=1e9+7,inf=0x3f3f3f3f;
int n,m;
int a[maxn],b[maxn];
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i+=2){
a[(i+1)/2]=i;
b[(i+1)/2]=i+1;
}
int beg1=1,beg2=1;//判断两个序列的开头元素
bool flag1=1,flag2=0;//判断两个序列开头元素为奇数还是偶数
for(int i=1,opt,x;i<=m;i++){
scanf("%d",&opt);
if(opt==2){
scanf("%d",&x);
beg1=(beg1-(x/2+(x%2&&!flag1))+(n/2)-1)%(n/2)+1;
beg2=(beg2-(x/2+(x%2&&!flag2))+(n/2)-1)%(n/2)+1;
}else if(opt==1){
scanf("%d",&x);
beg1=(beg1+(x/2+(x%2&&flag1))-1)%(n/2)+1;
beg2=(beg2+(x/2+(x%2&&flag2))-1)%(n/2)+1;
}
if(opt==3||(opt!=3&&x%2)){//如果转移时奇数,则交换奇偶性
swap(flag1,flag2);
}
}
if(flag1){
for(int i=1;i<=(n/2);i++){
printf("%d %d%c",a[(beg1+i-2+(n/2))%(n/2)+1],b[(beg2+i-2+(n/2))%(n/2)+1],(i==n/2)?'\n':' ');
}
}else{
for(int i=1;i<=(n/2);i++){
printf("%d %d%c",b[(beg2+i-2+(n/2))%(n/2)+1],a[(beg1+i-2+(n/2))%(n/2)+1],(i==n/2)?'\n':' ');
}
}
return 0;
}

CSUST 4019 听党指挥(思维+模拟)的更多相关文章

  1. 让CPU的占有率曲线听我指挥

    最近我要在公司的一个study group负责AWS的AutoScaling功能的介绍.AWS可以根据instance(虚拟机)的CPU使用量进行scaling. 为了做demo,于是就有这样一个需求 ...

  2. 第1章 游戏之乐——让CPU占用率曲线听你指挥

    让CPU占用率曲线听你指挥 写一个程序,让用于来决定Windows任务管理器(Task Manager)的CPU占用率.程序越精简越好,计算机语言不限.例如,可以实现下面三种情况: CPU的占用率固定 ...

  3. 让cpu占用率曲线听你指挥(多核处理器)

    编程之美 1.1 让cpu占用率曲线听你指挥(多核处理器) [版权声明]转载请注明出处 http://www.cnblogs.com/TenosDoIt/p/3242910.html  [目录] 不考 ...

  4. 编程之美 之 让CPU占用率听你指挥

    昨天在bbs上淘到了这本编程之美.顺手刷了第一章,很有意思.第一章的要求是要控制CPU曲线,绘制出对应的形状. 拿到这个问题,我的第一反应是, 是不是有这么一个API,能在任务管理器上的对应区域直接绘 ...

  5. CF--思维练习--CodeForces - 216C - Hiring Staff (思维+模拟)

    ACM思维题训练集合 A new Berland businessman Vitaly is going to open a household appliances' store. All he's ...

  6. 思维+模拟--POJ 1013 Counterfeit Dollar

    Sally Jones has a dozen Voyageur silver dollars. However, only eleven of the coins are true silver d ...

  7. C. Okabe and Boxes 思维 模拟 or 线段树

    C. Okabe and Boxes 这个题目是一个有点思维的模拟,当时没有想到, 思维就是这个栈的排序这里,因为每次直接排序肯定会t的,所以不可以这么写,那怎么表示排序呢? 就是直接把栈清空,如果栈 ...

  8. Codeforces Round #706 (Div. 2)B. Max and Mex __ 思维, 模拟

    传送门 https://codeforces.com/contest/1496/problem/B 题目 Example input 5 4 1 0 1 3 4 3 1 0 1 4 3 0 0 1 4 ...

  9. Educational Codeforces Round 63 (Rated for Div. 2) B. Game with Telephone Numbers 博弈思维+模拟+贪心思维

    题意:博弈题面  给出一个数字序列 (>=11)  有两个人任意删除数字 直到 数字只剩下11位 如果删除后的数字串开头是8那么就是第一个赢 否则就是第二个人赢 第一个人先手  数字序列一定是奇 ...

随机推荐

  1. git 出现 error: bad signature fatal: index file corrupt

    一次大改版,提交了很多代码,但再次提交提交不了,也拉不下来仓库的代码 提示error bad signature fatal: index file corrupt 在项目有.git这同级打开Git ...

  2. Learn day5 迭代器\生成器\高阶函数\推导式\内置函数\模块(math.time)

    1.迭代器 # ### 迭代器 """能被next调用,并不断返回下一个值的对象""" """ 特征:迭代器会 ...

  3. 03.axios登录前端

    1.创建一个Login.vue页面   1.1 写页面 views/Login.vue   在 views/components 下创建 Login.vue 页面   <template> ...

  4. 2020年的UWP(3)——UWP和desktop extension的简单交互

    上一篇<2020年的UWP(2)--In Process App Service>中我们了解了UWP和Desktop Extension可以通过AppService进行数据交互.本篇我们就 ...

  5. 看得见的成本!1款工具实现K8S资源成本监控可视化

    本文来自Rancher Labs 关注我们,第一时间获取技术干货 计算Kubernetes成本的复杂性 采用Kubernetes和基于服务的架构可以为企业带来诸多好处,如团队可以更快地迁移以及应用程序 ...

  6. Pycharm激活码(2020最新永久激活码)

    如果下边的Pycharm激活码过期失效了的话,大家可以关注我的微信公众号:Python联盟,然后回复"激活码"即可获取最新Pycharm永久激活码! 56NPDDVEIV-eyJs ...

  7. webpack配置babel篇

    babel-polyfill & babel-runtime & babel-preset-env babel-core babel-core 的作用是把 js 代码分析成 ast , ...

  8. Gromacs命令-Chapter1

    Gromacs的命令非常多,下面我将我最近用到的先总结一下.标题上也写了这只是Chapter1,以后有新的会继续写Chapter2...等等. 下面这个网址http://manual.gromacs. ...

  9. http 结构初始化

    简要而说:accept 到连接后 根据fd 构建一个connection  由于是 http : 重新封装为http-connection:同时设置fd的读回调: 回调函数根据是否是https/htt ...

  10. nginx&http 第二章 ngx 事件event初始化 ngx_event_process_init

    |----------(ngx_worker_process_cycle->ngx_worker_process_init) |--------->for(;;) {ngx_process ...