楼主: newkid

[精华] puzzleup2012谜题,请用SQL或PLSQL解答

[复制链接]
论坛徽章:
484
ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:02ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:452010新春纪念徽章
日期:2010-03-01 11:04:552010数据库技术大会纪念徽章
日期:2010-05-13 10:04:272010系统架构师大会纪念
日期:2010-09-04 13:35:54ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512011新春纪念徽章
日期:2011-02-18 11:43:32ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412012新春纪念徽章
日期:2012-01-04 11:49:54
201#
发表于 2012-10-9 16:15 | 只看该作者
ryax 发表于 2012-10-8 11:40
你这样算还不是算10次?

你可能理解错了,我的意思是分胜负的掷骰子最多掷10次,10次掷出后要是还不分胜负就开始新的一轮投掷

使用道具 举报

回复
论坛徽章:
484
ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:02ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:452010新春纪念徽章
日期:2010-03-01 11:04:552010数据库技术大会纪念徽章
日期:2010-05-13 10:04:272010系统架构师大会纪念
日期:2010-09-04 13:35:54ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512011新春纪念徽章
日期:2011-02-18 11:43:32ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412012新春纪念徽章
日期:2012-01-04 11:49:54
202#
发表于 2012-10-9 16:17 | 只看该作者
chinagamei 发表于 2012-10-8 17:41
16*5 + 15*4 + 16*2 = 80 + 60 + 32 = 172

你这个有什么依据?你看看176楼我的分析

使用道具 举报

回复
论坛徽章:
520
奥运会纪念徽章:垒球
日期:2008-09-15 01:28:12生肖徽章2007版:鸡
日期:2008-11-17 23:40:58生肖徽章2007版:马
日期:2008-11-18 05:09:48数据库板块每日发贴之星
日期:2008-11-29 01:01:02数据库板块每日发贴之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春纪念徽章
日期:2009-01-04 14:52:28数据库板块每日发贴之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食纪念
日期:2009-07-22 09:30:00
203#
 楼主| 发表于 2012-10-10 00:12 | 只看该作者
lastwinner 发表于 2012-10-9 16:17
你这个有什么依据?你看看176楼我的分析

他也是交错排列,但是留下两行16没有交错:
16
16
15
16
15
16
15
16
15
16
16

使用道具 举报

回复
论坛徽章:
484
ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:02ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:452010新春纪念徽章
日期:2010-03-01 11:04:552010数据库技术大会纪念徽章
日期:2010-05-13 10:04:272010系统架构师大会纪念
日期:2010-09-04 13:35:54ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512011新春纪念徽章
日期:2011-02-18 11:43:32ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412012新春纪念徽章
日期:2012-01-04 11:49:54
204#
发表于 2012-10-10 01:32 | 只看该作者
本帖最后由 lastwinner 于 2012-10-10 02:23 编辑
newkid 发表于 2012-10-10 00:12
他也是交错排列,但是留下两行16没有交错:
16
16

嗯,这是可行的,见楼下,原先我算错了一个地方

使用道具 举报

回复
论坛徽章:
484
ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:02ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:452010新春纪念徽章
日期:2010-03-01 11:04:552010数据库技术大会纪念徽章
日期:2010-05-13 10:04:272010系统架构师大会纪念
日期:2010-09-04 13:35:54ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512011新春纪念徽章
日期:2011-02-18 11:43:32ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412012新春纪念徽章
日期:2012-01-04 11:49:54
205#
发表于 2012-10-10 02:22 | 只看该作者
本帖最后由 lastwinner 于 2012-10-11 00:09 编辑
lastwinner 发表于 2012-10-5 03:42
更正了31*5=165的错误
接着说“所以在第二组圆放进去的时候,实际上占用的高度可以比1.866要小。”
可节 ...

更正一下176楼的做法,原因是第二组圆放进去的时候,可节约的高度算错了

实际上可节约的高度是0.134,而不是此前的0.067,而1-0.134=0.866
所以,可以认为在第一行需要占据高度1的圆放下后,之后每一行只要是交错排列,那就只需要0.866的高度,若不能交错,则需要1的高度

可节约下来的高度为1/2-sqrt(3)/4=0.067,所以在放置了第一组圆后,接下来每一组只需要占用1.799的高度,而在高度不够的时候,如果只放下一组圆的第一行,那么需要的最小高度为1-(1/2-sqrt(3)/4)=0.933

