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

有n件物品,每件物品都有一个花费,要求每m个中必须至少选2个,求最小花费

题目

#include<bits/stdc++.h>
using namespace std;
#define int long long
#pragma GCC optimize(2)
const int maxn = 2e4 + 5, maxm = 2e3 + 5, inf = 1e9;
int a[maxn];
int f[maxm][maxm];//f[i][j]表示选了第i个,上一个选的是第i-j个(每m个中选2个等价于选的第k个和第k-2个的距离<=m
int pre_min[maxm][maxm];//前缀最小值
inline int read()
{int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0' && ch<='9')x=x*10+ch-'0',ch=getchar();return x*f;
}
void write(int x)
{if(x<0)putchar('-'),x=-x;if(x>9)write(x/10);putchar(x%10+'0');return;
}
void solve(){int n, i, j, m;//cin >> n >> m;n = read(), m = read();for(i = 1; i <= n; i++){//cin >> a[i];a[i] = read();}a[++n] = 0;//在末尾加一个0,表示这个人必选,方便后面统计答案int res = inf;for(i = 1; i <= m; i++){for(j = 0; j <= m; j++){f[i][j] = pre_min[i][j] = inf;}for(j = 1; j < i; j++){f[i][j] = a[i] + a[i - j];pre_min[i][j] = min(pre_min[i][j - 1], f[i][j]);}}for(i = m + 1; i <= n; i++){int cur = (i - 1) % m + 1;for(j = 1; j < m; j++){int last = (i - j - 1) % m + 1;f[cur][j] = pre_min[last][m - j] + a[i];pre_min[cur][j] = min(pre_min[cur][j - 1], f[cur][j]);}}for(j = 1; j < m; j++){res = min(res, f[(n - 1) % m + 1][j]);}//cout << res << '\n';write(res);putchar('\n');// for(i = 1; i <= m; i++){// 	for(j = 0; j <= m; j++){// 		f[i][j] = inf;// 		pre_min[i][j] = inf;// 	}// }// f[1][0] = a[1];// f[1][1] = a[1];// const int mod = m;// pre_min[1][0] = pre_min[1][1] = a[1];// int res = inf;// //cout << pre_min[0][0] << '\n';// for(i = 2; i <= n; i++){//一次用滚动数组更新完不好搞,因为pre[0][k] = 0,会影响后面的更新// 	int cur = i % mod;// 	for(j = 1; j <= m - 1 && i - j >= 0; j++){// 		int last = (i - j) % mod;// 		int tmp = min(i - j, m - j);// 		f[cur][j] = pre_min[last][tmp] + a[i];// 		// if(i == 2 && j == 2){// 		// 	cout << "test";// 		// 	cout << (i - j - 1 + m) % m + 1 << ' ' << tmp << ' ' << pre_min[(i - j - 1 + m) % m + 1][tmp] << '\n';// 		// }// 		pre_min[cur][j] = min(pre_min[cur][j - 1], f[cur][j]);// 		//res = min(res, f[i][j]);// 		cout << i << ' ' << j << ' ' << tmp << ' ' << f[cur][j] << ' ' << pre_min[cur][j] << '\n';// 	}// }// for(i = 1; i <= m; i++){// 	res = min(res, f[n % mod][i]);// }// cout << res << '\n';}
signed main(){// ios::sync_with_stdio(0);// cin.tie(0);int T;//cin >> T;T = read();while(T--){solve();}return 0;
}

相关文章:

有n件物品,每件物品都有一个花费,要求每m个中必须至少选2个,求最小花费

题目 #include<bits/stdc.h> using namespace std; #define int long long #pragma GCC optimize(2) const int maxn 2e4 5, maxm 2e3 5, inf 1e9; int a[maxn]; int f[maxm][maxm];//f[i][j]表示选了第i个&#xff0c;上一个选的是第i-j个&#xff08;每m个中选2个…...

Hive数据库与表操作

文章目录 一、准备工作二、Hive数据库操作&#xff08;一&#xff09;Hive数据存储&#xff08;二&#xff09;创建数据库&#xff08;三&#xff09;查看数据库&#xff08;四&#xff09;修改数据库信息 一、准备工作 二、Hive数据库操作 &#xff08;一&#xff09;Hive数据…...

C语言数据结构之顺序表(上)

前言&#xff1a; ⭐️此篇博文主要分享博主在学习C语言的数据结构之顺序表的知识点时写的笔记&#xff0c;若有错误&#xff0c;还请佬指出&#xff0c;一定感谢&#xff01;制作不易&#xff0c;若觉得内容不错可以点赞&#x1f44d;收藏❤️&#xff0c;这是对博主最大的认可…...

详解原生Spring中的控制反转和依赖注入-构造注入和Set注入

&#x1f609;&#x1f609; 学习交流群&#xff1a; ✅✅1&#xff1a;这是孙哥suns给大家的福利&#xff01; ✨✨2&#xff1a;我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 &#x1f96d;&#x1f96d;3&#xff1a;QQ群&#xff1a;583783…...

数组中的第 K 个最大元素(C++实现)

数组中的第 K 个最大元素 题目思路代码 题目 数组中的第 K 个最大元素 思路 通过使用优先队列&#xff08;最大堆&#xff09;来找到数组中第k大的元素。通过弹出最大堆中的前k-1个元素&#xff0c;留下堆中的顶部元素作为结果返回。 代码 class Solution { public:int find…...

C++ day42背包理论基础01 + 滚动数组

背包问题的重中之重是01背包 01背包 有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品只能用一次&#xff0c;求解将哪些物品装入背包里物品价值总和最大。 每一件物品其实只有两个状态&#xff0c;取或者不…...

数字人透明屏幕是如何工作的?

数字人透明屏幕是一种令人兴奋的科技产品&#xff0c;它结合了人脸识别、全息影像技术以及透明屏幕&#xff0c;为人们带来了全新的互动体验。本文将详细介绍数字人透明屏幕的工作原理以及其应用场景。 工作原理 数字人透明屏幕的工作原理主要包括人脸识别和全息影像技术。人脸…...

MIGO收货报替代“ZF002“, 步骤““ 中存在语法错误消息号 GB032错误

MIGO收货报替代"ZF002", 步骤"" 中存在语法错误消息号 GB032错误。替代"ZF002", 步骤"" 中存在语法错误消息号 GB032诊断 在 ABAP 代码生成过程中&#xff0c;在替代ZF002中发现了语法错误。 系统响应 未为该布尔陈述生成 ABAP 代码&…...

Vue3的transition标签以及animate.css使用详解

一&#xff1a;前言 在项目开发中&#xff0c;有一种特殊情况是使用动画过渡去完成某个效果。比如淡入淡出&#xff0c;或者在动画完成后执行某些操作等。在以前开发中我们通常会选择使用 CSS3 进行研发。但是这样会有很多不好的地方&#xff0c;比如最原始化的封装&#xff0c…...

IDEA不支持Java8了怎么办?

IDEA不支持Java8了怎么办&#xff1f; 01 异常发生场景 当我准备创建一个springboot项目时&#xff0c;发现Java8没了 02 问题的产生及其原因 查阅了官方文档之后&#xff0c;确认了是Spring Boot 不再支持 Java 8&#xff0c;不是我的问题&#xff0c;这一天终于还是来了 0…...

flutter的TextField参数、案例整理(上)

TextField 概述 TextField 用于文本输入 构造函数 const TextField({Key key,this.controller, this.focusNode,this.decoration const InputDecoration(),TextInputType keyboardType,this.textInputAction,this.textCapitalization TextCapitalization.none,this.style…...

【Linux进阶之路】进程间通信

文章目录 一、原理二、方式1.管道1.1匿名管道1.1.1通信原理1.1.2接口使用 1.2命名管道 2.共享内存2.1原理2.2接口使用 3.消息队列原理 4.信号量引入原理 总结 一、原理 进程间的通信是什么&#xff1f;解释&#xff1a; 简单理解就是&#xff0c;不同进程之间进行数据的输入输出…...

深度学习框架配置

目录 1. 配置cuda环境 1.1. 安装cuda和cudnn 1.1.1. 显卡驱动配置 1.1.2. 下载安装cuda 1.1.3. 下载cudnn&#xff0c;将解压后文件复制到cuda目录下 1.2. 验证是否安装成功 2. 配置conda环境 2.1. 安装anaconda 2.2. conda换源 2.3. 创建conda环境 2.4. pip换源 3.…...

全局配置

1.全局配置文件及其配置项 1.1.小程序窗口 1.2 窗口节点 1.2.1 导航栏标题 标题&#xff1a; 标题颜色&#xff1a; 背景色&#xff1a;只支持16进制值 下拉刷新&#xff1a; 刷新背景色&#xff1a; 刷新样式&#xff1a; 触底距离&#xff1a;...

leetcode算法之字符串

目录 1.最长公共前缀2.最长回文子串3.二进制求和4.字符串相乘 1.最长公共前缀 最长公共前缀 class Solution { public:string longestCommonPrefix(vector<string>& strs) {//法一&#xff1a;两两比较string ret strs[0];for(int i1;i<strs.size();i){ret f…...

mongodb查询数据库集合的基础命令

基础命令 启动mongo服务 mongod -f /usr/local/mongodb/mongod.conf //注意配置文件路径停止mongo服务 关闭mongodb有三种方式&#xff1a; 一种是进入mongo后通过mongo的函数关闭&#xff1b; use admin db.shutdownServer()一种是通过mongod关闭&#xff1b; mongod --s…...

基于FactoryBean、实例工厂、静态工厂创建Spring中的复杂对象

&#x1f609;&#x1f609; 学习交流群&#xff1a; ✅✅1&#xff1a;这是孙哥suns给大家的福利&#xff01; ✨✨2&#xff1a;我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 &#x1f96d;&#x1f96d;3&#xff1a;QQ群&#xff1a;583783…...

Android 如何让路由器或者其他AP设备获取到主机名

问题原因: 连接到AP设备后,发现主机名在路由器或者其他AP设备都无法正常显示 抓取tcpdump log发现DHCP request option中没有携带host name(Option 12)字段 如下图所示 修改方法: 将config_dhcp_client_hostname配置true后,可以看到host name了 具体代码逻辑如下 pack…...

java三大集合类--List

List Set Map 一、List 几个小问题&#xff1a; 1、接口可以被继承吗&#xff1f;&#xff08;可以&#xff09; 2、接口可以被多个类实现吗&#xff1f;&#xff08;可以&#xff09; 3、以下两种写法有什么区别&#xff1f; //List list1new List();是错误的因为List()…...

机器人向前冲

欢迎来到程序小院 机器人向前冲 玩法&#xff1a;一直走动的机器人&#xff0c;点击鼠标左键进行跳跃&#xff0c;跳过不同的匝道&#xff0c;掉下去即为游戏接续&#xff0c; 碰到匝道铁钉游戏结束&#xff0c;一直往前冲吧^^。开始游戏https://www.ormcc.com/play/gameStart…...

不记命令也能排障:catpaw chat 实战手册俟

Julia&#xff08;julialang.org&#xff09;由Stefan Karpinski、Jeff Bezanson等在2009年创建&#xff0c;目标是融合Python的易用性、C的高性能、R的统计能力、Matlab的科学计算生态。 其核心设计哲学是&#xff1a; 高性能&#xff1a;编译型语言&#xff08;JIT&#xff0…...

边缘计算与AI推理:在终端设备上部署模型的挑战

边缘AI部署的测试价值重构随着AI推理任务从云端下沉至终端设备&#xff0c;软件测试的战场正经历根本性变革。边缘计算通过将模型部署于摄像头、工业传感器、车载终端等设备&#xff0c;实现了毫秒级响应的实时决策能力。据行业预测&#xff0c;2026年全球边缘AI设备市场规模将…...

Swoole Worker进程莫名退出?Linux信号处理、OOM Killer与systemd资源限制的终极对齐方案

第一章&#xff1a;Swoole Worker进程莫名退出&#xff1f;Linux信号处理、OOM Killer与systemd资源限制的终极对齐方案Swoole Worker进程在高并发场景下突然终止&#xff0c;却无明确错误日志&#xff0c;是生产环境高频痛点。根本原因常非代码缺陷&#xff0c;而是底层系统机…...

多租户下的ERP系统的仓储管理模块分析设计轿

springboot自动配置 自动配置了大量组件&#xff0c;配置信息可以在application.properties文件中修改。 当添加了特定的Starter POM后&#xff0c;springboot会根据类路径上的jar包来自动配置bean&#xff08;比如&#xff1a;springboot发现类路径上的MyBatis相关类&#xff…...

SparkMD5 增量哈希实战:如何高效处理大文件而不占用过多内存

SparkMD5 增量哈希实战&#xff1a;如何高效处理大文件而不占用过多内存 【免费下载链接】js-spark-md5 Lightning fast normal and incremental md5 for javascript 项目地址: https://gitcode.com/gh_mirrors/js/js-spark-md5 SparkMD5 是一个超快的 JavaScript MD5 实…...

凌晨三点修复0day!PHP AI实时检测系统如何在上线前拦截CVE-2024-XXXXX:一线攻防团队纪实

第一章&#xff1a;PHP AI 代码检测的诞生背景与实战价值近年来&#xff0c;PHP 作为全球广泛使用的 Web 开发语言&#xff0c;持续支撑着数以百万计的网站与 CMS 系统&#xff08;如 WordPress、Drupal&#xff09;。然而&#xff0c;其动态类型、弱语法约束及历史遗留的编码习…...

周测复盘【前缀和and差分】

其实存了三个草稿没发&#xff0c;因为题解半路解不出来了。 花了四十分钟搞三个平台关联&#xff0c;最后一道题还是没来得及交上哈哈&#xff0c;OK直接进入正题 题目A Atcoder Trifecta 题目翻译&#xff1a; 编号为1到N的N匹马进行了一场比赛 所有马匹同时起跑&#x…...

抖音视频批量下载终极指南:3分钟掌握高效采集技巧

抖音视频批量下载终极指南&#xff1a;3分钟掌握高效采集技巧 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. …...

手把手调试:用逻辑分析仪抓取Camera Sensor的DVP和SPI时序波形(附MIPI对比)

实战指南&#xff1a;用逻辑分析仪精准捕捉Camera Sensor的DVP与SPI时序问题 调试摄像头Sensor时&#xff0c;图像花屏、颜色异常或帧率不稳定往往是工程师最头疼的问题。上周在调试一款安防摄像头模组时&#xff0c;客户反馈夜间画面出现规律性条纹&#xff0c;经过逻辑分析仪…...

如何用Input Leap实现跨设备控制?打造无缝多设备协作体验

如何用Input Leap实现跨设备控制&#xff1f;打造无缝多设备协作体验 【免费下载链接】input-leap Open-source KVM software 项目地址: https://gitcode.com/gh_mirrors/in/input-leap 在多设备办公环境中&#xff0c;频繁切换键盘鼠标不仅打断工作流&#xff0c;更降低…...