警示后人
  • 板块灌水区
  • 楼主Amoribus
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/9/27 18:28
  • 上次更新2024/9/27 19:56:37
查看原帖
警示后人
935976
Amoribus楼主2024/9/27 18:28

关掉流同步后,scanf和cin不能混用!

如下面的代码,会爆零

P11078 「FSLOI Round I」迷雾

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n,m,q,k,mp[128],x,y,a,b;
bool st[25],rev[200005];
char c,f[505][505];
const int dir[2][4]={{0,1,2,3},{1,0,3,2}};
const int dx[4]={-1,1,0,0};
const int dy[4]={0,0,1,-1};
int main()
{
	ios::sync_with_stdio(0);
	cin>>n>>m>>q>>k;
	mp['U']=0;mp['D']=1;mp['R']=2;mp['L']=3;
	for(int i=1;i<=n;i++) scanf("%s",f[i]+1);
	x=y=1;
	for(int i=1;i<=q;i++)
	{
		cin>>c;
		cin>>a>>b;
		x+=a*dx[dir[st[i%k]][mp[c]]];
		y+=a*dy[dir[st[i%k]][mp[c]]];
		x=max(1,x);x=min(n,x);
		y=max(1,y);y=min(m,y);
		if(f[x][y]=='X') st[i%k]^=1,rev[i+k*b]^=1;
		if(rev[i]) st[i%k]^=1;
	}
	printf("%d %d\n",x,y);
	return 0;
}
#include<bits/stdc++.h>
using namespace std;
int n,m,q,k,mp[128],x,y,a,b;
bool st[25],rev[200005];
char c,f[505][505];
const int dir[2][4]={{0,1,2,3},{1,0,3,2}};
const int dx[4]={-1,1,0,0};
const int dy[4]={0,0,1,-1};
int main()
{
	cin>>n>>m>>q>>k;
	mp['U']=0;mp['D']=1;mp['R']=2;mp['L']=3;
	for(int i=1;i<=n;i++) scanf("%s",f[i]+1);
	x=y=1;
	for(int i=1;i<=q;i++)
	{
		cin>>c>>a>>b;
		x+=a*dx[dir[st[i%k]][mp[c]]];
		y+=a*dy[dir[st[i%k]][mp[c]]];
		x=max(1,x);x=min(n,x);
		y=max(1,y);y=min(m,y);
		if(f[x][y]=='X') st[i%k]^=1,rev[i+k*b]^=1;
		if(rev[i]) st[i%k]^=1;
	}
	printf("%d %d\n",x,y);
	return 0;
}
2024/9/27 18:28
加载中...