首页 > 其他分享 >P4036 [JSOI2008] 火星人

P4036 [JSOI2008] 火星人

时间:2023-06-01 18:56:48浏览次数:61  
标签:ch P4036 int s1 JSOI2008 火星人 LOCAL

暴力水过了wwwwwwwwwwwwwww

#include<bits/stdc++.h>
//================================================
//#define LOCAL FLANDRE KAWAII
#ifndef LOCAL
    constexpr int SIZE(1<<20);
    char in[SIZE],out[SIZE],*p1=in,*p2=in,*p3=out;
    #define getchar() (p1==p2&&(p2=(p1=in)+fread(in,1,SIZE,stdin),p1==p2)?EOF:*p1++)
    #define flush() (fwrite(out,1,p3-out,stdout))
    #define putchar(x) (p3==out+SIZE&&(flush(),p3=out),*p3++=(x))
    class Flush{public:~Flush(){flush();}}_;
#endif
inline int read(){
	int x(0);bool f(0);char ch=getchar();
	for(;ch<'0'||ch>'9';ch=getchar()) f^=ch=='-';
	for(;ch>='0'&&ch<='9';ch=getchar()) x=(x<<1)+(x<<3)+(ch^48);
	return f?x=-x:x;
}
inline void write(int x){
	x<0?x=-x,putchar('-'):0;static short Sta[50],top(0);
	do{Sta[++top]=x%10;x/=10;}while(x);
	while(top) putchar(Sta[top--]|48);
	putchar('\n');
}
inline void readc(char &c){
	c=getchar();while(isspace(c))c=getchar();
}
//================================================
std::vector <char> s;
std::string s1;
inline void check(){
	std::cout<<"CH:"<<'\n';
	for(auto i:s){std::cout<<i<<" " ;}
	std::cout<<'\n';
}
int m,len;
int main(){
	std::cin>>s1;len=s1.size();
	for(auto i:s1) s.push_back(i);
	char opt,ch;
	m=read();
	for(int i=1,x,y,cnt=0;i<=m;++i){
		readc(opt);x=read();
		switch(opt){
			case 'Q':y=read();
				for(int j=x-1,k=y-1;k<len;++j,++k){if(s[j]==s[k]) cnt++;else break;}
				write(cnt);cnt=0;break;
			case 'R':readc(ch);s[x-1]=ch;break;
			case 'I':readc(ch);len++;s.insert(s.begin()+x,ch);break;
		}
//		check();
	}
	return 0;
}

标签:ch,P4036,int,s1,JSOI2008,火星人,LOCAL
From: https://www.cnblogs.com/UNowen/p/17449924.html

相关文章

  • [NOIP2004 普及组] 火星人
    题目简单,A完之后看题解,看到大佬的一片题解有感而发,这位大佬的DFS确实精妙看完题之后你会发现只需要5行就可以解决,c++自带的全排列函数,但是有位大佬手写DFS的方法非常巧妙,直接精确定位,让我对dfs的理解多多少少又加深一层题目描述人类终于登上了火星的土地并且见到了神秘......
  • P4035 [JSOI2008]球形空间产生器
    A,B,球心坐标分别为\((a_1,a_2,a_3....),(b_1,b_2,b_3....),(c_1,c_2,c_3....)\)则\(dist^2=(a_1-c_1)^2+(a_2-c_2)^2+(a_3-c_3)^2\)......\(=(b_1-c_1)^2+(b_2-c_2)^2......
  • P1198 JSOI2008 最大数
    P1198JSOI2008最大数-洛谷|计算机科学教育新生态(luogu.com.cn)采用ST表维护RMQ。对于插入操作,设插入后数列长度变为\(n\),我们只需重新修改满足\(i+2^j-......
  • 洛谷 P1088 火星人(乱搞)
    题目大意:已知有一串数字,问在原来的数字串的字典序加m后,应该输出多少解题思路:最简便的做法是用next_permutation,这个生成的全排列可以按照字典序递增,这里我用的是搜索的方法......
  • BZOJ 1012: [JSOI2008]最大数maxnumber
    题目链接:​​传送门​​时隔一年再写一遍#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>#include<complex>#include<algorithm>#include<cl......
  • BZOJ 1013([JSOI2008]球形空间产生器sphere-gauss消元练习)
    1013:[JSOI2008]球形空间产生器sphereTimeLimit: 1Sec  MemoryLimit: 162MBSubmit: 1181  Solved: 654[​​Submit​​][​​Status​​][​​Discu......
  • [2004年NOIP普及组] 火星人
    next_permutation函数将按字母表顺序生成给定序列的下一个较大的排列,直到整个序列为降序为止。prev_permutation函数与之相反,是生成给定序列的上一个较小的排列。这是一个......
  • [2004年NOIP普及组] 火星人
    [2004年NOIP普及组]火星人分析:根据题意,要在题中给出的排列组合的基础上,加上m,形成一个新的排列组合。因为全排列是按照从小到大的顺序进行的,所以我们可以转化为全排列问......