python做题记录之正方形拼接
题目描述:
现在有一堆木棒,告诉你它们的长度,判断能否用这些木棒拼接成正方形。 注意:所有的木棒都要用上,且不能截断。 给你一个正整数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做题记录之正方形拼接相关推荐
- python做题记录之乘法运算
题目描述: 给你两个整数a和b(0 < a,b < 1000),按笔算的格式输出a乘以b(a是被乘数,b是乘数)的运算过程, 最后再输出一行 "***************** ...
- Regional 做题记录 (50/50)
写在前面 博主深感自己太弱了QAQ 于是有了一个刷水的想法,Regional的题目还是有很多考查思维的题目,所以这次是乱做50道思考题,可能会顺带做一些水题,这些题的简要题解会写到这篇博文里面,希望能 ...
- Python刷题记录(81-90)
Python刷题记录(81-90) 题目来源PTA平台 PAT (Basic Level) Practice (中文) @TOC 1081 检查密码 本题要求你帮助某网站的用户注册模块写一个密码合法性 ...
- 【Pikachu】漏洞练习平台做题记录+原理解析(2.2)XSS姿势和技巧
前言 Pikachu是一个带有漏洞的Web应用系统,在这里包含了常见的web安全漏洞. 如果你是一个Web渗透测试学习人员且正发愁没有合适的靶场进行练习,那么Pikachu可能正合你意. pikach ...
- 概率期望题(期望 DP)做题记录
概率期望题(期望 DP)做题记录 P3830 [SHOI2012]随机树 难点在于第二问:生成树的期望深度. 不 wei zhuo 捏,设 \(dp_{i,j}\) 表示已经有了 \(i\) 个叶子结 ...
- 数数题(计数类 DP)做题记录
数数题(计数类 DP)做题记录 CF1657E Star MST 我们称张无向完全图是美丽的当且仅当:所有和 \(1\) 相连的边的边权之和等于这张完全图的最小生成树的边权之和. 完全图点数为 \(n ...
- CSDN 第六期编程竞赛做题记录
CSDN 第六期编程竞赛做题记录 -- CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/16 9.18周日闲来无视写一下 csdn 的编程题,每期编程 ...
- 退役前的做题记录5.0
退役前的做题记录5.0 出于某种原因新开了一篇. [CodeChef]Querying on a Grid 对序列建立分治结构,每次处理\((l,mid,r)\)时,以\(mid\)为源点建立最短路树 ...
- 2020.7月做题记录
转眼就到了2020的下半年了-前方仍是一片茫然. 长期计划 prufer 序列 2020.07.02-2020.07.04 Problem Finished P2624 [HNOI2008]明明的烦恼 ...
最新文章
- 某程序员对比美团和阿里的卷文化区别:美团重过程,死抠没用细节;阿里更自由,注重结果!...
- 自学python 知乎-马哥教育官网-专业Linux培训班,Python培训机构
- 洗礼灵魂,修炼python(68)--爬虫篇—番外篇之webbrowser模块
- 关于memecache的使用及清楚示意
- 如何使用 C# 中的 Tuple
- 信息学奥赛一本通C++语言——1081:分苹果
- 什么是罗技LogitechFlow技术
- 《构建之法》 第5.5 第6 第7章
- java 读取wav采样数据_读取wav文件中的音频数据操作
- ubuntu 版mysql客户端工具_MySQL GUI工具
- 十、非参数检验:使用python进行卡方拟合优度检验
- (附源码)springboot社区疫情防控管理系统 毕业设计 164621
- wamp mysql使用方法_wamp使用方法【总】
- 【服务器数据恢复】StorNext文件系统数据恢复案例
- js控制form提交
- 设计模式学习笔记(C++实现)(九)--组合模式
- 点云旋转平移(一)—基础知识介绍
- MATLAB如何读取文件中的数据(全网最简便)
- spark.read.jdbc 并发设置
- GAMMA预处理的StaMPS时序InSAR分析(以SBAS为例)
热门文章
- 网站文章被采集?尝试使用这几种方法进行最大防护
- python采集小说网站完整教程(附完整代码)
- Vue 加载 SVG 图片文件
- PMP之敏捷图表之燃起图和燃尽图、累积流量图
- 如何把动态硬盘转换为基本硬盘
- ST推出 28nm MCU ,NXP更狠,推出16nm MCU
- 技术寡头争霸传之:控制开源工具,就控制了整个生态
- Scrapy+Selenium爬取动态网页:no ‘moz:firefoxOptions.binary‘ capability provided
- Android问题集锦之二十 Activity has leaked window that was originall
- 使用Number Insight和Java创建呼叫者ID