楼主: newkid

[每日一题] PUZZLEUP 2015

[复制链接]
论坛徽章:
548
生肖徽章2007版:猴
日期:2008-05-16 11:28:59生肖徽章2007版:马
日期:2008-10-08 17:01:01SQL大赛参与纪念
日期:2011-04-13 12:08:17授权会员
日期:2011-06-17 16:14:53ITPUB元老
日期:2011-06-21 11:47:01ITPUB官方微博粉丝徽章
日期:2011-07-01 09:45:27ITPUB十周年纪念徽章
日期:2011-09-27 16:30:472012新春纪念徽章
日期:2012-01-04 11:51:222012新春纪念徽章
日期:2020-11-30 22:13:24海蓝宝石
日期:2012-02-20 19:24:27
201#
发表于 2015-9-19 09:14 | 只看该作者
newkid 发表于 2015-9-19 08:47
转了个金牛座!

谢谢

使用道具 举报

回复
论坛徽章:
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#
发表于 2015-9-19 11:04 | 只看该作者
lugionline 发表于 2015-9-17 15:52
AAAB是可以涵盖AAAA的情况的

这个显然不对,比方 BAAA 可以被 AAAA覆盖,但是不能被 AAAB覆盖

下面newkid理解对了,我没说BAAA和AAAB可以相互覆盖

使用道具 举报

回复
论坛徽章:
10
2011新春纪念徽章
日期:2011-02-18 11:43:332014年世界杯参赛球队: 加纳
日期:2014-05-28 11:43:47马上有对象
日期:2014-04-03 14:31:562013年新春福章
日期:2013-02-25 14:51:24蜘蛛蛋
日期:2013-01-30 15:04:41咸鸭蛋
日期:2013-01-21 09:45:36ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:20ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15紫蛋头
日期:2011-06-22 14:32:28双子座
日期:2015-11-06 11:03:23
203#
发表于 2015-9-22 18:44 | 只看该作者
本帖最后由 cszxheap 于 2015-9-22 18:45 编辑
newkid 发表于 2015-9-17 23:11
给你发个章,要哪个?

我的思路和你一样,经过分析后C只能够是4位。我先求出所有四位以下的数,用BITA ...
SELECT a.n a,b.n b,c.n c FROM d2 a,d4 b,d4 c WHERE a.n+b.n=c.n AND BITAND(a.bit,b.bit)=0 AND BITAND(a.bit+b.bit,c.bit)=0
-----------------
前面的做法基本相同,写到这里的bitand我的顺序有不同,随手写成BITAND(b.bit,c.bit)=0 AND BITAND(b.bit+c.bit,a.bit)=0
结果奇慢无比
难道是前者计划里将两位数集合的谓词尽早发生作用降低了成本,从而引发了hash替代了nestloop?

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
204#
发表于 2015-9-22 21:57 来自手机 | 只看该作者
能不用函数就不用

使用道具 举报

回复
论坛徽章:
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
205#
 楼主| 发表于 2015-9-23 03:34 | 只看该作者
cszxheap 发表于 2015-9-22 18:44
SELECT a.n a,b.n b,c.n c FROM d2 a,d4 b,d4 c WHERE a.n+b.n=c.n AND BITAND(a.bit,b.bit)=0 AND BITAN ...

计划不一样了,从HASH JOIN变成了NESTED LOOPS。但也不至于那么慢啊。百思不得其解。

改写成下面这样也很快:


WITH d AS (SELECT LEVEL-1 d,POWER(2,LEVEL-1) bit FROM DUAL CONNECT BY LEVEL<=10)
,num(len,n,bit) AS (
SELECT 1,d ,bit FROM d WHERE d<>0
UNION ALL
SELECT len+1,to_number(n||d),num.bit+d.bit FROM num,d WHERE BITAND(num.bit,d.bit)=0 AND len<4
)
,d2 AS (SELECT n,bit FROM num WHERE len=2)
,d3 AS (SELECT n,bit FROM num WHERE len=3)
,d4 AS (SELECT n,bit FROM num WHERE len=4)
SELECT a.n a,b.n b,c.n c FROM d3 a,d3 b,d4 c WHERE a.n<b.n AND a.n+b.n=c.n AND a.bit+b.bit+c.bit=power(2,10)-1
UNION ALL
SELECT a.n a,b.n b,c.n c FROM d2 a,d4 b,d4 c WHERE a.n+b.n=c.n AND a.bit+b.bit+c.bit=power(2,10)-1
ORDER BY c;

使用道具 举报

回复
论坛徽章:
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
206#
 楼主| 发表于 2015-9-23 23:14 | 只看该作者
#9:




CUBE TRAVEL

You will make a travel through the edges of two cubes connected by their vertices as shown in the figure.

-You will start on A, and finish on B.

-You can pass through the vertices more than once except the finishing vertex B.
-You can't pass through the edges more than once.

In how many different ways can this travel be done?

Note: Two travels having same edges in different order will be considered as different.

你将沿着两个立方体的边进行遍历,这两个立方体通过顶点连接,如图所示,

起点在A,终点是B

除了终点B之外,其他的顶点你可以通过不止一次。
你不能通过同一条边多于一次。

总共有几种不同的遍历方法?

注:如果两种方法经过的边是相同的,但是顺序不同,那么它们被认为是两种不同的方法。
------------
这个用SQL应该没什么问题。

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
207#
发表于 2015-9-24 05:53 来自手机 | 只看该作者
newkid 发表于 2015-9-23 23:14
#9:



都必须通过连接点

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
208#
发表于 2015-9-24 05:55 来自手机 | 只看该作者
把顶点标号,然后直接连的边放在表的一行

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
209#
发表于 2015-9-24 07:57 | 只看该作者
newkid 发表于 2015-9-23 23:14
#9:

A也能多次通过吗

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
210#
发表于 2015-9-24 08:04 | 只看该作者

with t as
(select 'a' p1,'c' p2 , 'ac' l from dual union all
...
)

使用道具 举报

回复

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

本版积分规则 发表回复

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