求助!!!自己出的题写不出标程了

洛谷u317780,因为没有标程没有测试点,各位写出来后测一下标准样例,再看看

26 44 447
. . # . . @ # @ # . . @ . # @ # # # . # . @ @ @ . @ # @ @ @ @ @ # . . . . # # # . . @ @

@ # . . . . @ @ @ # @ # @ # . # # @ @ # # @ . . @ @ . @ . # . # # # . # . # # @ . @ . #

# . @ # # @ @ . . . . # . . . # # # @ @ . @ . # . @ . . @ # . . @ @ . @ # # @ . # # . .

@ @ . # @ # # . . # . . @ . # # # . . @ @ # @ . # . @ # . . . . # . @ . @ . # @ @ @ # #

# # # # # . . @ . # # . . @ # @ . . . # # # . # . @ . @ # . . . @ . @ . # . # # . @ . @

# @ @ @ . # @ @ . # . @ # . @ @ @ @ @ # # . . @ # . # # @ . . # . # . # @ # # . . @ . @

@ @ @ @ . . . @ . @ . . . . @ @ # . . . . . . # . . @ @ # @ . # . . . # . @ . @ . @ @ #

@ @ . @ . . . @ @ @ @ # @ @ . . @ @ # # # @ . . . @ @ @ # @ # . . . # @ @ . @ . # . . #

@ @ . @ . . # # . . # @ @ # . @ . @ @ . . # # . . @ # @ . # . @ . @ @ . . # . . # . . .

@ @ @ @ . . . . . . # @ . . . . . @ @ # . # @ @ . @ . # . @ @ @ @ . # . @ . @ # # . @ #

. . . # . @ . @ # @ @ @ . @ @ @ @ @ # @ @ # # @ # . # . . # # . . @ @ . # # . # . @ # #

. . @ . @ @ @ . . . . . @ @ # @ # @ @ @ @ @ # # @ . @ # # . # @ @ # . . # @ @ @ @ @ # .

@ @ @ . @ . @ @ . @ @ . @ . . @ # # @ @ . . . @ @ . # . # @ . # @ @ . @ @ # @ # # # # #

@ . . . . . . . @ . @ @ . @ @ @ . # # # # @ # @ . @ . # @ . @ # @ # @ @ # . # @ . @ @ @

@ . @ @ . . . . . . . . . # # @ @ @ # @ @ . @ . . @ @ @ . # # . @ @ . @ # @ # # @ @ . #

. . . @ @ @ . . . . @ @ # @ . . . . # @ @ @ . . # # . @ # @ @ # @ # @ . @ @ @ @ @ @ # .

. @ @ . . . @ . @ . @ . . . . . @ . # . . . @ . @ . # . @ @ . @ . # # @ @ # . @ . @ @ #

@ . @ @ @ . . . . @ @ @ . . @ . . . # # . # @ . @ # . @ @ # @ @ @ @ # . . @ @ . # # . #

. . @ @ . @ . @ . . @ . @ . @ . @ @ @ . # @ @ @ # @ @ # # @ . @ . # . . . # . . . . . .

@ @ @ . . @ . . @ @ @ . @ . @ . @ . . . . . @ . . @ . @ # # @ @ . # . @ . . @ @ @ # @ .

. @ . @ @ @ . @ @ . @ @ @ . . @ @ @ . # . . # . . # . @ # @ @ . . @ # . # # # @ @ . @ .

. @ . . @ @ . @ @ @ . . @ . . @ @ . @ # @ # . . . . # . @ @ @ # . . @ . # . # . # @ @ #

@ . . . @ . @ @ @ . @ @ . @ @ @ @ @ @ @ # # @ @ @ . @ @ @ . @ @ @ @ # # @ . @ # . . . @

. . . . . . @ . . @ . . @ @ . . . @ @ . . @ . . # . @ @ . @ . # @ . . # # # . @ . . # #

. . @ @ . . # @ @ . . @ @ @ @ @ . @ . . @ # @ @ @ # @ . # . . . # # # # . # @ # # @ . .

. . @ @ @ @ # . . @ @ @ @ # @ # # . . @ . # # @ @ . . @ . @ . @ # . # . # . # . . @ @ .

这个测试点会不会死循环或输出-1(这两种情况绝对是错的)

666

1 个赞

你这咋过啊

1 个赞

就设1s,256M

1 个赞
11 45 14

好臭的样例,今天教室里的答辩是你拉的吧(悲

1 个赞

还没搞出标程呢(笑)

1 个赞

搞出来再去改

1 个赞
#include<bits/stdc++.h>
using namespace std;
int n,m,t,ans;
bool go_out;
bool mapb[105][105];
bool mapc[105][105];
int walk[4][2]={{0,1},{1,0},{-1,0},{0,-1}};
queue<int> q;
int main(){
	cin>>n>>m>>t;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			char c;
			cin>>c;
			if(c=='#'){
				mapb[n-i+1][j]=true;
			}else if(c=='@'){
				mapc[n-i+1][j]=true;
			}
		}
	}
	if(!mapb[1][1]){
		q.push(1);
		q.push(1);
		q.push(0);
		q.push(mapc[1][1]);
	}
	while(!q.empty()){
		int x=q.front();
		q.pop();
		int y=q.front();
		q.pop();
		int cnt=q.front();
		q.pop();
		int chk=q.front();
		q.pop();
		mapb[x][y]=true;
		if(t-cnt<abs(n-x)+abs(m-y)-2){
			continue;
		}
		if(x==n&&y==m){
			ans=max(ans,chk);
			go_out=true;
		}
		if(cnt<t){
			for(int i=0;i<4;i++){
				int nx=x+walk[i][0],ny=y+walk[i][1];
				if(!mapb[nx][ny]&&nx>=1&&nx<=n&&ny>=1&&ny<=m){
					q.push(nx);
					q.push(ny);
					q.push(cnt+1);
					q.push(chk+mapc[nx][ny]);
				}
			}
		}
	}
	if(go_out){
		cout<<ans;
	}else{
		cout<<-1;
	}
	return 0;
}

或者各位帮忙挑个错,上面那个样例会运行很长的时间(主要是不知道这题咋剪枝)

1 个赞

有人写出来的话私发一下

1 个赞

呵呵

1 个赞