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

相关文章

springboot security使用jwt认证方式

《springbootsecurity使用jwt认证方式》:本文主要介绍springbootsecurity使用jwt认证方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录前言代码示例依赖定义mapper定义用户信息的实体beansecurity相关的类提供登录接口测试提供一

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

SpringSecurity 认证、注销、权限控制功能(注销、记住密码、自定义登入页)

《SpringSecurity认证、注销、权限控制功能(注销、记住密码、自定义登入页)》SpringSecurity是一个强大的Java框架,用于保护应用程序的安全性,它提供了一套全面的安全解决方案... 目录简介认识Spring Security“认证”(Authentication)“授权” (Auth

一文详解kafka开启kerberos认证的完整步骤

《一文详解kafka开启kerberos认证的完整步骤》这篇文章主要为大家详细介绍了kafka开启kerberos认证的完整步骤,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、kerberos安装部署二、准备机器三、Kerberos Server 安装1、配置krb5.con

springboot的调度服务与异步服务使用详解

《springboot的调度服务与异步服务使用详解》本文主要介绍了Java的ScheduledExecutorService接口和SpringBoot中如何使用调度线程池,包括核心参数、创建方式、自定... 目录1.调度服务1.1.JDK之ScheduledExecutorService1.2.spring

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