RT,萌新求助
#include<bits/stdc++.h>
#define CSP RP++ SCORE++
#define NOIP RP++ SCORE++
#define AHOI RP+ SCORE++
#define NOI RP++ SCORE++
#define IOI RP++ SCORE++
#define int long long
//#define ld long double
//#define maxn(a,b) (a>b?a:b)
//#define minx(a,b) (a<b?a:b)
//#define s(a) scanf("%d",&a)
//#define sd(a,b) scanf("%d %d",&a,&b)
//#define p(a) printf("%d",a)
//#define pk(a) printf("%d ",a)
//#define ph(a) printf("%d\n",a)
using namespace std;
const int N=2e6+5e5+10;
int xd,n,m,k,d,res,u,v,w,x,len,r,c[N],f[N],p[N],we[N],pp,to[N],a[N],h[N],g[N];
//inline int read() {
// int x=0,f=1;
// char ch=getchar();
// while(ch<'0'||ch>'9') {
// if(ch=='-')
// f=-1;
// ch=getchar();
// }
// while(ch>='0'&&ch<='9') {
// x=(x<<1)+(x<<3)+(ch^48);
// ch=getchar();
// }
// return x*f;
//}
void read(int &x) {
char c=getchar();
int t=1;x=0;
while(c<'0'||c>'9') {
if(c=='-')
t=-t;
c=getchar();
}
while(c>='0'&&c<='9')
x=(x<<1)+(x<<3)+(c-48),c=getchar();
x*=t;
}
inline void write(int x) {
if(x<0)
putchar('-'),x=-x;
if(x>9)
write(x/10);
putchar(x%10+'0');
}
inline void lol(int x,int y) {
swap(p[we[x]],p[we[y]]);
swap(we[x],we[y]);
}
inline void p1(int i) {
i=p[i];
while(f[we[i]]<f[we[i>>1]])
lol(i,i>>1),i>>=1;
}
inline void p2(int i) {
lol(i,len);
we[len--]=n+1;;
while((i<<1)<=len) {
if(f[we[i]]<=f[we[i<<1]]&&f[we[i]]<=f[we[(i<<1)+1]])
break;
if(f[we[i<<1]]<f[we[(i<<1)+1]])
lol(i,i<<1),i<<=1;
else
lol(i,(i<<1)+1),i=(i<<1)+1;
}
}
inline void add(int x,int y,int z) {
pp++,to[pp]=y;
a[pp]=z,g[pp]=h[x];
h[x]=pp;
}
void print(int x) {
if(!c[x]) {
write(x);
return;
}
print(c[x]);
putchar('-'),putchar('>');
write((x-1)%xd+1);
}
signed main() {
read(xd),read(m),read(k),read(d),read(res);
n=xd*k;
for(int i=1; i<=m; i++)
read(u),read(v),read(w),add(u,v,w);
for(int i=1; i<=n+1; i++)
f[i]=2333333;
f[d]=0,len=n;
for(int i=1; i<=n; i++)
we[i]=p[i]=i;
p1(d);
for(int i=1; i<=n; i++) {
x=we[1];
if(x==res)
break;
if(f[x]==2333333)
return puts("jjc fails in travelling"),0;
p2(1);
for(int p=h[(x-1)%xd+1]; p; p=g[p]) {
r=f[x]+a[p];
w=to[p]+xd*(r%k);
if(f[w]>r)
f[w]=r,c[w]=x,p1(w);
}
}
write(f[res]);
puts("");
print(res);
return 0;
}
错误信息:
Wrong Answer. wrong answer On line 1 column 1, read j, expected 2.
貌似是“jjc fails in travelling”的问题,救救孩子吧