博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
codeforces B. Pasha and String(贪心)
阅读量:6279 次
发布时间:2019-06-22

本文共 1645 字,大约阅读时间需要 5 分钟。

题意:给定一个长度为len的字符序列,然后是n个整数,对于每一个整数ai,

将字符序列区间为[ai,len-ai+1]进行反转。求出经过n次反转之后的序列!

1 /* 2      思路1:将区间为偶数次的直接去掉!对剩下的区间进行反转。超时了,智商上的压制...  3 */  4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #define N 10000511 using namespace std;12 char mp[2*N];13 int num[N];14 int cnt[N*2];15 16 void my_swap(int &a, int &b){17 a^=b;18 b^=a;19 a^=b;20 }21 22 void my_reverse(int x, int y){23 for(int i=x, j=y; i
>m; 34 for(int i=0; i
end) my_swap(begin, end);45 my_reverse(begin, end);46 }47 }48 printf("%s\n", mp+1);49 }
1 /* 2     思路2:仔细分析,每一个反转的区间左右是对称的,如果[ai, len-ai+1]区间进行反转, 3     那么就有str[ai]与str[len-ai+1]交换,str[ai+1]与str[len-ai]交换..... 4     也就是ai位置发生交换,那么ai+1,ai+2...len/2也一定发生交换。如果ai位置的交换的次数 5     为偶数就不用交换,为奇数就进行交换!  6 */ 7 #include
8 #include
9 #include
10 #include
11 #include
12 #include
13 #define N 10000514 using namespace std;15 char mp[2*N];16 int cnt[N*2];//统计每一个位置交换的次数 17 18 int main() {19 scanf("%s", mp+1);20 int m, mm=0;21 scanf("%d", &m) ;22 int len = strlen(mp+1);23 while(m--){24 int x;25 scanf("%d", &x);26 ++cnt[x], ++cnt[len-x+1];27 }28 29 for(int i=2; i<=len/2; ++i)30 cnt[i] += cnt[i-1];//第i个位置交换,那么第i+1,i+2..len/2个位置也一定发生交换 31 32 for(int i=1; i<=len/2; ++i)33 if(cnt[i]%2!=0)//奇数位置交换 34 swap(mp[i], mp[len-i+1]);35 printf("%s\n", mp+1);36 }
本文转自 小眼儿 博客园博客,原文链接:http://www.cnblogs.com/hujunzheng/p/4382105.html,如需转载请自行联系原作者
你可能感兴趣的文章
Vue------第二天(计算属性、侦听器、绑定Class、绑定Style)
查看>>
dojo.mixin(混合进)、dojo.extend、dojo.declare
查看>>
Python 数据类型
查看>>
iOS--环信集成并修改头像和昵称(需要自己的服务器)
查看>>
PHP版微信权限验证配置,音频文件下载,FFmpeg转码,上传OSS和删除转存服务器本地文件...
查看>>
教程前言 - 回归宣言
查看>>
PHP 7.1是否支持操作符重载?
查看>>
Vue.js 中v-for和v-if一起使用,来判断select中的option为选中项
查看>>
Java中AES加密解密以及签名校验
查看>>
定义内部类 继承 AsyncTask 来实现异步网络请求
查看>>
VC中怎么读取.txt文件
查看>>
如何清理mac系统垃圾
查看>>
企业中最佳虚拟机软件应用程序—Parallels Deskto
查看>>
Nginx配置文件详细说明
查看>>
怎么用Navicat Premium图标编辑器创建表
查看>>
Spring配置文件(2)配置方式
查看>>
MariaDB/Mysql 批量插入 批量更新
查看>>
ItelliJ IDEA开发工具使用—创建一个web项目
查看>>
solr-4.10.4部署到tomcat6
查看>>
切片键(Shard Keys)
查看>>