首页 > 其他分享 >金牌导航-网络流模型及应用

金牌导航-网络流模型及应用

时间:2023-12-12 12:45:20浏览次数:29  
标签:tmp ch return int 模型 flow dep 导航 金牌

网络流模型及应用

例题A题解

直接对于每个限制连边,然后跑最小割,最小割等于最大流。

例题A代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
inline int read(){
    int x = 0, f =1;char ch = getchar();
    while(ch < '0' || ch > '9'){if(ch == '-') f = -1;ch = getchar();}
    while(ch >= '0' && ch <= '9'){x = (x << 1) + (x << 3) + (ch ^ 48);ch = getchar();}
    return x * f;
}
const int maxn = 5e4 + 10,maxm = 5e5 + 10, INF = 0x3f3f3f3f;
int n, m;

int head[maxn], tot = 1;
struct edge{
    int to, nexte, cap, flow;
    edge(int to = 0,int ne = 0,int ca = 0,int fl = 0):to(to),nexte(ne),cap(ca),flow(fl){}
}e[maxm * 2];
void add(int u,int v,int cap){e[++tot] = edge(v,head[u],cap);head[u] = tot;}
void addd(int u,int v,int cap){add(u,v,cap);add(v, u, 0);}

int dep[maxn], cur[maxn];
int dfs(int u,int flow,int T){
    // printf("%lld\n",u);
    if(u == T)return flow;
    int rest = 0, tmp = 0;
    for(int i = cur[u];i && flow;i = e[i].nexte){
        cur[u] = i; int v = e[i].to;
        if(e[i].cap - e[i].flow > 0 && (dep[v] == dep[u] + 1)){
            tmp = dfs(v,min(flow,e[i].cap - e[i].flow),T);
            if(tmp == 0)dep[v] = INF;
            e[i].flow += tmp; e[i ^ 1].flow -= tmp;
            flow -= tmp;rest += tmp;
            if(!flow)return rest;
        }
    }
    return rest;
}
bool bfs(int S,int T){
    queue<int> que;
    for(int i = 1;i <= T;i++){dep[i] = INF;cur[i] = 0;}
    que.push(S);dep[S] = 1; cur[S] = head[S];
    while(!que.empty()){
        int u = que.front(); que.pop();
        for(int i = head[u];i;i = e[i].nexte){
            int v = e[i].to;
            if(e[i].cap - e[i].flow > 0 && dep[v] == INF){
                que.push(v);
                cur[v] = head[v];
                dep[v] = dep[u] + 1;
                if(v == T)return 1;
            }
        }
    }
    return 0;
}
int Dinic(int S,int T){
    int mxflow = 0;
    while(bfs(S,T)){mxflow += dfs(S,INF,T);}
    return mxflow;
}


signed main(){
    n = read(); m =read();int S = n + 1, T = n + 2;
    for(int i = 1;i <= n;i++){
        addd(S,i,read());addd(i,T,read());
    }
    for(int i = 1;i <= m;i++){
        int x = read(), y = read(), z = read();
        addd(x,y,z);addd(y,x,z);
    }
    printf("%lld\n",Dinic(S,T));
    return 0;
}

标签:tmp,ch,return,int,模型,flow,dep,导航,金牌
From: https://www.cnblogs.com/Call-me-Eric/p/17896520.html

