楼主: 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
61#
发表于 2021-10-1 09:57 | 只看该作者
昨晚的发帖又吞了

使用道具 举报

回复
论坛徽章:
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
62#
发表于 2021-10-1 09:57 | 只看该作者


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 mod(n+1,3)=1 then
  9                                   case when ceil((n+1)/3) = 1 then 1
10                                        when ceil((n+1)/3) > 1 and t.c <> substr(s.v,-3,1) then 1
11                                        else 0
12                                   end
13                              else
14                                   case when ceil((n+1)/3) = 1 and t.c <> substr(s.v,-1,1) then 1
15                                        when ceil((n+1)/3) > 1 and t.c <> substr(s.v,-3,1) and t.c <> substr(s.v,-1,1) then 1
16                                        else 0
17                                   end
18                         end = 1
19                     )
20  select count(v) from s where regexp_count(v,0)=(3*3-(2*3-1)) and n=3*3
21  /

  COUNT(V)
----------
       723

使用道具 举报

回复
论坛徽章:
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
63#
发表于 2021-10-1 09:59 | 只看该作者
n=2

with t(c) as (select level-1 from dual connect by level <= 2+1),
     s(n,v) as (select 1,cast(c as varchar2(10)) from t
                 union all
                select n+1,
                       s.v||t.c
                  from s,t
                 where n < 4
                   and case when mod(n+1,2)=1 then
                                 case when ceil((n+1)/2) = 1 then 1
                                      when ceil((n+1)/2) > 1 and t.c <> substr(s.v,-2,1) then 1
                                      else 0
                                 end
                            else
                                 case when ceil((n+1)/2) = 1 and t.c <> substr(s.v,-1,1) then 1
                                      when ceil((n+1)/2) > 1 and t.c <> substr(s.v,-2,1) and t.c <> substr(s.v,-1,1) then 1
                                      else 0
                                 end
                       end = 1
                   )
select * from s where regexp_count(v,0)=1 and n=4

----
4        1220
4        1201
4        1021
4        2110
4        2102
4        2012
4        0112
4        0221

使用道具 举报

回复
论坛徽章:
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
64#
发表于 2021-10-1 18:06 | 只看该作者
利用颜色的对称可以减少列举

使用道具 举报

回复
论坛徽章:
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
65#
发表于 2021-10-1 21:17 | 只看该作者
〇〇 发表于 2021-10-1 18:06
利用颜色的对称可以减少列举

提升效率的好办法!

使用道具 举报

回复
论坛徽章:
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
66#
 楼主| 发表于 2021-10-1 21:55 | 只看该作者
〇〇 发表于 2021-10-1 18:06
利用颜色的对称可以减少列举

说得轻巧,你得扣掉那些交叠的情形,这个很难。

使用道具 举报

回复
论坛徽章:
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
67#
 楼主| 发表于 2021-10-1 21:57 | 只看该作者
solomon_007 发表于 2021-10-1 09:57
SQL> with t(c) as (select level-1 from dual connect by level  1 and t.c  substr(s.v,-3,1) then 1 11  ...

我算出来比你多很多,现在比较忙,下周写代码来比对一下答案。

使用道具 举报

回复
论坛徽章:
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
68#
 楼主| 发表于 2021-10-1 21:59 | 只看该作者
jihuyao 发表于 2021-10-1 08:56
Each cell is equivalent and cell on block has 3 choices and the near cells have 2 choices?

你这是打算手算?先得把五个色块找出来,可以五个联通,或者3+2, 按题意不允许4+1
然后再填色,类似简单的四色定理。这个如果能算出来是很有意思的。

使用道具 举报

回复
论坛徽章:
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
69#
发表于 2021-10-1 22:44 | 只看该作者
newkid 发表于 2021-10-1 21:57
我算出来比你多很多,现在比较忙,下周写代码来比对一下答案。

我感觉自己的不对,我的颜色数字0代表没有着色,那么这个是不受条件控制的,
所以还要加条件区分判断。。。明天再修改。

使用道具 举报

回复
论坛徽章:
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
70#
发表于 2021-10-1 22:59 | 只看该作者
SQL> with t(c) as (select level-1 from dual connect by level <= 2+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 < 4
  8                     and case when t.c > 0 then
  9                                   case when mod(n+1,2)=1 then
10                                             case when ceil((n+1)/2) = 1 then 1
11                                                  when ceil((n+1)/2) > 1 and t.c <> substr(s.v,-2,1) then 1
12                                                  else 0
13                                             end
14                                        else
15                                             case when ceil((n+1)/2) = 1 and t.c <> substr(s.v,-1,1) then 1
16                                                  when ceil((n+1)/2) > 1 and t.c <> substr(s.v,-2,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 * from s where regexp_count(v,0)=1 and n=4
24  /

         N V
---------- --------------------------------------------------------------------------------
         4 1220
         4 1201
         4 1021
         4 2110
         4 2102
         4 2012
         4 0112
         4 0221

8 rows selected

使用道具 举报

回复

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

本版积分规则 发表回复

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