求助大佬
  • 板块P1432 倒水问题
  • 楼主Wade_W
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/29 14:43
  • 上次更新2024/7/29 14:45:09
查看原帖
求助大佬
1237578
Wade_W楼主2024/7/29 14:43
#include<bits/stdc++.h>
using namespace std;
int t,a,b,n,head,tail,v[10005][10005];
struct node{
	int a,b,step,op,pre;
}q[100000005];
void out(int p){
	if(q[p].pre)out(q[p].pre);
	printf(" %d",q[p].op+1);
	return;
}
void waste(){
	memset(v,0x3f,sizeof(v));
	v[0][0]=0;
	head=tail=0;
	q[tail].a=0,q[tail].b=0,q[tail].op=-1,q[tail].pre=-1,q[tail++].step=0;
	node cur=q[head++];
	for(int i=0,ta,tb;i<6;i++){
		switch(i){
			case 0:ta=a;tb=cur.b;break;
			case 1:ta=cur.a;tb=b;break;
			case 2:ta=0;tb=cur.b;break;
			case 3:ta=cur.a;tb=0;break;
			case 4:if(cur.a+cur.b>a){
					ta=a;tb=cur.a+cur.b-a;
				}else{
					ta=cur.a+cur.b;tb=0;
				}break;
			case 5:if(cur.a+cur.b>=b){
					tb=b;ta=cur.a+cur.b-b; 
				}else{
					tb=cur.a+cur.b;ta=0;
				}break;
		}
		if(v[ta][tb]>cur.step+1){
			v[ta][tb]=cur.step+1;
			q[tail++].a=ta,q[tail++].b=tb,q[tail++].step=cur.step+1,q[tail++].op=i,q[tail++].pre=head-1;
			if(tb==n){
				printf("%d",cur.step+1);
				out(tail-1);
				printf("\n");
				return;
			}
		}
	}
}
int main(){
	scanf("%d",&t);
	for(int i=1;i<=t;i++){
		scanf("%d%d%d",&a,&b,&n);
		waste();
	}
	return 0;
}

报错信息:

[Error] ld returned 1 exit status

有知道的大佬帮忙看看吧

2024/7/29 14:43
加载中...