news 2026/9/2 14:32:02

[Wf2016]Branch Assignment题解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[Wf2016]Branch Assignment题解

P6918 [ICPC 2016 WF] Branch Assignment

题目描述

创新消费品公司(ICPC)计划启动一个绝密项目。该项目由sss个子项目组成。将有b≥sb \ge sbs个 ICPC 的分支机构参与此项目,ICPC 希望将每个分支机构分配给一个子项目。换句话说,这些分支机构将形成sss个不相交的组,每个组负责一个子项目。

每个月底,每个分支机构将向其组内的每个其他分支机构发送一条消息(每个分支机构接收不同的消息)。ICPC 有一个特定的通信协议。每个分支机构iii有一个只有该分支机构和 ICPC 总部知道的密钥kik_iki。假设分支机构iii想要向分支机构jjj发送消息。分支机构iii用其密钥kik_iki加密消息。一个可信的信使从该分支机构取走消息并将其交付给 ICPC 总部。总部用密钥kik_iki解密消息,并用密钥kjk_jkj重新加密。然后信使将这个新加密的消息交付给分支机构jjj,分支机构jjj用其自己的密钥kjk_jkj解密。出于安全原因,信使一次只能携带一条消息。

给定一个道路网络以及分支机构和总部在此网络中的位置,你的任务是确定信使在所有可能的分支机构到子项目的分配中,传递所有月底消息所需的最小总距离。

输入格式

输入的第一行包含四个整数nnnbbbsssrrr,其中nnn(2≤n≤5 0002 \le n \le 5\, 0002n5000) 是交叉路口的数量,bbb(1≤b≤n−11 \le b \le n-11bn1) 是分支机构的数量,sss(1≤s≤b1 \le s \le b1sb) 是子项目的数量,rrr(1≤r≤50 0001 \le r \le 50\, 0001r50000) 是道路的数量。交叉路口编号从111nnn。分支机构位于交叉路口111bbb,总部位于交叉路口b+1b + 1b+1。接下来的rrr行中的每一行包含三个整数uuuvvvℓ\ell,表示从交叉路口uuu到不同交叉路口vvv(1≤u,v≤n1 \leq u,v \leq n1u,vn) 的一条单向道路,长度为ℓ\ell(0≤ℓ≤10 0000 \leq \ell \leq 10\, 000010000)。没有有序对(u,v)(u,v)(u,v)会出现多次,并且从任何交叉路口都可以到达每个其他交叉路口。

输出格式

输出信使需要行驶的最小总距离。

输入输出样例 #1

输入 #1

5 4 2 10 5 2 1 2 5 1 3 5 5 4 5 0 1 5 1 2 3 1 3 2 5 2 4 5 2 1 1 3 4 2

输出 #1

13

输入输出样例 #2

输入 #2

5 4 2 10 5 2 1 2 5 1 3 5 5 4 5 10 1 5 1 2 3 1 3 2 5 2 4 5 2 1 1 3 4 2

输出 #2

24

说明/提示

时间限制:2000 毫秒,内存限制:1048576 kB。

国际大学生程序设计竞赛(ACM-ICPC)世界总决赛 2016。

题面翻译由 ChatGPT-4o 提供。

思路

动态规划
决策单调性
杂项
wqs二分

代码见下

