CodeForces 598B Queries on a String
2017-04-03 20:55
337 查看
思路:
一年前学的三步翻转。。一年后才用上。!不过暴力好像也过了!
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
using namespace std;
void reverse(char *left,char *right)
{
while(left<right)
{
char temp=*left;
*left=*right;
*right=temp;
right--;
left++;
}
}
void Leftmove(char *s,int len,int m)
{
m%=len;
m=len-m;
m%=len;
// cout<<m<<endl;
reverse(s,s+len-1);
reverse(s,s+len-m-1);
reverse(s+len-m,s+len-1);
}
char str[100005];
int main()
{
gets(str);
int k,n;
scanf("%d",&n);
while(n--)
{
int l,r;
scanf("%d%d%d",&l,&r,&k);
Leftmove(&str[l-1],r-l+1,k);
}
puts(str);
}
一年前学的三步翻转。。一年后才用上。!不过暴力好像也过了!
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
using namespace std;
void reverse(char *left,char *right)
{
while(left<right)
{
char temp=*left;
*left=*right;
*right=temp;
right--;
left++;
}
}
void Leftmove(char *s,int len,int m)
{
m%=len;
m=len-m;
m%=len;
// cout<<m<<endl;
reverse(s,s+len-1);
reverse(s,s+len-m-1);
reverse(s+len-m,s+len-1);
}
char str[100005];
int main()
{
gets(str);
int k,n;
scanf("%d",&n);
while(n--)
{
int l,r;
scanf("%d%d%d",&l,&r,&k);
Leftmove(&str[l-1],r-l+1,k);
}
puts(str);
}
相关文章推荐
- Codeforces 500B New Year Permutation( Floyd + 贪心 )
- Codeforces 25C Roads in Berland(floyed)
- CodeForces 631C Report
- codeforces 768E Game of Stones
- CodeForces - 557C. Arthur and Table
- codeforces 850c sg函数
- codeforces Good Bye 2014
- CodeForces 25D - Roads not only in Berland(并查集题目)
- CodeForces 633C Spy Syndrome 2
- Codeforces 548C - Mike and Frog(暴力循环节)
- Codeforces 833B - The Bakery(DP+线段树)
- Garden CodeForces - 915A
- 【CODEFORCES】 D. Pashmak and Parmida's problem
- Codeforces 630R Game
- codeforces-703(好题)
- Codeforces 766A-Mahmoud and Longest Uncommon Subsequence
- CodeForces - 833B The Bakery(dp+线段树的巧妙运用)
- CodeForces - 916A
- codeforces 446B DZY Loves Modification(枚举)
- Codeforces 628A Tennis Tournament 【水题】