2015多校联合训练第一场Tricks Device(hdu5294)

2024-09-07 18:32

本文主要是介绍2015多校联合训练第一场Tricks Device(hdu5294),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题意:给一个无向图,给起点s,终点t,求最少拆掉几条边使得s到不了t,最多拆几条边使得s能到t
思路:
先跑一边最短路,记录最短路中最短的边数,总边数-最短边数就是第二个答案
第一个答案就是在最短路里面求最小割,也就是求最大流,然后根据最短路在建个新图,权为1,跑一边网络流

模板题,以后就用这套模板了

#include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>
#include <vector>using namespace std;
const int INF = 0x7f7f7f;
const int MAXM = 12e4+5;
const int MAXN = 2e3+5;int n, m;
struct Edge {int to, w, next;
}edge[MAXM];
int tot, head[MAXN];
void addedge(int u, int v, int w)
{edge[tot].to = v;edge[tot].w = w;edge[tot].next = head[u];head[u] = tot++;edge[tot].to = u;edge[tot].w = w;edge[tot].next = head[v];head[v] = tot++;}int dis[MAXN], vis[MAXN];
int minb[MAXN];
int spfa(int s)
{memset(dis, 0x3f, sizeof(dis));memset(vis, 0, sizeof(vis));memset(minb, 0x3f, sizeof(minb));queue<int> q;dis[s] = 0;minb[s] = 0;vis[s] = 1;q.push(s);while(!q.empty()) {int u = q.front(); q.pop();vis[u] = 0;for(int i = head[u]; ~i; i = edge[i].next) {int v = edge[i].to, w = edge[i].w;if(dis[v] == dis[u] + w) {minb[v] = min(minb[v], minb[u] + 1);if(!vis[v]) {vis[v] = 1;q.push(v);}}if(dis[v] > dis[u] + w) {dis[v] = dis[u] + w;minb[v] = minb[u] + 1;if(!vis[v]) {vis[v] = 1;q.push(v);}}}}
}
struct Eg {int u, cap, rev;Eg(int uu, int cc, int rr) {u = uu; cap = cc; rev = rr;}
};
vector<Eg> G[MAXN];
bool used[MAXN];
void add(int u, int v, int cap)
{G[u].push_back(Eg(v, cap, G[v].size()));G[v].push_back(Eg(u, 0, G[u].size()-1));
}
void build()
{for(int i = 1; i <= n; ++i) {for(int j = head[i]; ~j; j = edge[j].next) {int v = edge[j].to, w = edge[j].w;if(dis[v] - dis[i] == w) {add(i, v, 1);}}}
}
int dfs(int v, int t, int f)
{if(v == t) return f;used[v] = true;for(int i = 0; i < G[v].size(); ++i) {Eg &e = G[v][i];if(!used[e.u] && e.cap > 0) {int d = dfs(e.u, t, min(f, e.cap));if(d > 0) {e.cap -= d;G[e.u][e.rev].cap += d;return d;}}}return 0;
}
int max_flow(int s, int t)
{int flow = 0;while(1) {memset(used, 0, sizeof(used));int f = dfs(s, t, INF);if(f == 0) return flow;flow += f;}
}
void init()
{tot = 0;memset(head, -1, sizeof(head));for(int i = 0; i <= n; ++i) {G[i].clear();}}
int main()
{//freopen("in", "r", stdin);while(~scanf("%d %d", &n, &m)) {init();for(int i = 0; i < m; ++i) {int u, v, w;scanf("%d %d %d", &u, &v, &w);addedge(u, v, w);}spfa(1);build();int ans = max_flow(1, n);printf("%d %d\n", ans, m-minb[n]);}return 0;
}

这篇关于2015多校联合训练第一场Tricks Device(hdu5294)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1145826

相关文章

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

Java 后端接口入参 - 联合前端VUE 使用AES完成入参出参加密解密

加密效果: 解密后的数据就是正常数据: 后端:使用的是spring-cloud框架,在gateway模块进行操作 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>30.0-jre</version></dependency> 编写一个AES加密

Spark MLlib模型训练—聚类算法 PIC(Power Iteration Clustering)

Spark MLlib模型训练—聚类算法 PIC(Power Iteration Clustering) Power Iteration Clustering (PIC) 是一种基于图的聚类算法,用于在大规模数据集上进行高效的社区检测。PIC 算法的核心思想是通过迭代图的幂运算来发现数据中的潜在簇。该算法适用于处理大规模图数据,特别是在社交网络分析、推荐系统和生物信息学等领域具有广泛应用。Spa

SigLIP——采用sigmoid损失的图文预训练方式

SigLIP——采用sigmoid损失的图文预训练方式 FesianXu 20240825 at Wechat Search Team 前言 CLIP中的infoNCE损失是一种对比性损失,在SigLIP这个工作中,作者提出采用非对比性的sigmoid损失,能够更高效地进行图文预训练,本文进行介绍。如有谬误请见谅并联系指出,本文遵守CC 4.0 BY-SA版权协议,转载请联系作者并注

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录 在深度学习项目中,目标检测是一项重要的任务。本文将详细介绍如何使用Detectron2进行目标检测模型的复现训练,涵盖训练数据准备、训练命令、训练日志分析、训练指标以及训练输出目录的各个文件及其作用。特别地,我们将演示在训练过程中出现中断后,如何使用 resume 功能继续训练,并将我们复现的模型与Model Zoo中的

C和指针:结构体(struct)和联合(union)

结构体和联合 结构体 结构体包含一些数据成员,每个成员可能具有不同的类型。 数组的元素长度相同,可以通过下标访问(转换为指针)。但是结构体的成员可能长度不同,所以不能用下标来访问它们。成员有自己的名字,可以通过名字访问成员。 结构声明 在声明结构时,必须列出它包含的所有成员。 struct tag {member-list} variable-list ; 定义一个结构体变量x(包含

多云架构下大模型训练的存储稳定性探索

一、多云架构与大模型训练的融合 (一)多云架构的优势与挑战 多云架构为大模型训练带来了诸多优势。首先,资源灵活性显著提高,不同的云平台可以提供不同类型的计算资源和存储服务,满足大模型训练在不同阶段的需求。例如,某些云平台可能在 GPU 计算资源上具有优势,而另一些则在存储成本或性能上表现出色,企业可以根据实际情况进行选择和组合。其次,扩展性得以增强,当大模型的规模不断扩大时,单一云平

Usb Audio Device Descriptor(10) Hid Device

对于 Standard Interface Descriptor, 当 bInterfaceClass=0x03时,即为HID设备。Standard Interface Descriptor如下 struct usb_standard_interface_descriptor{U8 bLength; /*Size of this descriptor in bytes*/U8 bDescrip

src/pyaudio/device_api.c:9:10: fatal error: portaudio.h: 没有那个文件或目录

(venv) shgbitai@shgbitai-C9X299-PGF:~/pythonworkspace/ai-accompany$ pip install pyaudio sounddeviceCollecting pyaudioDownloading PyAudio-0.2.14.tar.gz (47 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

神经网络训练不起来怎么办(零)| General Guidance

摘要:模型性能不理想时,如何判断 Model Bias, Optimization, Overfitting 等问题,并以此着手优化模型。在这个分析过程中,我们可以对Function Set,模型弹性有直观的理解。关键词:模型性能,Model Bias, Optimization, Overfitting。 零,领域背景 如果我们的模型表现较差,那么我们往往需要根据 Training l