这样的话,按宽为16长为10算
(10-1)/0.866=10.3926,剩余的空间不足以再放下一行圆,所以这样放置总共可以放5组还多一行,每组是16+15=31,5组就是155个,再加上多出的一行,16个圆,总共171个圆
但是需要注意,0.134*2<0.3926<0.134*3,即0.3926+0.866*2>2,所以有一组可以换为每行全是16个,这样就多出来一个圆,因此这样可以最多放下172个圆

换成宽为10长为16算
(16-1)/0.866=17.321,同样,0.134*2<0.321<0.134*3,所以有两行可以换为全是10个圆,但倒数第二行已经是10个了,所以只需要将第17行,即倒数第一行换为10个就行
如此每组的圆的个数就是10+9=19个,总数就是19*8+10*2=172个

即不管横着还是竖着放置,都可以最多放下172个圆

综上,最多是172个圆。(nnd,最后到这里还写成了171,10-11改了)

使用道具 举报

回复
论坛徽章:
0
206#
发表于 2012-10-10 09:38 | 只看该作者
newkid 发表于 2012-10-10 00:12
他也是交错排列,但是留下两行16没有交错:
16
16

就是如此这般

使用道具 举报

回复
论坛徽章:
520
奥运会纪念徽章:垒球
日期:2008-09-15 01:28:12生肖徽章2007版:鸡
日期:2008-11-17 23:40:58生肖徽章2007版:马
日期:2008-11-18 05:09:48数据库板块每日发贴之星
日期:2008-11-29 01:01:02数据库板块每日发贴之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春纪念徽章
日期:2009-01-04 14:52:28数据库板块每日发贴之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食纪念
日期:2009-07-22 09:30:00
207#
 楼主| 发表于 2012-10-10 23:32 | 只看该作者
#12: L Shaped Figure

How many L shaped figures with a width of 1 square can you form on a standard (8x8) chessboard having equal numbers of black and white squares?

If the problem was asked for a 3x4 board, the answer would be 32.

L型图
在一个标准的8X8棋盘上,能够找出多少个宽度为1个方块的L型图,使得每个图含有相同数量的黑色和白色方块?
如果提问针对的是3X4棋盘,答案是32。




穷尽法:
VAR v_len number;

VAR v_wid number;

exec :v_len := 8;
exec :v_wid := 8;

SELECT COUNT(*)*4
  FROM (SELECT LEVEL X1 FROM DUAL CONNECT BY LEVEL<=:v_len)
      ,(SELECT LEVEL Y1 FROM DUAL CONNECT BY LEVEL<=:v_wid)
      ,(SELECT LEVEL X2 FROM DUAL CONNECT BY LEVEL<=:v_len)
      ,(SELECT LEVEL Y2 FROM DUAL CONNECT BY LEVEL<=:v_wid)
WHERE x2>x1 AND y2>y1
       AND MOD(x2-x1+y2-y1,2)=1;

总结公式也很容易。

使用道具 举报

回复
论坛徽章:
484
ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:02ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:452010新春纪念徽章
日期:2010-03-01 11:04:552010数据库技术大会纪念徽章
日期:2010-05-13 10:04:272010系统架构师大会纪念
日期:2010-09-04 13:35:54ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512011新春纪念徽章
日期:2011-02-18 11:43:32ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412012新春纪念徽章
日期:2012-01-04 11:49:54
208#
发表于 2012-10-11 00:12 | 只看该作者
12#题意不明确啊,我一开始还以为无论多少种分法,都要保证不同的分法里黑白块的数量与其他分法里的一样多

使用道具 举报

回复
论坛徽章:
0
209#
发表于 2012-10-11 16:27 | 只看该作者
lastwinner 发表于 2012-10-11 00:12
12#题意不明确啊,我一开始还以为无论多少种分法,都要保证不同的分法里黑白块的数量与其他分法里的一样多

“综上,最多是172个圆。(nnd,最后到这里还写成了171,10-11改了)”
可爱的鹦鹉

使用道具 举报

回复
论坛徽章:
484
ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:02ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:452010新春纪念徽章
日期:2010-03-01 11:04:552010数据库技术大会纪念徽章
日期:2010-05-13 10:04:272010系统架构师大会纪念
日期:2010-09-04 13:35:54ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512011新春纪念徽章
日期:2011-02-18 11:43:32ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412012新春纪念徽章
日期:2012-01-04 11:49:54
210#
发表于 2012-10-12 00:50 | 只看该作者
chinagamei 发表于 2012-10-11 16:27
“综上,最多是172个圆。(nnd,最后到这里还写成了171,10-11改了)”
可爱的鹦鹉

人家就素有点认真啦

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表