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

网站后台框架下载网站建设公司行业描述填什么

网站后台框架下载,网站建设公司行业描述填什么,公司网站搜索引擎优化,北京移动端网站贪心 贪心:把整体问题分解成多个步骤,在每个步骤都选取当前步骤的最优方案,直至所有步骤结束;每个步骤不会影响后续步骤核心性质:每次采用局部最优,最终结果就是全局最优如果题目满足上述核心性质&#xf…

贪心

  • 贪心:把整体问题分解成多个步骤,在每个步骤都选取当前步骤的最优方案,直至所有步骤结束;每个步骤不会影响后续步骤
  • 核心性质:每次采用局部最优,最终结果就是全局最优
  • 如果题目满足上述核心性质,则可以采用贪心进行求解

如何判断是否能用贪心?

  1. 最优子结构性质:当一个问题的最优解包含子问题的最优解,则称之为具有最优子结构性质。
  2. 贪心性质选择:可以通过局部最优的选择得到全局最优

具体问题如何做?

  1. 经验性积累各种类型的贪心
  2. 举反例

经典贪心

石子合并问题

石子合并问题:每次选择最小的两个

利用堆:heapq

题目描述

在很久很久以前,有 n n n 个部落居住在平原上,依次编号为 1 1 1 n n n。第 i i i 个部落的人数为 t i t_i ti

有一年发生了灾荒。年轻的政治家小蓝想要说服所有部落一同应对灾荒,他能通过谈判来说服部落进行联合。

每次谈判,小蓝只能邀请两个部落参加,花费的金币数量为两个部落的人数之和,谈判的效果是两个部落联合成一个部落(人数为原来两个部落的人数之和)。

输入描述

输入的第一行包含一个整数 n n n,表示部落的数量。

第二行包含 n n n 个正整数,依次表示每个部落的人数。

其中, 1 ≤ n ≤ 1000 , 1 ≤ t i ≤ 1 0 4 1≤n≤1000,1≤t_i≤10^4 1n10001ti104

输出描述

输出一个整数,表示最小花费。

import heapq
n = int(input())
a = list(map(int, input().split()))# 把a转化为堆
heapq.heapify(a)
ans = 0
while len(a) >= 2:x = heapq.heappop(a)y = heapq.heappop(a)heapq.heappush(a, x + y)ans += x + y
print(ans)

分箱问题

每组最多两件,价值之和不超过 w w w

尽可能不浪费空间:大的和小的凑在一起

题目描述

元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参加晚会的同学所获得的纪念品价值相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品,并且每组纪念品的价格之和不能超过一个给定的整数。为了保证在尽量短的时间内发完所有纪念品,乐乐希望分组的数目最少。

你的任务是写一个程序,找出所有分组方案中分组数最少的一种,输出最少的分组数目。

输入描述

1 1 1 行包括一个整数 w ( 80 ≤ w ≤ 200 ) w (80≤w≤200) w(80w200),为每组纪念品价格之和的上限。

2 2 2 行为一个整数 n ( 1 ≤ n ≤ 30000 ) n (1≤n≤30000) n(1n30000),表示购来的纪念品的总件数。

3 3 3~ n + 2 n+2 n+2 行每行包含一个正整数 p i ( 5 ≤ p i ≤ w ) p_i (5≤p_i≤w) pi(5piw),表示所对应纪念品的价格。

输出描述

输出一行,包含一个整数,即最少的分组数目。

w = int(input())
n = int(input())
a = []
for i in range(n):a.append(int(input()))a.sort()
l, r = 0, n - 1
ans = 0while True:if l == r:ans += 1breakif l > r:breakif a[l] + a[r] <= w:ans += 1l += 1r -= 1else:ans += 1r -= 1
print(ans)

翻硬币问题

题目描述

小明正在玩一个"翻硬币"的游戏。

桌上放着排成一排的若干硬币。我们用 ∗ * 表示正面,用 o o o 表示反面(是小写字母,不是零)。

比如,可能情形是: ∗ ∗ o o ∗ ∗ ∗ o o o o **oo***oooo oooooo;

如果同时翻转左边的两个硬币,则变为: o o o o ∗ ∗ ∗ o o o o oooo***oooo oooooooo

现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?

我们约定:把翻动相邻的两个硬币叫做一步操作。

输入描述

两行等长的字符串,分别表示初始状态和要达到的目标状态。

每行的长度<1000。

输出描述

一个整数,表示最小操作步数。

s = list(input())
t = list(input())
n = len(s)
ans = 0
for i in range(n):if s[i] == t[i]:continueif s[i + 1] == '*':s[i + 1] = 'o'else:s[i + 1] = '*'ans += 1
print(ans)

数组乘积问题

给定两个长度为 n n n 的正整数数组 a a a b b b,可以任意排序,求 ∑ i = 1 n a [ i ] ∗ b [ i ] \sum_{i=1}^{n}a[i]*b[i] i=1na[i]b[i] 的最小值

思路: a a a 从小到大, b b b 从大到小,然后对应元素相乘结果最小

参考个人博客:贪心

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

相关文章:

  • 怎么帮公司做网站建设影视会员代理平台网站
  • 优质的设计网站有哪些建设网站查询
  • 北京工商局网站怎么做增资上海平面设计公司排行榜
  • 西安高端网站建设首选行业网站策划
  • 北京网站设计服务注册建筑设计师
  • 网页制作中网站名称怎么做大型网站的设计
  • 北京网站制作最新教程遵义市做网站的地方
  • 有没有代做模型的网站淘宝客网站程序模板
  • 阿里云做网站可以吗黄岩网站开发
  • 仙桃做网站找谁小程序登录入口网页版官网
  • 如何做贴吧类网站多钱建立网站的准备工作
  • 创新的邯郸网站建设我厂有大量手工活外发加工
  • 包头做网站非交互式网站可以做商城吗
  • 南京栖霞区有做网站的吗宝塔wordpress腾讯云
  • 网站设计方案怎么做怎么做套版网站
  • 国外网站信息流广告案例
  • 深圳制作网站公司哪家好一个网站做两种产品
  • 网站首页弹出图片做seo推广做网站有用吗
  • 呼和浩特市网站搜索引擎的工作原理是什么
  • 贵阳专业做网站公司有哪些嫦娥直播
  • 开发公司物业服务合同成都百度提升优化
  • 怎样申请网站域名和空间什么是响应式网站
  • 广州企业网站建设电话郑州区块链数字钱包网站开发方案
  • 网站建设规划方案.ppt中国纪检监察报
  • 设计软件免费下载网站网络营销心得体会1000字
  • 个人网站域名取名幸运28网站建设
  • 如何制作网站的横幅win8风格门户网站
  • 公司宣传网站制作海南中小企业网站建设
  • 注册越南网站vnwordpress播放百度云
  • 网站制作模板过程视频链接生成器