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

做网站傻瓜软件高档vi设计公司

做网站傻瓜软件,高档vi设计公司,电商网站功能结构图,工商企业查询网一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 Problem - 1954D - Codeforces 二、解题报告 1、思路分析 本题前置题目: 1953. 你可以工作的最大周数 通过前置题目可以知道如何计算两两不同数对序列的最大长度 我们记最大数量为ma&#xf…

一、题目

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)

http://www.yayakq.cn/news/352177/

相关文章:

  • 建网站专业百度竞价托管外包
  • 做传感器的网站做英文网站建设
  • 深圳建设网站开发网站开发需要考什么证
  • 万网有域名怎么建网站南昌外贸网站设计
  • 广东营销型网站建设报价网站建设外包排名
  • 手机网站 需求模板58网站 做现浇混凝土
  • wordpress多城市子站高档网站模板
  • 惠州网站建设 鑫wordpress主题giligili
  • 怎么给自己的网站做排名亚马逊云搭建WordPress
  • 网站开发什么语言安全南宁网络推广品牌
  • 杭州网站建设网页制作wordpress显示更新时间
  • 网站推广app建设工程中标查询
  • 公众号江苏建设信息网站上海市工程质量建设管理协会网站
  • 江西港航建设投资有限公司网站wordpress 多个memcached
  • 城市建设理论研究官方网站贵阳网站开发谁家做的好
  • 科院公司网站建设目标是什么打开网站 输入内容存在危险字符
  • 原子艺术做的网站怎么样子南宁市做公司网站
  • 易语言做网站教程招聘网站建设人员
  • 2017网站发展趋势住房城乡建设部网站主页
  • 企业网站php模版wordpress移动主题puck
  • 企业网站域名服务器网络营销论文4000字
  • html制作网站百度指数移动版
  • 高端娱乐网站建设phpnow 安装wordpress
  • 重庆建站管理系统信息想开个网站怎样开公司
  • 网站注册管理策划方案万网空间 wordpress
  • 网站设计公司费用室内装修网站
  • 石家庄建工科技学院石家庄做网站翻译api wordpress
  • 网站负责人备案采集照网络营销的发展趋势和前景
  • 赣州网站制作较好的公司如何给自己的公司做网站
  • 太原免费静态网站制作台州响应式建站