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

dp + 计数,1954D - Colored Balls

一、题目

1、题目描述

2、输入输出

2.1输入

2.2输出

3、原题链接

Problem - 1954D - Codeforces


二、解题报告

1、思路分析

本题前置题目:

1953. 你可以工作的最大周数

通过前置题目可以知道如何计算两两不同数对序列的最大长度

我们记最大数量为ma,总数目为N

如果ma > N / 2, 那么划分的组数取决于ma,即ma组

如果ma <= N / 2, 那么划分组数为floor(N / 2)

换句话说,任意(N, ma)我们可以计算出其组数

那么(N, ma)状态有多少种?每种(n,ma)有多少个?

n个颜色最多对应n个ma,也就是说我们最多有N * n种状态

而N 和 n的上界都是5000

我们如果定义状态f[总数][最大值],那么每次状态转移需要遍历比当前最大值小的状态,这样的时间复杂度为O(n^3)

但是我们发现我们将原数组排序,那么我们顺序遍历的时候,最大值就是当前值

我们考虑设计状态f[i][x]为遍历到第i个物品时,容量为x的方案数

那么f[i][x] = Σf[i -1][j - nums[i]]

而我们得知方案数后自然可以根据容量和当前最大值nums[i]来计算其贡献

然后我们用f[i][x]更新f[i + 1][x + nums[i]]即可

我们发现这似乎退化成了01背包问题,而且可以滚动数组优化

然后问题就迎刃而解了

2、复杂度

时间复杂度: O(n^2)空间复杂度:O(n)

3、代码详解

