codeforces-525B Pasha and String
来源:互联网 发布:阿里云ecs 搭建vpn 编辑:程序博客网 时间:2024/05/05 03:29
codeforces-525B Pasha and String
time limit per test2 seconds memory limit per test256 megabytes
Pasha got a very beautiful string s for his birthday, the string consists of lowercase Latin letters. The letters in the string are numbered from 1 to |s| from left to right, where |s| is the length of the given string.
Pasha didn’t like his present very much so he decided to change it. After his birthday Pasha spent m days performing the following transformations on his string — each day he chose integer ai and reversed a piece of string (a segment) from position ai to position |s| - ai + 1. It is guaranteed that 2·ai ≤ |s|.
You face the following task: determine what Pasha’s string will look like after m days.
Input
The first line of the input contains Pasha’s string s of length from 2 to 2·105 characters, consisting of lowercase Latin letters.
The second line contains a single integer m (1 ≤ m ≤ 105) — the number of days when Pasha changed his string.
The third line contains m space-separated elements ai (1 ≤ ai; 2·ai ≤ |s|) — the position from which Pasha started transforming the string on the i-th day.
Output
In the first line of the output print what Pasha’s string s will look like after m days.
input
abcdef
1
2
output
aedcbf
input
vwxyz
2
2 2
output
vwxyz
input
abcdef
3
1 2 3
output
fbdcea
题目大意:字符串翻转m次,每次翻转a[i]到|s| - a[i]+ 1这一段。
题目思路:直接写的话会超时,应该先记录每个i位置的翻转次数,可以知道如果该位置翻转偶数次就相当于不变,奇数次则改变。
题目链接:codeforces 525B
以下是代码:
#include <vector>#include <map>#include <set>#include <algorithm>#include <iostream>#include <cstdio>#include <cmath>#include <cstdlib>#include <string>#include <cstring>using namespace std;int a[100100] = {0};int main(){ string s; cin >> s; int m; cin >> m; for (int i = 0; i < m; i++) { int num; cin >> num; a[num]++; } int len = s.size(); int sum = 0; for (int i = 0; i <= len / 2; i++) { sum += a[i]; //每位上翻转的次数 if (sum % 2) swap(s[i - 1],s[len - i]); } cout << s << endl; return 0;}
- codeforces-525B Pasha and String
- codeforces 525B Pasha and String
- codeforces 525b Pasha and String
- CodeForces 525B Pasha and String 水题
- Codeforces 525B Pasha and String 【思维】
- codeforces B. Pasha and String
- Codeforces--525B--Pasha and String(思维)
- Codeforces Round#297 B. Pasha and String
- B. Pasha and String
- B. Pasha and String
- CF 525B Pasha and String
- coderforce 525B. Pasha and String
- Codeforces Round #297 (Div. 2) B. Pasha and String
- Codeforces Round #297 (Div. 2)B Pasha and String
- Codeforces Round #297 (Div. 2) B - Pasha and String
- Codeforces #297 (Div. 2) B. Pasha and String (贪心
- Codeforces 525B. Pasha and String【线段树 区间更新 单点查询】
- CF 525B(Pasha and String-贪心+找规律)
- brew install php55 报错 BZip2 not found解决办法
- honey-----http中的ajax与 jquery_ajax中的用法解读【内容仅供参考,未经验证】
- Max Sum(hdu-1003)
- modernizr框架之表单验证
- 1004. The Date class (version 1)
- codeforces-525B Pasha and String
- 新闻系统——SQLHelper助手优化
- 不同环境中的换行符
- Java并发编程:Timer和TimerTask(转载)
- 第十一周项目2 - 职员有薪水了(2、来个深复制)
- istringstream在读文件时候的应用
- lintcode:Binary Tree Maximum Path Sum
- linux 防火墙屏蔽和删除 ip
- 自定义视图控制器容器