社区讨论

刚学OI,不知为啥全wa

UVA1723Intervals参与者 4已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@mi7yjt3o
此快照首次捕获于
2025/11/21 05:43
4 个月前
此快照最后确认于
2025/11/21 05:43
4 个月前
查看原帖
#include<bits/stdc++.h> using namespace std; const int N=50005; int T,n,mx,top,go[N5],nex[N5],len[N5],dis[N5],head[N]; bool flag[N]; void add(int u,int v,int w){nex[++top]=head[u];head[u]=top;go[top]=v;len[top]=w;} void spfa() { queue q; for (int i=0;i<=mx;++i) flag[i]=true,dis[i]=-1; dis[0]=0,flag[0]=false,q.push(0); while (!q.empty()) { int u=q.front(); flag[u]=true,q.pop(); for (int v,i=head[u];i;i=nex[i]) { v=go[i]; if (dis[v]<dis[u]+len[i]) { dis[v]=dis[u]+len[i]; if (flag[v]) q.push(v),flag[v]=false; } } } } int main() { scanf("%d",&T); while (T--) { scanf("%d",&n),top=mx=0; for (int l,r,c,i=1;i<=n;++i) scanf("%d%d%d",&l,&r,&c),++l,++r,add(l-1,r,c),mx=max(mx,r); for (int i=1;i<=mx;++i) add(i,i-1,-1),add(i-1,i,0); spfa(),printf("%d\n\n",dis[mx]); for (int i=0;i<=mx;++i) head[i]=0; } return 0; }

回复

5 条回复,欢迎继续交流。

正在加载回复...