HDU-3416 Marriage Match IV(最短路+最大流)

汽车UDS诊断之诊断会话控制服务(0x10)深度剖析 DiagnosticSessionControl就是诊断会话控制。 请求消息定义 A_Data类型 参数名称 Cvt 字节值 助记符 #1 诊断会话控制请求SID M 0x10 DSC #2 子功能=[诊断会话类型] M 0x00-0xFF LEV_DS_ ... 阅读详情

HDU-3416

n个点m条带权有向边,求起点到终点的最短路径的条数

先dij求出起点单源最短路,网络流中根据距离关系确定这条边是否可以通过流 即 dist[j]==dist[i]+wt[i,j] ,没选相当于删边。
当然也可以求两次单源最短路,给起点终点各求一次,根据 dist1[i]+dist2[j]+wt[i,j]==dist1[t] , dist1,dist2 分别为起点终点单源最短路,这个好像快一点。

/*
    开始是通过Dij删边, tle 3
    提示了最大流后才想到
    先dij求出起点单源最短路,网络流中根据距离关系确定这条边是否可以通过流 即dist[j]==dist[i]+wt[i,j],没选相当于删边
    当然也可以求两次单源最短路,给起点终点各求一次,根据dist1[i]+dist2[j]+wt[i,j]==dist1[t] ,dist1,dist2分别为起点终点单源最短路,这个好像快一点
    一开始把增广路的边权设为INF,没有考虑增广路的返流 wa3
*/
#include <queue>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <vector>
using namespace std;
typedef pair<int,int> PII;
const int MAXN=1e3+7;
const int MAXM=1e5+7;
const int INF=1e9+7;
int tot,head[MAXN],pre[MAXN],mic[MAXN],di[MAXN],n,m,iter[MAXN],num[MAXN];
int dist[MAXN];
struct edge
{
    int ne,from,to,cap,wt;
}e[MAXM<<1];
void init()
{
    tot=0;
    memset(head,-1,sizeof(head));
}
void addedge(int a,int b,int c)
{
    e[tot]=(edge){head[a],a,b,1,c};
    head[a]=tot++;
    e[tot]=(edge){head[b],b,a,0,-c};
    head[b]=tot++;
}
int vis[MAXN];
priority_queue<PII> pq;
int dijkstra(int s,int t)//s为源点,t为终点,路径权值非负
{
    for(int i=1;i<=n;i++)
        dist[i]=INF,vis[i]=0;
    dist[s]=0;
    pq.push(PII(0,s));
    while(!pq.empty())
    {
        int milb=pq.top().second;
        pq.pop();
        if(vis[milb])
            continue;
        vis[milb]=1;
        for(int j=head[milb];~j;j=e[j].ne)
        {
            int v=e[j].to;
            if(e[j].cap&&!vis[v]&&dist[v]>dist[milb]+e[j].wt)
            {
                dist[v]=dist[milb]+e[j].wt;
                pq.push(PII(-dist[v],v));
            }
        }
    }
    return dist[t];
}
int isap(int s,int t,int totn)//点标号范围为1~totn 源点s 汇点t
{
    queue<int> q;
    int p,adv,res=0;
    memset(di,-1,sizeof(di));
    di[t]=0;
    q.push(t);
    while(!q.empty())
    {
        p=q.front();
        q.pop();
        for(int i=head[p];~i;i=e[i].ne)
            if(e[i^1].cap>0&&!~di[e[i].to])
            {
                di[e[i].to]=di[p]+1;
                q.push(e[i].to);
            }
    }
    for(int i=1;i<=totn;i++)
    {
        iter[i]=head[i];
        if(~di[i])
            num[di[i]]++;
    }
    int x=s;
    mic[s]=INF;
    pre[s]=-1;
    while(di[s]<totn)
    {
        if(x==t)
        {
            int cur=pre[t],ff=mic[t];
            while(~cur)
            {
                e[cur].cap-=ff;
                e[cur^1].cap+=ff;
                cur=pre[e[cur].from];
            }
            res+=ff;
            x=s;
        }
        adv=0;
        for(int& i=iter[x];~i;i=e[i].ne)
            if(dist[e[i].to]==dist[x]+e[i].wt&&di[x]==di[e[i].to]+1&&e[i].cap>0)
            {
                int v=e[i].to;
                adv=1;
                pre[v]=i;
                mic[v]=min(mic[x],e[i].cap);
                x=v;
                break;
            }
        if(!adv)
        {
            int m=totn-1;
            for(int i=head[x];~i;i=e[i].ne)
                if(dist[e[i].to]==dist[x]+e[i].wt&&e[i].cap>0)
                    m=min(m,di[e[i].to]);
            if(--num[di[x]]==0)//gap优化
                break;
            num[di[x]=m+1]++;
            iter[x]=head[x];
            if(x!=s)
                x=e[pre[x]].from;
        }
    }
    return res;
}
int main()
{
    int ta,tb,tc,T;
    scanf("%d",&T);
    for(int kase=1;kase<=T;kase++)
    {
        init();
        scanf("%d%d",&n,&m);
        for(int i=0;i<m;i++)
        {
            scanf("%d%d%d",&ta,&tb,&tc);
            addedge(ta,tb,tc);
        }
        scanf("%d%d",&ta,&tb);
        int ans=0;
        if(dijkstra(ta,tb)==INF)
            printf("0\n");
        else
            printf("%d\n",isap(ta,tb,n));
    }
    return 0;
}

