楼主: newkid

[每日一题] puzzleup 2021

[复制链接]
论坛徽章:
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
71#
发表于 2021-10-1 23:00 | 只看该作者
n=3  这一修改多了好多

SQL> with t(c) as (select level-1 from dual connect by level <= 3+1),
  2         s(n,v) as (select 1,cast(c as varchar2(10)) from t
  3                     union all
  4                    select n+1,
  5                           s.v||t.c
  6                      from s,t
  7                     where n < 3*3
  8                       and case when t.c > 0 then
  9                                     case when mod(n+1,3)=1 then
10                                               case when ceil((n+1)/3) = 1 then 1
11                                                    when ceil((n+1)/3) > 1 and t.c <> substr(s.v,-3,1) then 1
12                                                    else 0
13                                               end
14                                          else
15                                               case when ceil((n+1)/3) = 1 and t.c <> substr(s.v,-1,1) then 1
16                                                    when ceil((n+1)/3) > 1 and t.c <> substr(s.v,-3,1) and t.c <> substr(s.v,-1,1) then 1
17                                                    else 0
18                                               end
19                                     end
20                                else 1
21                           end = 1
22                       )
23    select count(v) from s where regexp_count(v,0)=(3*3-(2*3-1)) and n=3*3
24  /

  COUNT(V)
----------
      8667

使用道具 举报

回复
论坛徽章:
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
72#
发表于 2021-10-2 08:53 来自手机 | 只看该作者
3+2比全连通麻烦

使用道具 举报

回复
论坛徽章:
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
73#
发表于 2021-10-2 09:13 来自手机 | 只看该作者
全连通也有麻烦的,比如U形

使用道具 举报

回复
论坛徽章:
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
74#
 楼主| 发表于 2021-10-2 09:15 | 只看该作者
solomon_007 发表于 2021-10-1 23:00
n=3  这一修改多了好多SQL> with t(c) as (select level-1 from dual connect by level  0 then  9         ...

我的理解是三种颜色必须全部用上。你这个包含了两种颜色的结果。

使用道具 举报

回复
论坛徽章:
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
75#
 楼主| 发表于 2021-10-2 09:19 | 只看该作者
网页改了,特别说明三种颜色必须全部用上。3+2 这种两个断开的区域是有效的(这个本来也没什么歧义)。

使用道具 举报

回复
论坛徽章:
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
76#
发表于 2021-10-2 10:14 来自手机 | 只看该作者
先定形状,再上色,应该可以

使用道具 举报

回复
论坛徽章:
24
2010年世界杯参赛球队:韩国
日期:2009-12-20 20:11:33天枰座
日期:2015-07-18 17:23:54托尼托尼·乔巴
日期:2017-01-25 09:38:19秀才
日期:2017-03-02 10:30:14秀才
日期:2017-03-02 10:30:35秀才
日期:2017-06-29 10:16:48技术图书徽章
日期:2017-07-11 09:10:26乌索普
日期:2023-01-05 23:01:5220周年集字徽章-年	
日期:2021-05-27 09:37:50蒙奇·D·路飞
日期:2022-10-27 21:49:38
77#
发表于 2021-10-2 10:59 | 只看该作者
暴力法对答案:3 种颜色都用上, 5个全联通1320, 分成2,3 两组: 960

使用道具 举报

回复
论坛徽章:
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
78#
发表于 2021-10-2 12:33 来自手机 | 只看该作者
2,3两组可以手算,3有121 131 123 132 四种,2有 12 13 两种,换颜色,组合后再乘以4个方向

使用道具 举报

回复
论坛徽章:
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
79#
发表于 2021-10-2 17:29 | 只看该作者
newkid 发表于 2021-10-2 09:15
我的理解是三种颜色必须全部用上。你这个包含了两种颜色的结果。

SQL> with t(c) as (select level-1 from dual connect by level <= 3+1),
  2         s(n,v) as (select 1,cast(c as varchar2(10)) from t
  3                     union all
  4                    select n+1,
  5                           s.v||t.c
  6                      from s,t
  7                     where n < 3*3
  8                       and case when t.c > 0 then
  9                                     case when mod(n+1,3)=1 then
10                                               case when ceil((n+1)/3) = 1 then 1
11                                                    when ceil((n+1)/3) > 1 and t.c <> substr(s.v,-3,1) then 1
12                                                    else 0
13                                               end
14                                          else
15                                               case when ceil((n+1)/3) = 1 and t.c <> substr(s.v,-1,1) then 1
16                                                    when ceil((n+1)/3) > 1 and t.c <> substr(s.v,-3,1) and t.c <> substr(s.v,-1,1) then 1
17                                                    else 0
18                                               end
19                                     end
20                                else 1
21                           end = 1
22                       )
23    select count(*)
24      from s
25     where regexp_count(v,0)=(3*3-(2*3-1))
26       and n=3*3
27       and instr(v,'1')>0
28       and instr(v,'2')>0
29       and instr(v,'3')>0
30  /

  COUNT(*)
----------
      7080

使用道具 举报

回复
论坛徽章:
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
80#
 楼主| 发表于 2021-10-2 20:17 | 只看该作者
solomon_007 发表于 2021-10-2 17:29
SQL> with t(c) as (select level-1 from dual connect by level  0 then  9                              ...

举个例子,你的答案中有:00**0123

图案:
001
010
123

右上角的 1 是孤立的。

使用道具 举报

回复

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

本版积分规则 发表回复

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