求调P11228
  • 板块题目总版
  • 楼主itz_HanQAQ
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/12/20 22:04
  • 上次更新2024/12/21 10:05:44
查看原帖
求调P11228
1281411
itz_HanQAQ楼主2024/12/20 22:04

40pts且样例过

#include<bits/stdc++.h>
using namespace std;
struct map_k{
	int n,m,k;
	int x0,y0,d0;
	char char_map[1005][1005];
	bool true_or_false[1005][1005];
	int ans;
};
map_k a[10];

int dx[4]={0,1,0,-1};
int dy[4]={1,0,-1,0};


int main(){
	int t;
	cin>>t;
	for(int i=1;i<=t;i++){
		cin>>a[i].n>>a[i].m>>a[i].k;
		cin>>a[i].x0>>a[i].y0>>a[i].d0;
		for(int j=1;j<=a[i].n;j++){
			for(int l=1;l<=a[i].m;l++){
				cin>>a[i].char_map[j][l];
			}
		}
		a[i].ans=1;
	}
	int xn,yn;
	for(int i=1;i<=t;i++){
		memset(a[i].true_or_false,0,sizeof(a[i].true_or_false)); 
		for(int j=1;j<=a[i].k;j++){
			xn=a[i].x0+dx[a[i].d0];
			yn=a[i].y0+dy[a[i].d0];
			if(1<=xn && xn<=a[i].n && 1<=yn && xn<=a[i].m && a[i].char_map[xn][yn]=='.'){
				a[i].x0=xn;
				a[i].y0=yn;
				a[i].true_or_false[xn][yn]=true;
				//cout<<a[i].x0<<' '<<a[i].y0<<endl;
			}
			else {
				a[i].d0=(a[i].d0+1)%4;
				//cout<<a[i].d0<<endl;
			}
			
		}
		for(int j=1;j<=a[i].n;j++){
			for(int l=1;l<=a[i].m;l++){
				if(a[i].true_or_false[j][l]==true)
				a[i].ans++;
			}
		} 
		cout<<a[i].ans<<endl;
	} 
    return 0;
}

2024/12/20 22:04
加载中...