求优化
查看原帖
求优化
288506
OutsideR_楼主2021/10/1 15:18

大佬们帮帮 还差0.2秒进去

#include <iostream>
using namespace std;
int r,c,n,tmp,i,j,r1,ret,f;
char a[30002][31];
int read(){
	ret=0;
	f=1;
	char ch=getchar();
	while (!isdigit(ch)){if (ch=='-')f=-f;ch=getchar();}
	while (isdigit(ch)) ret=(ret<<3)+(ret<<1)+(ch&15),ch=getchar();
	return ret*f;
}
int main(){
	ios::sync_with_stdio(false);
	r=read();
	c=read();
	for(i=1;i<=r;i++)for(j=1;j<=c;j++)cin>>a[i][j];
	n=read();
	for(i=1;i<=n;i++){
		tmp=read();
		for(r1 = 1;r1<=r;r1++){
			if(a[r1][tmp]=='O'){
				if(a[r1][tmp-1]=='.' && a[r1-1][tmp-1]=='.'){
					tmp--;
					r1--;
				}
				else if(a[r1][tmp+1]=='.' && a[r1-1][tmp+1]=='.'){
					tmp++;
					r1--;
				}
				else{
					a[r1-1][tmp]='O'; 
					break;
				}
			}
			if(a[r1][tmp]=='X'){
				a[r1-1][tmp]='O';
				break;
			}	
			if(r1==r){
				a[r1][tmp]='O';
				break;
			}
		}
	}
	for(i=1;i<=r;i++){
		for(j=1;j<=c;j++){
			putchar(a[i][j]);
		}
		putchar('\n');
	}
	return 0;
}

能优化的已经全部优化了

2021/10/1 15:18
加载中...