#include<bits/stdc++.h>usingnamespacestd;longlongn,b,s,r,a[5005],aa[5005],uu,vv,ee,f[5005],df[100005];structone{longlongu,e;};vector<one>v[5005];vector<one>vx[5005];booloperator<(one a1,one b1){returna1.e>b1.e;}priority_queue<one>q;voidabc(longlongl,longlongr,longlongx,longlongy){if(l>=r+1){return;}if(r-l+1<=5||y-x+1<=5){for(inti=l;i<=r;i++){df[i]=1e18+7;for(intj=x;j<=min(i-1ll,y);j++){df[i]=min(df[i],f[j]+(a[i]-a[j])*(i-j-1));}}return;}longlongmid=(l+r)/2,p;df[mid]=1e18+7;for(inti=x;i<=min(mid,y);i++){if(f[i]+(a[mid]-a[i])*(mid-i-1)<=df[mid]-1){df[mid]=f[i]+(a[mid]-a[i])*(mid-i-1);p=i;}}abc(l,mid-1,x,p);abc(mid+1,r,p,y);return;}intmain(){cin>>n>>b>>s>>r;for(inti=1;i<=r;i++){cin>>uu>>vv>>ee;v[uu].push_back({vv,ee});vx[vv].push_back({uu,ee});}memset(a,62,sizeof(a));q.push({b+1,0});a[b+1]=0;while(q.size()!=0){longlonga1=q.top().u;//cout<<a1<<endl;q.pop();for(inti=0;i<v[a1].size();i++){one tt=v[a1][i];if(a[tt.u]>=a[a1]+tt.e+1){a[tt.u]=a[a1]+tt.e;q.push({tt.u,a[tt.u]});}}}memset(aa,62,sizeof(aa));q.push({b+1,0});aa[b+1]=0;while(q.size()!=0){longlonga1=q.top().u;//cout<<a1<<endl;q.pop();for(inti=0;i<vx[a1].size();i++){one tt=vx[a1][i];if(aa[tt.u]>=aa[a1]+tt.e+1){aa[tt.u]=aa[a1]+tt.e;q.push({tt.u,aa[tt.u]});}}}for(inti=1;i<=b;i++){a[i]+=aa[i];}//cout<<f[b][s]<<endl;sort(a+1,a+b+1);a[0]=0;for(inti=1;i<=b;i++){a[i]=a[i-1]+a[i];//cout<<i<<" "<<a[i]<<endl;}memset(f,62,sizeof(f));f[0]=0;for(intj=1;j<=s;j++){abc(1,b,0,b);for(inti=0;i<=b;i++){f[i]=df[i];}}cout<<f[b]<<endl;return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 21:36:06

[USACO08MAR] Land Acquisition G题解

P2900 [USACO08MAR] Land Acquisition G 题目描述 Farmer John 准备扩大他的农场&#xff0c;眼前他正在考虑购买 NNN 块长方形的土地。 如果 FJ 单买一块土地&#xff0c;价格就是土地的面积。但他可以选择并购一组土地&#xff0c;并购的价格为这些土地中最大的长乘以最大的宽…

作者头像 李华
网站建设 2026/9/2 12:46:47

构建高效质量防线:持续测试成熟度模型解析与实践指南

1 持续测试的时代背景与核心价值在敏捷开发与DevOps成为主流的今天&#xff0c;软件发布周期从"月"缩短到"天"甚至"小时"&#xff0c;传统测试方法已难以适应快速交付的需求。持续测试&#xff08;Continuous Testing&#xff09;作为DevOps的关…

作者头像 李华
网站建设 2026/9/2 19:01:05

2025 低代码平台选型指南

随着低代码市场的快速发展&#xff0c;各类低代码平台层出不穷&#xff0c;市场上已形成国内企业级全栈信创类、国际主流型、开源型等多个阵营。面对众多选择&#xff0c;企业很容易陷入 “盲目跟风”“只看价格”“追求功能全面” 等选型误区&#xff0c;最终导致所选平台与业…

作者头像 李华
网站建设 2026/9/2 22:35:13

DateBook v4.9.5 – 功能丰富多语言约会社交 WordPress 主题

DateBook 是世界上唯一一个将国家、地区和城市翻译成多种语言的约会主题。集成了订阅或会员资格功能&#xff0c;无需购买任何额外的订阅或会员插件。 使用集成的 DateBook 订阅通过 PayPal 或 Paystack 网关接受付款&#xff0c;或通过安装支付网关插件通过 WooCommerce 接受…

作者头像 李华
网站建设 2026/9/2 10:43:15

文件上传文件包含学习

1.文件上传由于程序员在对用户文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型或者处理缺陷&#xff0c;而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件1.1. 上传漏洞满足条件首先&#xff0c;上传的文件能够被web容器解释执行。所以文件…

作者头像 李华
网站建设 2026/9/2 10:25:29

day41早停策略和模型权重的保存@浙大疏锦行

day41早停策略和模型权重的保存浙大疏锦行 基于day40代码实现模型权重的保存和早停 # 定义损失函数和优化器 criterion nn.CrossEntropyLoss() optimizer optim.Adam(model.parameters(), lr0.001)# 训练参数 num_epochs 1000 check_interval 10 # 每多少轮检查一次验证…

作者头像 李华