202012-4 食材运输

2024-04-14 16:38
文章标签 运输 202012 食材

本文主要是介绍202012-4 食材运输,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

202012-4 食材运输

图论+状态压缩dp

#include <stdio.h>
#include <iostream>
#include <queue>
#include <map>
#include <vector>
#include <algorithm>
#include <cstring>
using namespace std;
typedef long long ll;
const int maxn = 1e6+10;int N,M,K;
int need[maxn];
struct node{int v,w;
};
vector<node> adj[110];
int G[110][15];
int T[110];
int road = 0;
bool tag[110];
bool dp[12][1025],tmp[12][1025];
int dfs(int u,int fa){int mx = 0;for(int i = 0;i<adj[u].size();i++){int v = adj[u][i].v;int w = adj[u][i].w;if(v == fa) continue;int re = dfs(v,u);if(tag[v]){tag[u] = 1;road += w;mx = max(mx,w + re);}}return mx;
}
void init(){for(int i = 1;i<=N;i++){for(int j = 0;j<K;j++){memset(tag,0,sizeof tag);for(int ii = 1;ii<=N;ii++){if(need[ii]>>j & 1) tag[ii] = 1;}road = 0;int mx = dfs(i,-1);G[i][j] = road*2 - mx;}}
}
bool judge(int mid){memset(T,0,sizeof T);memset(dp,0,sizeof dp);for(int i = 1;i<=N;i++){for(int j = 0;j<K;j++){if(G[i][j] <= mid) T[i]|= 1<<j;}}tmp[0][0] = dp[0][0] = 1;for(int i = 1;i<=N;i++){memcpy(tmp,dp,sizeof dp);for(int j = 1;j<=M;j++){for(int k = 0;k<(1<<K);k++){dp[j][k] |= tmp[j][k];dp[j][k|T[i]] |= tmp[j-1][k];}}}return dp[M][(1<<K)-1];
}
void solve(){int l = 1,r = 1e9,ans;while(l<=r){int mid = (l+r)>>1;if(judge(mid)) r = mid-1,ans = mid;else l = mid+1;}cout<<ans<<'\n';
}
int main(){cin>>N>>M>>K;for(int i = 1;i<=N;i++){for(int j = 0;j<K;j++){int x;scanf("%d",&x);if(x == 1) need[i] |= (1<<j);}}for(int i = 1;i<=N-1;i++){int x,y,c;scanf("%d %d %d",&x,&y,&c);adj[x].push_back({y,c});adj[y].push_back({x,c});}init();solve();return 0;
}

这篇关于202012-4 食材运输的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

计算机网络(运输层)

运输层概述 概念 进程之间的通信 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。 当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时,只有位于网络边缘部分的主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到三层(到网络层)的功能。 进程之间通信流程 以体系结构的角度来看

【CSP:202012-2】期末预测之最佳阈值(Java)

题目链接 202012-2 期末预测之最佳阈值 题目描述 求解思路 前缀和 根据题意我们可以得知: θ θ θ 值为 a[i].y 时的预测正确的次数等于 a[i].y 前面有多少个 result = 0 以及后面有多少个result = 1。定义Score类用来存储y和result,其中sum0表示a[1]到a[i]有多少个result = 0,sum1表示a[1]到a[i]

首发!《物流运输行业电子签最佳实践案例集》重磅发布

近日,法大大重磅发布《物流运输行业电子签最佳实践案例集》,旨在分享在物流行业深耕近10年的经验,为物流企业提供基于电子签技术的数字化创新参考。 该案例集精选中原大易、G7易流、河北快运、万联易达、浙江新颜物流、内蒙古多蒙德、天津小铁马和吉泰物流等物流企业为典型代表,呈现企业利用电子签名和数字化技术优化业务流程、提升服务质量、增强竞争力的成功案例,涵盖了从合同签署、货物追踪到供应链管理等多个方面的

助力航运管理数字智能化,基于YOLOv8全系列【n/s/m/l/x】参数模型开发构建江面河道运输场景下来往航行船只自动检测识别系统

在全球化浪潮的推动下,物流行业作为连接世界的桥梁,其快速发展与进化不仅重塑了国际贸易的格局,更深刻影响着全球贸易金融的进程。其中,海运作为大宗商品跨国、全球化贸易的支柱性运输方式,其重要性不言而喻。随着各国对航海运输的重视日益加深,构建世界级一流的海运队伍与港口设施已成为共同的目标。然而,传统的海运管理模式往往受限于工业化思维的束缚,缺乏数字化、智能化的技术支撑,难以适应快速变化的市场需求与竞争态

AW303 运输小猫

题目地址 易错点: 笔者由于没有进行数据初始化(排序以及数据填充)和状态转移中的一个字母r写成了l而调试了近一个小时. #include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#define ll long longusing namespace std;const ll INF=0x

如何用Java SpringBoot实现G县乡村生活垃圾治理运输地图?

✍✍计算机毕业编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java、Python、微信小程序、大数据实战项目集 ⚡⚡文末获取源码 文章目录 ⚡⚡文末获取源码G县乡村生活垃圾治理运输地图系统-研究背景G县乡村生活垃

油气界的“透视眼”!红外热像仪在油气储存及管道运输方面的应用

油气储存设施和管道由于老化、腐蚀、操作不当或自然灾害等原因,可能会发生泄漏,油气一旦遇到火源或高温环境,很容易引发火灾或爆炸。 红外热像仪在油气储存及管道运输方面的应用,具有显著的优势和重要性。它能够实时监测设施的运行状态,直观定位故障点,提高检测效率,预防事故的发生,从而确保油气储存和管道运输的安全与稳定。 油气储罐监测 储罐作为石化企业不可或缺的核心设施,承载着大量甲、乙类危险性

【计算机网络】[第五章:运输层][自用]

1 运输层概述 (1)概述: (2) 2 端口号、复用、分用的概念 (1) (2)不同的应用报文在传输层封装为TCP报文段,则叫做TCP复用;UDP复用同理;而UDP复用所得用户数据报和TCP复用得到的TCP报文段,在网络层都要使用IP协议封装成IP数据报,这叫做IP复用。         IP数据报首部中,协议字段的值,用来表明IP数据报数据载荷部分,封装的是何种数据单元。 (3)

计算机网络:运输层 - TCP 流量控制 拥塞控制

计算机网络:运输层 - TCP 流量控制 & 拥塞控制 滑动窗口流量控制拥塞控制慢开始算法拥塞避免算法快重传算法快恢复算法 滑动窗口 如图所示: 在TCP首部中有一个窗口字段,该字段就基于滑动窗口来辅助流量控制和拥塞控制。所以我们先讲解滑动窗口。 首先,发送方会维护一个发送缓存: 应用程序会把想要发送的数据写入到发送缓存中,而在发送缓存内部,维护一个发送窗口

CCF-CSP认证 202012-2 期末预测之最佳阈值

思路写在注释里面了。《算法笔记》P147页,活用递推章节语:“很多题目需要细心考虑过程中是否存在可能的递推关系,如果能找到这样的递推关系,就能使时间复杂度下降不少。例如就一类涉及序列的题目来说,假如序列每一位所需要计算的值都可以通过该位左右两侧的计算结果得到,那么就可以考虑所谓的‘左右两侧的结果’是否能够通过递推进行预处理来得到,这样在后面的使用中就可以不必反复求解。” PAT B1040/A1