题解:P10934 西瓜种植
一本通提高篇的题居然还能写题解。
六倍经验:P1250,P1645,P1986,P10934,SP116,UVA1723。
一觉醒来,差分约束都成黄题了?
差分约束是一种特殊的
而我们看本题,我们先对我们选完的数列进行一个前缀和
然而这样是错的,由于前缀和的性质,
为了防止下标出现负数,我们把下标统一
在一次 SPFA 的松弛操作后,
代码,半年前的牢代码了,码风有点差,还请见谅:
#include<bits/stdc++.h>
#define fi first
#define se second
using namespace std;
int n,m,u,v,w,dis[50001],maxn;
vector<pair<int,int> >G[50001];
queue<int>q;
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>u>>v>>w;
G[u].push_back({w,v+1});
}
for(int i=0;i<=n;i++){
G[i+1].push_back({-1,i});
G[i].push_back({0,i+1});
}
memset(dis,-1,sizeof dis);
dis[0]=0;
q.push(0);
while(q.size()){
int u=q.front();
q.pop();
for(int i=0;i<G[u].size();i++){
if(dis[G[u][i].se]<dis[u]+G[u][i].fi){
dis[G[u][i].se]=dis[u]+G[u][i].fi;
q.push(G[u][i].se);
}
}
}
cout<<dis[n+1];
}