永发信息网

求帮忙看一下这段代码为什么错(原题caioj 1117)

答案:2  悬赏:10  手机版
解决时间 2021-04-04 23:56
  • 提问者网友:書生途
  • 2021-04-04 20:26
#include
#include
#include
#include
using namespace std;

int nump,nume,numr,l=0,r=0;
int dis[201],mapp[201][201],start[40001],endd[40001],val[40001];
inline int minn(int a,int b)
{
return a}
bool bfs()
{
int t;
memset(dis,-1,sizeof(dis));
dis[1]=0;
queue q;
q.push(1);
while(!q.empty())
{
t=q.front();q.pop();
for(int a=0;a<=nump;a++)
{
if(mapp[t][a]>0 && dis[a]<0)
{
dis[a]=dis[t]+1;
q.push(a);
}
}
}
if(dis[nump]>0)
{
return true;
}
else
{
return false;
}
}
int dfs(int from,int restfl)
{
if(from==nump)
{
return restfl;
}
int t;
for(int a=0;a<=nump;a++)
{
if(mapp[from][a]>0 && dis[a]==dis[from]+1 && (t=dfs(a,minn(mapp[from][a],restfl))))
{
mapp[from][a]-=t;
mapp[a][from]+=t;
return t;
}
}
return 0;
}
inline void ins(int st,int ed,int va)
{
mapp[st][ed]=va;
mapp[ed][st]=va;
}
int check(int length)
{
int ttt=0,d=0;
memset(mapp,0,sizeof(mapp));
for(int a=1;a<=nume;a++)
{
if(val[a]<=length)
{
ins(start[a],endd[a],1);
}
}
while(bfs())
{
while(ttt=dfs(1,0x7fffffff))
{
d+=ttt;
}
}
return d;
}

int main()
{
int mid,ans;
cin>>nump>>nume>>numr;
for(int a=1;a<=nume;a++)
{
scanf("%d%d%d",&start[a],&endd[a],&val[a]);
if(r {
r=val[a];
}
}
while(l {
mid=(l+r)/2;
if(check(mid)>=numr)
{
r=mid-1;
ans=mid;
}
else
{
l=mid+1;
}
}
cout< return 0;
}
最佳答案
  • 五星知识达人网友:怀裏藏嬌
  • 2021-04-04 21:57
你这道题去仔细看看视频吧,你不要当caioj没有视频啊。。。
而且你这道题构图明显不对,为什么要在每次check的时候构图啊。。。
全部回答
  • 1楼网友:想偏头吻你
  • 2021-04-04 23:11
什么意思 再看看别人怎么说的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