POJ1860求助
  • 板块学术版
  • 楼主XXZ_BJT
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/5/5 21:00
  • 上次更新2023/10/23 16:34:06
查看原帖
POJ1860求助
643852
XXZ_BJT楼主2023/5/5 21:00

POJ1860 (戳这里看题目)

(洛谷上没找到题目)

翻译啥的凑合凑合麻烦各位大佬自行解决【囧】

下面,上我的代码(当然结果是WA)

#include <iostream>
#include <string.h>
using namespace std;
int n,m,s;
double v;
int all;
double d[105];
struct node
{
	int a,b;
	double r,c;
}ex[205];
bool bellman()
{
	memset(d,0,sizeof(d));
	d[s]=v;
	bool flag;
	for(int i=1;i<n;i++)
	{
		flag=false;
		for(int j=1;j<all;j++)
		{
			if(d[ex[j].b]<(d[ex[j].a]-ex[j].c)*ex[j].r)
			{
				d[ex[j].b]=(d[ex[j].a]-ex[j].c)*ex[j].r;
				flag=true;
			}
			if(!flag)
				break;
		}
	}
	for(int k=0;k<all;k++)
		if(d[ex[k].b]<(d[ex[k].a]-ex[k].c)*ex[k].r)
			return true;
		return false;
}
int main()
{
	int a,b;
	double x1,x2,y1,y2;
	while(cin>>n>>m>>s>>v)
	{
		all=0;
		for(int i=0;i<m;i++)
		{
			cin>>a>>b>>x1>>x2>>y1>>y2;
			ex[all].a=a;
			ex[all].b=b;
			ex[all].r=x1;
			ex[all++].c=x2;
			ex[all].a=b;
			ex[all].b=a;
			ex[all].r=y1;
			ex[all++].c=y2;
		}
		if(bellman())
			cout<<"YES"<<endl;
		else 
			cout<<"NO"<<endl;
	}
	return 0;
}

结果是WA,样例应该或许可能没错(真的不自信),麻烦大佬帮我这个蒟蒻调一下程序谢谢!

万死不辞!!!

2023/5/5 21:00
加载中...