当前位置: 首页 > ops >正文

P2392 kkksc03考前临时抱佛脚

P2392 kkksc03考前临时抱佛脚 - 洛谷

题目背景

kkksc03的大学生活非常的颓废,平时根本不学习。但是,临近期末考试,他必须要开始抱佛脚,以求不挂科。

题目描述

这次期末考试,kkksc03需要考4科。因此要开始刷习题集,每科都有一个习题集,分别有s1​,s2​,s3​,s4​道题目,完成每道题目需要一些时间,可能不等(A1​,A2​,⋯,As1​​,B1​,B2​,⋯,Bs2​​,C1​,C2​,⋯,Cs3​​,D1​,D2​,⋯,Ds4​​)。

kkksc03有一个能力,他的左右两个大脑可以同时计算2道不同的题目,但是仅限于同一科。因此,kkksc03必须一科一科的复习。

由于kkksc03还急着去处理洛谷的bug,因此他希望尽快把事情做完,所以他希望知道能够完成复习的最短时间。

输入格式

本题包含5行数据:

  • 第1行,为四个正整数s1​,s2​,s3​,s4​。
  • 第2行,为A1​,A2​,⋯,As1​​共s1​个数,表示第一科习题集每道题目所消耗的时间。
  • 第3行,为B1​,B2​,⋯,Bs2​​共s2​个数。
  • 第4行,为C1​,C2​,⋯,Cs3​​共s3​个数。
  • 第5行,为D1​,D2​,⋯,Ds4​​共s4​个数,意思均同上。

输出格式

输出一行,为复习完毕最短时间。

输入输出样例

输入#1输出#1
1 2 1 3
5
4 2
6
2 4 3
20

说明/提示

1≤s1​,s2​,s3​,s4​≤20。

1≤A1​,A2​,⋯,As1​​,B1​,B2​,⋯,Bs2​​,C1​,C2​,⋯,Cs3​​,D1​,D2​,⋯,Ds4​​≤60。

思路:


代码:

#include <bits/stdc++.h>
using namespace std;
int a[25], b[25], c[25], d[25]; 
bool dp[25][10000];
int fun(int times[], int n) 
{memset(dp,false,sizeof(dp));int total = 0;for (int i = 1; i <= n; ++i) total += times[i];if (total == 0) return 0; int target = total / 2;dp[0][0] = true;  for (int i = 1; i <= n; ++i) //前i个元素 {for (int j = 0; j <= target; ++j) // 遍历所有可能的和j{dp[i][j] = dp[i-1][j]; // 不选第i个元素:继承前i-1个元素的状态if (j >= times[i] && dp[i-1][j - times[i]]) // 选第i个元素(当j >= t时) {dp[i][j] = true;  // 只要有一个情况为true,当前状态为true}} }int max_sub = 0;for (int j = target; j >= 0; --j) {if (dp[n][j]) {max_sub = j;break;}}return total - max_sub; 
}int main() {int s1, s2, s3, s4;cin >> s1 >> s2 >> s3 >> s4;for (int i = 1; i <= s1; ++i) cin >> a[i];for (int i = 1; i <= s2; ++i) cin >> b[i];for (int i = 1; i <= s3; ++i) cin >> c[i];for (int i = 1; i <= s4; ++i) cin >> d[i];// 计算并输出总时间int total_time = fun(a, s1)  + fun(b, s2) + fun(c, s3) + fun(d, s4);cout << total_time << endl;return 0;
}

http://www.xdnf.cn/news/4662.html

相关文章:

  • mongodb升级、改单节点模式
  • 为什么虚拟环境下包找错路径?
  • 堡塔云WAF免费WEB防火墙,从搭建到应用
  • k8s监控方案实践(一):部署Prometheus与Node Exporter
  • 排序算法-冒泡排序
  • [数据库之十三] 数据库索引之散列索引
  • 如何在macOS上通过SSHFS挂载远程文件系统
  • 室内无人机自主巡检解决方案-自主方案
  • 批量清洗与修改 YOLO 标签:删除与替换指定类别
  • uniapp index.html怎么改都不生效
  • Redis如何实现分布式锁
  • 论文学习:《RNADiffFold:使用离散扩散模型的生成RNA二级结构预测》
  • 中级网络工程师知识点2
  • 【se-res模块学习】结合CIFAR-10分类任务学习
  • 嵌入式学习--江协51单片机day3
  • 问题 | 当前计算机视觉迫切解决的问题
  • spring中RequestContextHolder
  • Wubuntu安装时创建分区失败解决方案
  • 预渲染 Prerender
  • 图漾相机——Sample_V2示例程序(待补充)
  • 【UltralyticsYolo11图像分类完整项目-03】Onnx版Cpu预测C++实现
  • 解构语言模型推理过程,超越最终答案:通过分析子思考路径提升大语言模型推理准确性的方法研究
  • FastExcel 本地开发和Linux上上传Resource文件的差异性
  • 直接用字符串方式 split(“。“) 来切句,虽然能把句子拆开,但无法和 BERT 模型的 token 位置对应(embedding 用不上)
  • 高炉炼铁:构建全流程工艺可视化管控体系
  • Redis最新入门教程
  • 多返回值(C++)
  • CF后台如何设置TCP 和 UDP 端口?
  • 基于Flink的用户画像 OLAP 实时数仓统计分析
  • springmvc的入门案例