Why RE
查看原帖
Why RE
346410
_1009_楼主2024/5/6 10:42
#include<bits/stdc++.h>
#define f(i,l,r) for(int i=l;i<=r;i++)
#define F if
#define E else
using namespace std;
struct edge
{
	int x1,x2,l,c,v=0;
}e[4010];
int m,now,s;
int read()
{
	int x=0,f=1;
  	char ch=getchar();
	while(ch<'0'||ch>'9')
    {
    	F(ch=='-')
        	f=-1;
    	ch=getchar();
	}
	while(ch>='0'&&ch<='9')
    {
        x=x*10+ch-48;
        ch=getchar();
    }
	return x*f;
}
void find(int cur,int v,int t)
{
	e[cur].v=1;
	int flg=0;
	F(cur==v)
		return;
	f(i,1,m)
	{
		F(e[i].v==0&&(e[i].x1==cur||e[i].x2==cur))
		{
			F(t+e[i].l<=e[i].c)
			{
				now+=e[i].l;
				F(e[i].x1==cur)
					find(e[i].x2,v,t+e[i].l);
				E
					find(e[i].x1,v,t+e[i].l);
				now-=e[i].l;
			}
			E
			{
				now+=s-t+e[i].l;
				F(e[i].x1==cur)
					find(e[i].x2,v,s+e[i].l);
				E
					find(e[i].x1,v,s+e[i].l);
				now-=s-t+e[i].l;
			}
			flg=1;
		}
	}
	e[cur].v=0;
	F(flg==0)
		return;
}
int main()
{
	int n,q;
	n=read();
	m=read();
	s=read();
	q=read();
	f(i,0,m-1)
	{
		int a=read(),b=read(),l=read(),c=read();
		e[i].x1=a;
		e[i].x2=b;
		e[i].l=l;
		e[i].c=c;
	}
	f(i,1,q)
	{
		int u=read(),v=read(),t=read();
		find(u,v,t);
		cout<<now<<endl;
	}
}

虽然是爆搜单页不应该RE a

2024/5/6 10:42
加载中...