首页 > 其他分享 >[AHOI2014/JSOI2014]支线剧情

[AHOI2014/JSOI2014]支线剧情

时间:2022-12-14 21:03:09浏览次数:40  
标签:JSOI2014 int AHOI2014 add len 剧情 edge incf dis

链接:https://www.luogu.com.cn/problem/P4044 题目描述:给定一个$DAG$,求若干条条路径,覆盖所有的点,并最小化路径的权值和。 题解:由于图是一个$DAG$,所以原问题可以转化为,求若干条路径,覆盖所有的边,并最小化路径的权值和。 仔细想想可以发现,其实就是求一个路径覆盖,每一条边被覆盖至少一次。这个问题可以用上下界有汇源最小费用可行流解决。 具体的,我们将每一条边设为流量上限为$inf$,下限为$1$就行了,由于图没有汇点,要将所有不为$1$的点向附加汇点$t$连边。 ``` #include #include #define inf 1e9 using namespace std; struct node { int v,nxt,data,cost; }; node edge[1000001]; bool used[100001]; int s,t,t0,ans,n,x,y,d[100001],incf[100001],prv[100001],head[100001],dis[100001],len; void add(int x,int y,int z,int w) { edge[++len].v=y; edge[len].data=z; edge[len].cost=w; edge[len].nxt=head[x]; head[x]=len; return; } bool spfa() { int top; queueq; q.push(s); incf[s]=1e9; for (int i=s+1;i<=t;++i) { dis[i]=1e9; used[i]=0; } while (!q.empty()) { top=q.front(); q.pop(); used[top]=0; for (int i=head[top];i>0;i=edge[i].nxt) if (edge[i].data&&dis[edge[i].v]>dis[top]+edge[i].cost) { dis[edge[i].v]=dis[top]+edge[i].cost; prv[edge[i].v]=i; incf[edge[i].v]=min(incf[top],edge[i].data); if (!used[edge[i].v]) { used[edge[i].v]=1; q.push(edge[i].v); } } } if (dis[t]==1e9) return 0; return 1; } int EK() { int x=t; while (x!=s) { edge[prv[x]].data-=incf[t]; edge[prv[x]^1].data+=incf[t]; x=edge[prv[x]^1].v; } return dis[t]*incf[t]; } int main() { int x,y,z; len=1; cin>>n; s=0; t0=n+1; t=n+2; for (int i=1;i<=n;++i) { cin>>x; while (x--) { cin>>y>>z; ans+=z; add(i,y,inf-1,z); add(y,i,0,-z); d[i]--; d[y]++; } } for (int i=2;i<=n;++i) { add(i,t0,inf,0); add(t0,i,0,0); } for (int i=1;i<=n;++i) { if (d[i]>0) { add(s,i,d[i],0); add(i,s,0,0); } else { add(i,t,-d[i],0); add(t,i,0,0); } } add(t0,1,inf,0); add(1,t0,0,0); while (spfa()) ans+=EK(); cout<

标签:JSOI2014,int,AHOI2014,add,len,剧情,edge,incf,dis
From: https://www.cnblogs.com/zhouhuanyi/p/16983516.html

相关文章

  • [AHOI2014/JSOI2014]奇怪的计算器
    链接:https://www.luogu.com.cn/problem/P4041题目描述:给定一个数列$a$,与常数$L$,$R$,实现下列四个操作:1.将所有数加$d$。2.将所有数减$d$。3.将所有数乘$d$。4.......
  • [AHOI2014/JSOI2014]拼图
    链接:https://www.luogu.com.cn/problem/P4039题目描述:有一些长为$n$,宽为$w_{i}$的黑白色矩形,要将它们拼成一个$n\timesm$的大矩形,求大矩形中最大的全白子矩形的面积的......
  • [JSOI2014]支线剧情2
    链接:https://vjudge.net/problem/HYSBZ-5031题目描述:给定一个树形图,规定一号点为根节点。到达一个点时可以进行下列操作:$1$.沿着一条有向边走到下一个节点。$2$.回到......
  • [AHOI2014/JSOI2014]骑士游戏
    链接:https://www.luogu.com.cn/problem/P4042题目描述:对于一个怪物$i$,可以花费$c_{i}$的代价将其变为一个怪物集合,或花费$c2_{i}$的代价消灭他。求消灭怪物$1$的最小代......
  • 视效剧情口碑双爆棚!Netflix 现象级剧集《怪奇物语》第四季神级视效专访大揭秘!
    刷新Netflix收视记录的超火剧集《怪奇物语》(StrangerThings)第四季视效剧情口碑双爆棚,无疑是2022年最值得一看的现象级剧集之一。第四季共九集,分上下两部,分别在今年5月......
  • 剧情向的冒险类游戏推荐
    意外事件(UnforeseenIncidents)是一款剧情向的冒险类游戏,游戏的环境是一个手绘式的世界,玩家们将在游戏中扮演一个小镇的勤杂工,一次偶遇让他陷入了一个恶魔般的阴谋中,他必......