国家基本比例尺分幅土地利用现状图制作 本次主要解决的问题是如何构建脚本快速生成所涉及区域标准国家基本比例尺分幅,然后制作土地利用现状图模板,套用模板生成标准分幅土地利用现状图。 阅读详情

相关推荐

EBS开发_创建AP付款

--以下代码于20181002在Tony环境测试通过 /* BEGIN   --mo_global.init('SQLAP');   apps.fnd_global.apps_initialize(user_id =&gt; 1110, resp_id =&gt; 50597, resp_appl_id =&gt; 20003);   --mo_global.set_policy_context(...

蜗牛先生快跑的博客 4767

HDU-3416 Marriage Match IV (最短路+最大流)

Marriage Match IV 题目链接:Marriage Match IV HDU - 3416 题意 给你一个图,问有多少条不同的最短路,有重边并且可当作分开的两边,其多条最短路之间不能有任何相同的边 思路 开始时,看到了每条边只能经过一次,我想到了费用流,可惜这里的数据不小,N为1000,M为1e5,按照费用流平均复杂度,F * E * log(v) 毫无疑问会T,那么...

帅帅的博客 416

JOOQ用法和实例

jOOQ,是一个ORM框架,利用其生成的Java代码和流畅的API,可以快速构建有类型约束的安全的SQL语句。jOOQ的核心优势是可以将数据库表结构映射为Java类,包含表的基本描述和所有表字段。通过jOOQ提供的API,配合生成的Java代码,可以很方便的进行数据库操作生成的Java代码字段类型是根据数据库映射成的Java类型,在进行设置和查询操作时,因为是Java代码,都会有强类型校验,所以对于数据的输入,是天然安全的,极大的减少了SQL注入的风险。

m0_67403076的博客 1377

hdu 3416 Marriage Match IV (最短路+最大流)

hdu 3416 Marriage Match IVDescription Do not sincere non-interference。 Like that show, now starvae also take part in a show, but it take place between city A and B. Starvae is in city A and girls are

总有那么一群人喜欢盯着我的博客看,估计这是他们见过最长的博客名,我必须得告诉他们博客名最长可以写多长 1241

Unity URP半透明物体渲染避坑指南:双面渲染与深度写入的实战技巧

本文深入探讨了Unity URP中半透明物体自交叠渲染问题的核心根源与解决方案。针对模型自身交叠导致的排序错误,文章提供了双面渲染与深度写入两种实战技巧,详细分析了其实现原理、性能开销及适用场景,帮助开发者根据项目需求选择最优方案,有效提升玻璃、水体等材质的视觉表现。

sunny的博客 545

STM32F4三重ADC+DMA双缓冲实战:用CubeMX搞定同步采样,告别数据覆盖烦恼

本文详细介绍了STM32F4三重ADC与DMA双缓冲技术的实战应用,通过CubeMX配置实现同步采样,解决数据覆盖问题。内容涵盖硬件架构解析、CubeMX工程配置、双缓冲实现技巧及调试优化方法,适用于电机控制、电力监测等需要高精度多通道信号采集的场景。

weixin_30627341的博客 357

[最短路最大流] O - Marriage Match IV HDU - 3416

Marriage Match IV Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5253    Accepted Submission(s): 1559   Problem Description Do not sincere ...

博客 275

告别玄学调参:手把手教你用20元件模型搞定GaN HEMT高频仿真(附S参数提取避坑指南)

本文详细介绍了如何使用20元件模型优化GaN HEMT高频仿真,解决传统16元件模型在10GHz以上频段的误差问题。通过S参数提取避坑指南和实战案例,帮助工程师精准建模分布式电极效应和寄生反馈路径,提升射频电路设计效率。

weixin_42523693的博客 441

HDU - 3416 - Marriage Match IV(网络流+最短路Dij)

题目:HDU-3416 题意:有t组数据,n个点,m条边的图。从s走到t点,只走最短距离,每条路只能走一次。问走最短路总共有多少种方案 题解:先用最短路算法求出从起点到各点的距离dist,然后根据dist的值建立新的图,边权为1,套用Dinic模板求起点到终点的最大流即可。但是这里最短路算法最好用SPFA遍历所有边才好,如果用Dij+优先队列需要把vis[i]的访问标记删掉,因为这是求从s到x...

Rotepad的博客 256

Dify基础:Dify平台的本地化部署(含windows部署中,常见问题及解决方案)

第一种比较简单,只需要在浏览器中,打入https://dify.ai/就可以。这个指令虽然看起来简单,但实际上涉及到对docker的使用。这个项目既然有github地址,那它一般就是开源的。我们点开这个github地址,便能看到dify的私有化部署方式。我们可以看到,还是上面那个图,有个按钮,是指向该项目的Github地址的。第二步:按照dify的github给出的指令,对dify进行安装。第一步:我们把dify下载到自己的电脑(或者服务器)上。这里,我们只考虑第二种方式,也就是私有化部署。

xiezhipu的博客 1万+

android13删除录屏权限提示框-去除录屏提示

在Android 13中,当应用请求屏幕录制权限时,系统会弹出一个权限提示框,要求用户明确授权。这个提示框是为了增强用户隐私保护,让用户知道有应用尝试录制屏幕。但是,在某些情况下,开发者可能希望避免显示这个提示框,以提供更流畅的用户体验。本文将介绍如何在Android 13中删除录屏权限提示框。

zhutoubenben的专栏 1880

Marriage Match IV (hdu 3416 网络流+spfa最短路)

题意:有n个城市m条边,告诉起点和终点,问从起点到终点不走重复边的最短路有多少条。 思路:求最短路的条数可以用最大流,建图时要去掉不是最短路上的边,判断某条边是不是最短路上的边:如果满足dist1[u] + dist2[v] + E1[i].len = dist1[End]则可以说明该边是最短路上的边,其中 dist1[] 为各点到起点的最短距离,dist2[] 为各点到终点的最短距离。

@you! 1257

BPC坏点矫正

whatis the Bad Pixel? 坏点为死点,也就是基本不随照度变化呈现光电线性转换的关系。表现为暗态常亮,亮态常暗。 坏点分类:静态坏点:亮坏点,暗坏点。 动态坏点:在一定像素范围内,该点表现正常,而超过这一范围,该点表现的比周围像素要亮。与sensor ...

camerall 1万+

[HDU 3416]Marriage Match IV[最大流][最短路]

题目链接:[HDU 3416]Marriage Match IV[最大流][最短路] 题意分析: 求从A城市到B城市的最短路径有多少条,边不能重复。 解题思路: 跑一遍最短路,把A城市到各个城市的最短路确定了,然后根据dis[v] == dis[u] + edge[j].cost来确定哪些路是在最短路上的,在其上的边,容量为1,不在的边,容量为0,然后跑一遍最大流即可。注意反向边容量先设为

闲停 590

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

HDU 3416 Marriage Match IV(最短路+网络流之最大流)

题目地址:HDU 3416 这道题WA了一天半。。。最终才发现是我一直习惯性的将isap的表示上界的变量直接表示成sink+1了。。。但是在这道题里汇点sink不一定是最后一个点。。。sad。。。 这题可以有两种方法做,一种是求两次最短路,d1表示所有点到源点的最短距离,再求一次用d2表示所有点到汇点的最短距离。然后根据公式d1[u]+d2[v]+w==d1[sink]判断是否属于最短路中的一

scf0920 1249

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

HDU3416 Marriage Match IV 最短路 + 最大流

一、内容 Do not sincere non-interference。 Like that show, now starvae also take part in a show, but it take place between city A and B. Starvae is in city A and girls are in city B. Every time starvae ca...

Tizzi的博客 833

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Marriage Match IV 【HDU - 3416】【最短路+最大流】

题目链接 题意:问的就是走最短距离下,能有最多能有几种从起点到达终点的方案数,点可以重复使用,但是边只能使用一次。 思路:这道题最开始的思路就是不断的跑最大流最小费用,每次流的是单位流,所以,最后得到的只要跟第一次跑得到的最小费用相等就可以了。但是会T诶…… 所以,我们要换种思路去想,看到这里有个条件就是每个点可以重复,但是每条边只能最多走过一次,所以我就想到了,在这里建一个最大...

既然弱小,就只顾变强就是了 493

最短路 & 最大流 -- Marriage Match IV HDU - 3416

Marriage Match IV HDU - 3416 题目大意:让你找出有多少条没有交集的最短路。 思路:先用spfa找出可行的边,然后给每条可行的边加上容量1.即表示这条边只能走一次。 接下来跑一遍ISAP就可以得出答案。 关于判断边可行的方法如下。 先从头跑一遍spfa,得到起点到其他所有点的最短路径dis1 再从尾跑一遍spfa,得到终点到其他所有点的最短路径dis2 对于边u-v w...

dajiangyou123456的博客 211

HDU 3416 Marriage Match IV(最短路+最大流)

Marriage Match IVTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5008    Accepted Submission(s): 1498Problem DescriptionDo not sincere non-inter...

albertluf的博客 342

hdu3416 Marriage Match IV(最短路+最大流)

Marriage Match IV Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4743    Accepted Submission(s): 1420 Problem Description Do not s

gyr 388

HDU 3416 Marriage Match IV (最短路 + 最大流)

Problem Description Do not sincere non-interference。 Like that show, now starvae also take part in a show, but it take place between city A and B. Starvae is in city A and girls are in city B. Every ...

OlaMins 262

hdu 3416 Marriage Match IV (最大流判断最短路数量)

题意: 给个图,还有s点和t点,问从s到t的最短路有几条 分析: 学到了新操作,跑完最短路算法之后可以用dist数组可以判断某条边是否在最短路路径上 我看到一个方法是跑两次最短路,一次s到t,一次t到s 左端点到s的最短路长度加上右端点到t的最短路长度加上当前边权 如果这个值等于s到t的最短路长度,那么这条边就在最短路的路径上 ps:开始这么写的,代码一直有问题吗,所以没有实践它的正确性 还有一种...

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 225

HDU 3416 Marriage Match IV(最短路+最大流)

题意:给出n个点m条边的有向图,每条边有一个权值,问最多有多少条没有重边的最短路。 思路:首先要求出所有在最短路上的边,然后建图跑一边最大流。 现在问题变成了求所有在最短路上的边,这个可以从原点和终点进行两次spfa, 所有满足dist[0][u] + dist[1][v] + edge[u][v] == dist[0][end] 的边就是所求边。 #include #include #i

GODSPEED 657

HDU 3416 Marriage Match IV(最大流+最短路)

Marriage Match IV Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5225    Accepted Submission(s): 1549   Problem Description Do not sincere ...

shyoldman的博客 222

HDU 3416 Marriage Match IV (求最短路的条数,最大流)

Marriage Match IV 题目链接: http://acm.hust.edu.cn/vjudge/contest/122685#problem/Q Description Do not sincere non-interference。 Like that show, now starvae also take part in a show, but it take pla...

dituonian8372的博客 148

HDU-3416 Marriage Match IV(最短路,最大流)

题目链接:HDU-3416 Marriage Match IV 题意 给出一个有向图$G$,起点$s$和终点$t$,问$s$到$t$有多少条完全不同的最短路径(即长度相同,没有公共边)。 思路 求最短路的条数可以用最大流,不过要去掉原图中不可能属于最短路的边。 先用dijkstra求出各个点$u$与起点$s$的最短距离$dis[u]$,若一条边$(u,v,w)$满足$dis...

weixin_30699465的博客 134
上一篇: SPOJ-VECTAR1 Matrices with XOR property(二维BIT/暴力)
下一篇: HDU-4725 The Shortest Path in Nya Graph(最短路)
lanvent
博客等级 码龄11年 1粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值