CSP 第34次认证第四题 货物调度

2024-06-16 04:44
文章标签 csp 认证 34 第四 调度 货物

本文主要是介绍CSP 第34次认证第四题 货物调度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目链接

只想做一个30分解法。考场上写dfs只能过15分,不思其解。系统未开放评测。
将复现方法粘贴如下,开放数据后再进行测试。

#include <iostream>
#include <vector>
#include <set>
#include <algorithm>
#include <map>
using namespace std;int n, m, v;
struct store {int b, c;
};
struct Goods {int a, t;
};
store Store[1010];
Goods goods[1010];int ans = 0x3f3f3f3f;bool flag[1010];// 标记每个物品时选择了还是没有选择void dfs(int u, int sum) {if (u == m) {// 遍历完了m个物品// 求一下cost,需要知道每个选择的物品是哪个仓库的,goods.t 就是。还要知道每个仓库一共调用了多少物品map<int, int>count;for (int i = 0; i < m; i ++ ) {if (flag[i]) // 选择了第i个货物count[goods[i].t] ++;}int cost = 0;for (auto [key, value]: count) {// key: count.first, value: count.second;int basic = Store[key].b;int add = Store[key].c;cost += basic + add * value;}if (sum - cost >= v) {ans = min(ans, cost);}return ;}// 不选择 dfs(u + 1, sum);// 选择 uflag[u] = 1;dfs(u + 1, sum + goods[u].a);flag[u] = 0;}int main() {cin >> n >> m >> v;for (int i = 0; i < n; i ++ ) {cin >> Store[i].b >> Store[i].c;}for (int i = 0; i < m; i ++ ) {cin >> goods[i].a >> goods[i].t;}// 解决 m = 15 的情况,每个物品选择还是不选择 dfs(0, 0); // 从第0个物品开始,已经选择的货物获得的现金为0cout << ans << endl;return 0;
}

这篇关于CSP 第34次认证第四题 货物调度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

java如何通过Kerberos认证方式连接hive

《java如何通过Kerberos认证方式连接hive》该文主要介绍了如何在数据源管理功能中适配不同数据源(如MySQL、PostgreSQL和Hive),特别是如何在SpringBoot3框架下通过... 目录Java实现Kerberos认证主要方法依赖示例续期连接hive遇到的问题分析解决方式扩展思考总

深入理解Apache Airflow 调度器(最新推荐)

《深入理解ApacheAirflow调度器(最新推荐)》ApacheAirflow调度器是数据管道管理系统的关键组件,负责编排dag中任务的执行,通过理解调度器的角色和工作方式,正确配置调度器,并... 目录什么是Airflow 调度器?Airflow 调度器工作机制配置Airflow调度器调优及优化建议最

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

BUUCTF(34)特殊的 BASE64

使用pycharm时,如果想把代码撤销到之前的状态可以用 Ctrl+z 如果不小心撤销多了,可以用 Ctrl+Shift+Z 还原, 别傻傻的重新敲了 BUUCTF在线评测 (buuoj.cn) 查看字符串,想到base64的变表 这里用的c++的标准程序库中的string,头文件是#include<string> 这是base64的加密函数 std::string

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟

一种改进的red5集群方案的应用、基于Red5服务器集群负载均衡调度算法研究

转自: 一种改进的red5集群方案的应用: http://wenku.baidu.com/link?url=jYQ1wNwHVBqJ-5XCYq0PRligp6Y5q6BYXyISUsF56My8DP8dc9CZ4pZvpPz1abxJn8fojMrL0IyfmMHStpvkotqC1RWlRMGnzVL1X4IPOa_  基于Red5服务器集群负载均衡调度算法研究 http://ww

Golang进程权限调度包runtime

关于 runtime 包几个方法: Gosched:让当前线程让出 cpu 以让其它线程运行,它不会挂起当前线程,因此当前线程未来会继续执行GOMAXPROCS:设置最大的可同时使用的 CPU 核数Goexit:退出当前 goroutine(但是defer语句会照常执行)NumGoroutine:返回正在执行和排队的任务总数GOOS:目标操作系统NumCPU:返回当前系统的 CPU 核数量 p