题目描述:
现在有一堆木棒,告诉你它们的长度,判断能否用这些木棒拼接成正方形。 注意:所有的木棒都要用上,且不能截断。 给你一个正整数list L, 如 L=[1,1,1,1], L中的每个数字代表一个木棒的长度,如果这些 木棒能够拼成一个正方形,输出Yes,否则输出No。 如L=[1,1,1,1],则输出Yes;L=[1,1,1],则输出No。 注:数据已于2014-03-11加强,之前通过的代码可能无法再次通过
示例:
输入:L = [1, 1, 1, 1]

输出:Yes

1.将所有木棒根据长度从大到小排序。
2.得到所有木棒的长度总和,判断能否构成四边形以及四边的长度。
3.再依次将木棒放到四边剩余长度最大的边。
4.循环操作第3步,直到所有木棒全部放入四边。
5.最后判断四边是否全部为0。

假设我们现在手里拿了 1 根木棒,并且只能放入剩余长度最大的边,其他边放不下这根木棍,那就只能放入剩余长度最大的边了。

如果有 n 个边都可以放,并且这 n 个边剩余长度都一样,那就随便放1个边都可以。

如果现在有 n 个边都可以放,但是 n 个边的 剩余长度都不一样,怎么办?

假设现在有木棒 a > b。 2个边 分别为 A>B。

把 a 放入 A 中,那么A就变成了 A-a。

把 a 放入 B 中,那么B就变成了 B-a

因为 A>B, 所以 A-a > B-a 。

那么 b < A-a 的可能就比 b < B-a 的可能要高,这样我们就可以把更多的木棒加入4边中。

而我们的目的就是尽可能的把所以木棒放入到4个边中。

if sum(L)%4!=0 or len(L)<4 or sum(L)==0:print('No')
else:a=sum(L)//4b=[a,a,a,a]L.sort(reverse=True)for i in range(len(L)):b[3]-=L[i]b.sort()if not min(b):#用if sum(b)==0:是错的print('Yes')else:print('No')

python做题记录之正方形拼接相关推荐

  1. python做题记录之乘法运算

    题目描述: 给你两个整数a和b(0 < a,b < 1000),按笔算的格式输出a乘以b(a是被乘数,b是乘数)的运算过程, 最后再输出一行 "***************** ...

  2. Regional 做题记录 (50/50)

    写在前面 博主深感自己太弱了QAQ 于是有了一个刷水的想法,Regional的题目还是有很多考查思维的题目,所以这次是乱做50道思考题,可能会顺带做一些水题,这些题的简要题解会写到这篇博文里面,希望能 ...

  3. Python刷题记录(81-90)

    Python刷题记录(81-90) 题目来源PTA平台 PAT (Basic Level) Practice (中文) @TOC 1081 检查密码 本题要求你帮助某网站的用户注册模块写一个密码合法性 ...

  4. 【Pikachu】漏洞练习平台做题记录+原理解析(2.2)XSS姿势和技巧

    前言 Pikachu是一个带有漏洞的Web应用系统,在这里包含了常见的web安全漏洞. 如果你是一个Web渗透测试学习人员且正发愁没有合适的靶场进行练习,那么Pikachu可能正合你意. pikach ...

  5. 概率期望题(期望 DP)做题记录

    概率期望题(期望 DP)做题记录 P3830 [SHOI2012]随机树 难点在于第二问:生成树的期望深度. 不 wei zhuo 捏,设 \(dp_{i,j}\) 表示已经有了 \(i\) 个叶子结 ...

  6. 数数题(计数类 DP)做题记录

    数数题(计数类 DP)做题记录 CF1657E Star MST 我们称张无向完全图是美丽的当且仅当:所有和 \(1\) 相连的边的边权之和等于这张完全图的最小生成树的边权之和. 完全图点数为 \(n ...

  7. CSDN 第六期编程竞赛做题记录

    CSDN 第六期编程竞赛做题记录 -- CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/16 9.18周日闲来无视写一下 csdn 的编程题,每期编程 ...

  8. 退役前的做题记录5.0

    退役前的做题记录5.0 出于某种原因新开了一篇. [CodeChef]Querying on a Grid 对序列建立分治结构,每次处理\((l,mid,r)\)时,以\(mid\)为源点建立最短路树 ...

  9. 2020.7月做题记录

    转眼就到了2020的下半年了-前方仍是一片茫然. 长期计划 prufer 序列 2020.07.02-2020.07.04 Problem Finished P2624 [HNOI2008]明明的烦恼 ...

最新文章

  1. 某程序员对比美团和阿里的卷文化区别:美团重过程,死抠没用细节;阿里更自由,注重结果!...
  2. 自学python 知乎-马哥教育官网-专业Linux培训班,Python培训机构
  3. 洗礼灵魂,修炼python(68)--爬虫篇—番外篇之webbrowser模块
  4. 关于memecache的使用及清楚示意
  5. 如何使用 C# 中的 Tuple
  6. 信息学奥赛一本通C++语言——1081:分苹果
  7. 什么是罗技LogitechFlow技术
  8. 《构建之法》 第5.5 第6 第7章
  9. java 读取wav采样数据_读取wav文件中的音频数据操作
  10. ubuntu 版mysql客户端工具_MySQL GUI工具
  11. 十、非参数检验:使用python进行卡方拟合优度检验
  12. (附源码)springboot社区疫情防控管理系统 毕业设计 164621
  13. wamp mysql使用方法_wamp使用方法【总】
  14. 【服务器数据恢复】StorNext文件系统数据恢复案例
  15. js控制form提交
  16. 设计模式学习笔记(C++实现)(九)--组合模式
  17. 点云旋转平移(一)—基础知识介绍
  18. MATLAB如何读取文件中的数据(全网最简便)
  19. spark.read.jdbc 并发设置
  20. GAMMA预处理的StaMPS时序InSAR分析(以SBAS为例)

热门文章

  1. 网站文章被采集?尝试使用这几种方法进行最大防护
  2. python采集小说网站完整教程(附完整代码)
  3. Vue 加载 SVG 图片文件
  4. PMP之敏捷图表之燃起图和燃尽图、累积流量图
  5. 如何把动态硬盘转换为基本硬盘
  6. ST推出 28nm MCU ,NXP更狠,推出16nm MCU
  7. 技术寡头争霸传之:控制开源工具,就控制了整个生态
  8. Scrapy+Selenium爬取动态网页:no ‘moz:firefoxOptions.binary‘ capability provided
  9. Android问题集锦之二十 Activity has leaked window that was originall
  10. 使用Number Insight和Java创建呼叫者ID