# import sys# sys.stdin = open('in.txt','r')
mod = 998244353n = int(input())
a = list(map(int, input().split()))a.sort()f = [0] * 5001
f[0] = 1res = s = 0
for x in a:for i in range(s, -1, -1):if f[i]:res = (res + f[i] * max((i + x + 1) // 2, x)) % modf[i + x] = (f[i] + f[i + x ]) % mods += xprint(res)

相关文章:

dp + 计数,1954D - Colored Balls

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 Problem - 1954D - Codeforces 二、解题报告 1、思路分析 本题前置题目&#xff1a; 1953. 你可以工作的最大周数 通过前置题目可以知道如何计算两两不同数对序列的最大长度 我们记最大数量为ma&#xf…...

【设计模式深度剖析】【5】【结构型】【桥接模式】| 以电视和遥控器为例加深理解

&#x1f448;️上一篇:组合模式 设计模式-专栏&#x1f448;️ 目 录 桥接模式(Bridge Pattern)定义英文原话是&#xff1a;直译理解 4个角色UML类图代码示例 应用优点缺点使用场景 示例解析&#xff1a;电视和遥控器UML类图 桥接模式(Bridge Pattern) 定义 英文原话是&am…...

一键安装脚本sh

首先是初始化的ros安装的一些库&#xff1b; install.sh: execute_command() {if [ "$1" "1" ]; thenwget http://fishros.com/install -O fishros && bash fishroselif [ "$1" "2" ]; then#gnome-terminal --title"n…...

WebGL在医学成像方面的应用

WebGL&#xff08;Web Graphics Library&#xff09;是一种用于在Web浏览器中呈现3D和2D图形的JavaScript API。它被广泛应用于各种领域&#xff0c;包括医学成像。以下是WebGL在医学成像方面的应用及其详细描述。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&…...

SpringBoot+layuimini实现角色权限菜单增删改查(layui扩展组件 dtree)

角色菜单 相关组件方法效果图MySQL代码实现资源菜单树组件实现权限树方法js这里我先主要实现权限树的整体实现方法&#xff0c;如果是直接查看使用的话可以只看这里&#xff01; 后端代码Controlle层代码Service代码及实现类代码Service代码ServiceImpl代码 resourceMapper 代码…...

项目范围管理

目录 1.概述 2.主要工作 3.基础 4.项目范围管理的过程 5.规划范围管理 6.收集需求 7.定义范围 8.创建 WBS 9.确认范围 10.控制范围 1.概述 项目范围管理是项目管理中的一个重要组成部分&#xff0c;涉及到确定项目需要完成的工作范围&#xff0c;以及如何管理和控制…...

监管端..

文章目录 1. 登录流程2. 日志AOP 1. 登录流程 使用账号&#xff08;手机号&#xff09;、密码、验证码。登录就是获取token的&#xff0c;输入的账号密码用RSA加密&#xff08;非对称&#xff09; 首先输入账号密码&#xff0c;在发送手机验证码时候先校验账号密码有没有输入…...

点击登录按钮先检测输入框的规则检测(vue组合式)

<template><el-form :model"user" :rules"rules" ref"loginForm" label-width"auto" style"max-width: 600px"><el-form-item label"用户名" prop"name"><el-input v-model"…...

网络工程师---第四十二天

1、基于子网的vlan划分配置步骤是什么&#xff1f; 2、基于端口的vlan划分配置步骤是什么&#xff1f; 3、基于MAC地址的vlan划分配置步骤是什么&#xff1f; 4、请简述无线局域网的组网方式有哪几种&#xff0c;区别是什么&#xff1f; 5、请简述堆叠、级联和集群作用和区别是…...

leetcode 1241每个帖子的评论数(postgresql)

需求 编写 SQL 语句以查找每个帖子的评论数。 结果表应包含帖子的 post_id 和对应的评论数 number_of_comments 并且按 post_id 升序排列。 Submissions 可能包含重复的评论。您应该计算每个帖子的唯一评论数。 Submissions 可能包含重复的帖子。您应该将它们视为一个帖子。…...

前端最新面试题(ES6模块篇)

目录 1 ES5、ES6和ES2015有什么区别? 2 babel是什么,有什么作用? 3 let有什么用,有了var为什么还要用let? 4 举一些ES6对String字符串类型做的常用升级优化? 5 举一些ES6对Array数组类型做的常用升级优化 6 举一些ES6对Number数字类型做的常用升级优化 7 举一些ES…...

STM32H750外设之ADC通道选择

目录 概述 1 通道选择功能介绍 2 通道选择&#xff08; SQRx、 JSQRx&#xff09; 2.1 通道复用 2.1.1 通道介绍 2.1.2 通道框图 2.2 转换分组 2.3 内部专用通道 3 通道预选寄存器 (ADCx_PCSEL) 3.1 功能介绍 3.2 预选通道寄存器 概述 本位主要介绍STM32H750外设之…...

【Unity2D 2022:Cinemachine】相机跟随与地图边界

一、导入Cinemachine工具包 1. 点击Window-Package Manager&#xff0c;进入包管理界面 2. 点击All&#xff0c;找到Cinemachine工具包&#xff0c;点击Install 二、相机跟随角色 1. 选中Main Camera&#xff0c;点击Component-Cinemachine-CinemachineBrain&#xff0c;新建…...

ssh远程连接的相关配置

连接同一个局域网下&#xff1a; 正好这里来理解一下计算机网络配置中的ip地址配置细节&#xff0c; inet 172.20.10.13: 这是主机的IP地址&#xff0c;用于在网络中唯一标识一台设备。在这个例子中&#xff0c;IP地址是172.20.10.13。 netmask 255.255.255.240: 这是子网掩码…...

在leafet上画圆、多边形、线、矩形

在leaflet上画圆、多边形、线、矩形 <template><div id"map" class"map"></div> </template><script> import L from leaflet; export default {data () {return {myGroup: ,};},mounted () {this.initMaps()this.huizhiro…...

SpringBoot中如何在服务器进行校验?

数据校验就是数据的合法性检查&#xff0c;在服务器端也可以对数据进行校验&#xff0c;一般使用JSR303 校验 JSR303是Java为Bean数据合法性校验提供的标准框架&#xff0c;是一种声明式校验 JSR303通过在Bean属性上标注类似于NotNull、Max等注解来指定校验规则&#xff0c;并…...

element ui 的el-input输入一个字后失去焦点,需重新点击输入框才能再次输入

解决方案&#xff1a; 我是form表单嵌套表格&#xff0c;里面的el-input输入框&#xff0c;输入第一个值的时候会突然失去焦点&#xff0c;需要再次点击输入框才能正常输入&#xff0c;原因是table的key值&#xff0c;需要改成正常的index即可&#xff0c;如果你是循环的&…...

【绝地求生game】

编写一个完整的《绝地求生》这样的游戏程序代码是一个庞大的工程&#xff0c;涉及到成千上万行的代码和复杂的多模块协作。在这里&#xff0c;我可以提供一个非常简化的示例&#xff0c;用于演示游戏编程中可能用到的基本概念&#xff0c;比如玩家移动、基本物理和简单的游戏逻…...

Mac上Steam安装的游戏已经卸载,但游戏的快捷方式图标仍存在的解决方式

打开终端&#xff0c;输入以下内容&#xff0c;回车。 open ~/Applications 在弹出的窗口中&#xff0c;会列出对应的快捷方式&#xff0c;按需删除即可。 实际上打开的是 /Users/改为你的用户名/Applications 文件夹下的内容。因此也可以通过打开访达&#xff08;Finder&am…...

PTA 判断两个矩阵相等

Peter得到两个n行m列矩阵&#xff0c;她想知道两个矩阵是否相等&#xff0c;请你用“Yes”&#xff0c;“No”回答她&#xff08;两个矩阵相等指的是两个矩阵对应元素都相等&#xff09;。 输入格式: 第一行输入整数n和m&#xff0c;表示两个矩阵的行与列&#xff0c;用空格隔…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

windows系统MySQL安装文档

概览&#xff1a;本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容&#xff0c;为学习者提供全面的操作指导。关键要点包括&#xff1a; 解压 &#xff1a;下载完成后解压压缩包&#xff0c;得到MySQL 8.…...

LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)

在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...

微服务通信安全:深入解析mTLS的原理与实践

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言&#xff1a;微服务时代的通信安全挑战 随着云原生和微服务架构的普及&#xff0c;服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...