社区讨论
刚学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 条回复,欢迎继续交流。
正在加载回复...