相关文章

  • Fine-tuning: 一种针对大模型的优化策略
    在自然语言处理(NLP)领域,预训练模型已成为一种强大的工具,但其效果往往受到诸多因素的限制,包括模型大小、任务类型以及数据集等。针对这些问题,各种优化方法如微调(fine-tuning)、prompting等被相继提出。本文将深度解析P-tuningv2为何对大模型有效,主要体现在以下几个方面:一、连续提示的......
  • 如何实现抽屉式导航(ArkUI)
    场景介绍由于用户所需功能逐渐增多,传统的标签式导航在个别场景已经无法满足用户需求。当导航栏的空间放不下过多页签时,可以采用抽屉式导航,本例将为大家介绍如何通过SideBarContainer组件实现抽屉式导航。效果呈现本例最终实现效果如下:运行环境IDE:DevEcoStudio3.1Beta1SD......
  • 界面控件DevExpress WPF导航组件,助力升级应用程序用户体验!(下)
    DevExpressWPF的SideNavigation(侧边导航)、TreeView、导航面板组件能帮助开发者在WPF项目中添加Windows样式的资源管理器栏或OutlookNavBar(导航栏),DevExpressWPFNavBar和Accordion控件包含了许多开发人员友好的功能,专门设计用于帮助用户构建极佳的应用功能。在上文中(点击这里回......
  • 倾斜摄影三维模型根节点合并的模型层级和块大小划分规则探讨
    倾斜摄影三维模型根节点合并的模型层级和块大小划分规则探讨  在倾斜摄影三维模型的根节点合并过程中,模型层级和块大小的划分规则是非常重要的,它们直接影响着数据处理和渲染的效率。在本文中,我们将探讨倾斜摄影三维模型的根节点合并的模型层级和块大小划分规则。1、模型层......
  • Maya/ZBrush教程 次世代游戏模型《深掘奇遇》全流程制作案例分享
    《深掘奇遇》次世代游戏模型全流程制作案例教程”是一份详尽的指南,旨在揭示游戏开发领域中最先进的技术和实践。该教程覆盖了从概念设计到最终渲染的整个制作过程,深入探讨了模型建模、纹理映射、动画设计以及高级渲染技术等方面。通过这份教程,读者将获得深入了解游戏开发流程的机......
  • 微信小程序自定义顶部导航栏并适配不同机型
    前言在小程序中,顶部导航栏是一个非常重要的组件,它不仅可以方便用户进行页面切换,还可以提高用户体验。默认情况下,小程序的顶部导航栏是由系统自动生成的,我们只能修改一些基本的样式,如背景色、文字颜色等。但是,如果想要实现更加复杂的样式,如自定义图标、自定义背景等,而且在不同的手......
  • 大语言模型的崛起:亚马逊云科技如何借助自家大语言模型实现巅峰?
    近年来,大语言模型的崭露头角引起了广泛的关注,成为科技领域的一项重要突破。而在这个领域的巅峰之上,亚马逊云科技一直致力于推动人工智能的发展。那么,作为一家全球科技巨头,亚马逊为何会如此注重大语言模型的研发与应用呢?本文将从亚马逊的公司定位、历史地位等多个角度出发,探讨大语言......
  • 机器学习-线性回归-模型解析解-02
    1.解析解解析解的公式importnumpyasnpimportmatplotlib.pyplotasplt#有监督机器学习#XyX=2*np.random.rand(100,1)#np.random.rand#100行1列的[0,1)之间均匀分布*2之后则变成[0,2)之间均匀分布e=np.random.randn(100,1)#误差均值0......
  • 模型理论知识
    人工智能:机器学习、对环境的感知、实现动作机器学习学习:2.机器学习三要素:数据、算法、模型机器学习研究的是从数据中通过选取合适的算法,自动的归纳逻辑或规则,并根据这个归纳的结果(模型)与新数据来进行预测。3.深度学习是在机器学习的基础上实现的,得益于机器性能的提升。神经......
  • Cesium 加载倾斜摄影模型记录(osgb切片,shp拔高切片、模型加载、鼠标移入选中、点选查
    一、shp模型拔高切片shp如果数据量过大,做分类处理,加载会异常慢,所以需要先对其进行分割之后再进行切片(用qgis即可)切片规则设置1、记得勾选构造底面 2、如果你的shp数据中有高度字段的话,可以选择高度字段,如果没有的话,设置固定高度的高度比你的模型稍微高一点,可以保证包着整个模型,......