要判断出这些棍子是否可以相连成一个正方形.PPT

要判断出这些棍子是否可以相连成一个正方形.PPT

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1 10364: Problem C: Square ★★★☆☆ 題組:Problem Set Archive with Online Judge 題號:10364: Problem C: Square 解題者:李濟宇 解題日期:2006年5月15日 題意:輸入4~20根棍子的長度(1~10000),要判斷出這些棍子是否可以相連成一個正方形(端點對端點,且棍子不可折斷),而棍子要全部都用,每一邊可用的棍子根數也不一定要相同。 題意範例: Input: 3 (case數) 4 (棍子數) 1 1 1 1 5 (棍子數) 10 20 30 40 50 8 (棍子數) 1 7 2 6 4 4 3 5 Output: yes no yes 解法:STACK Step 1:先將所有棍子依照長度進行排序。 Step 2:將所有棍子長度總和除以四(表示一邊邊長)。 Step 3:用三個stack來存所用掉的棍子,當stack中的棍子長總和為邊長時,即再往下一個stack取棍子。 Step 4:當三個stack中棍子總和都等於邊長時,表示剩下的棍子長總和也等於邊長,則此時可排成一正方形。 Step 5:若最後無法排滿三個stack,則表示無法排成一正方形。 解法範例: 如: →排序後為21 14 13 11 9 6 4 3 2 1 = 邊長為21 討論: 用recursive的方式將每根棍子放進stack中,如此一來時間複雜度為: O ( n!) 空間複雜度為: O( n) * Stack3 Stack2 Stack1 14 21 6 1 Stack3 Stack2 Stack1 21 Stack3 Stack2 Stack1 14 21 6 1 Stack3 Stack2 Stack1 14 21 4 3 Stack3 Stack2 Stack1 13 14 21 4 6 3 1 Stack3 Stack2 Stack1 13 14 21 6 4 2 3

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档