原文链接

门票题:数独有多少种对解线上没有1的填法?
这道“门票题”虽说只是“热身”,但还是有一定难度的。共有245名选手通过各种方法拿到了门票。下面,我们就为大家总结了一下各种解这道题的方法。

Solution 1:暴力搜索!
数独一共只有 6,670,903,752,021,072,936,960种解法。 并且,在考虑对称性之后,只剩下了 5,472,730,538 种“本质不同”的数独解法。(见wikipedia Mathematics_of_Sudoku)。所以,做这题最暴力的方法就是枚举对称意义下的等价类,之后对每个等价类分别计数即可。当然,这只是一种“理论上”可行的做法,实际要真这么做的话,你的机器要足够好哟。为了确保答案的正确性,我们用了一种和这个类似的方法来验证我们的答案。

Solution 2:对称性
很显然的是,对于一种数独的解法,我们只关心它里面1的位置。一个很自然的想法就是,我们算一算数独解法中对角线没有1的“比例”。已知数独有6,670,903,752,021,072,936,960种解法。通过在每个3x9或9x3的“带”内交换行或者列,可以把每666666=46656个解法(带内部置换有3!=6种方法,一共有6个带)分成一组,共有142980618827612160组。不管你是猜的还是证的,你会发现,每一组内对角线不含1的比例都是一样的!这样,我们只需要任取一个解,通过置换生成它组内的46656个解法,检验一下对角线不含1的比例就行了。如何任取一个解呢?看看海报,上面就印着字典序意最小的那个解。这样算出的答案是:
6670903752021072936960
43/486 = 590223994520382996480

Solution 3:手算!
当然,如果你是用这种方法来做这题的,那么你应该不用来看这份题解了。不过,我们真的亲眼目睹过一位同学在草稿纸上用15分钟就算出来了!这么解的精髓就是充分利用对角线图案本身的对称性,使用容斥原理把问题分成几种情况来讨论。具体的方法我们就不剧透了,想挑战自我的同学自行体会一下吧:-)
这一次可以提示一下,仔细观察数独格子交点,还能找到别的做法,

[转]MegCup2015初赛题的更多相关文章

  1. 蓝桥杯近三年初赛题之一(15年b组)

    临近比赛,自己定时做了近三年的初赛题,不是很理想,10道题平均做对5+道.为了这次比赛,总共做了200题左右吧,估计去北京参加决赛有点难,不过不管怎样,对得起自己万余行代码就好. 一.15年初赛题(第 ...

  2. CCF NOI plus 201(7)6 初赛题 解题报告

    GTMDCCF. 今年这题怎么评价? 去看我在知乎的回答:https://www.zhihu.com/question/66621360/answer/244222388 挨个说一遍. 单项选择题 T ...

  3. 蓝桥杯近3年初赛题之三(17年b组)

    1. 标题: 购物单 小明刚刚找到工作,老板人很好,只是老板夫人很爱购物.老板忙的时候经常让小明帮忙到商场代为购物.小明很厌烦,但又不好推辞. 这不,XX大促销又来了!老板夫人开出了长长的购物单,都是 ...

  4. 蓝桥杯近三年初赛题之二(16年b组)

    1. 煤球数目 有一堆煤球,堆成三角棱锥形.具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),....如果一共有100层,共有多少个煤球? 请填 ...

  5. NOIP 2011 提高组初赛错题简析

    Preface 好久没做初赛题了,据说今年的审核会更加严苛,作为一名去年未PY时只有\(92\)分的蒟蒻,我今年看来是\(90\)分都莫得了 然而今年也没怎么看重初赛,结果现在才来做,翻车到了\(84 ...

  6. 【生活没有希望】NOIP2010初赛 烽火传递 smartoj1475

    整天初赛题做做,生活没有希望 用单调队列优化的dp 因为满足后来的总比先来的(在某些方面)更优 所以能用单调队列 n2变成n #include <cstdio> ],b[],c[]; in ...

  7. NOIP初赛 之 哈夫曼树

    哈夫曼树 种根据我已刷的初赛题中基本每套的倒数第五或第六个不定项选择题就有一个关于哈夫曼树及其各种应用的题,占:0-1.5分:然而我针对这个类型的题也多次不会做,so,今晚好好研究下哈夫曼树: 概念: ...

  8. NOIP2016提高组初赛(C++语言)试题 个人的胡乱分析 Part 2.

    洛谷秋令营day1模拟赛原地爆炸,心态崩了.于是打算写一下初赛题放松一下. 上次胡乱分析到了选择题,这次我想说说后面的题. 问题求解 T1.有一个1x8的方格图形,黑白两色填涂每个方格,两个黑格并不能 ...

  9. NOIP2016提高组初赛(C++语言)试题 个人的胡乱分析

    最近在做历年的初赛题,那我捡几道比较有代表性的题说一下好了 原题可以在这里看:https://wenku.baidu.com/view/10c0eb7ce53a580217fcfede.html?fr ...

随机推荐

  1. FizzBuzzWhizz问题python解法

    FizzBuzzWhizz 你是一名体育老师,在某次课距离下课还有五分钟时,你决定搞一个游戏.此时有100名学生在上课.游戏的规则是: 1. 你首先说出三个不同的特殊数,要求必须是个位数,比方3.5. ...

  2. JSON.parse()和JSON.stringify()方法

    parse用于从一个字符串中解析出json对象,如 var str = '{"name":"huangxiaojian","age":&qu ...

  3. ubuntu下mongodb常用命令

    1. 启动脚本 #!/bin/bash mongod --dbpath /usr/local/mongodb/data1 chmod +x run-mongodb 2. 关闭数据库服务 官方文档说可以 ...

  4. OTL翻译(2) -- OTL流的概念

    OTL流的概念 任何的SQL语句.SQL语句块或存储过程,都是通过输入与输出变量进行处理参数与结果的. 如: 例1:一个SELECT语句把标量的输入变量作为WHERE子句部分的条件:同时SELECT部 ...

  5. Android权限管理PermissionsDispatcher2.3.2使用+原生6.0权限使用

    PermissionsDispatcher2.3.2使用 Android6.0权限官网https://developer.android.com/about/versions/marshmallow/ ...

  6. GO语言基础之struct

    结构struct 1. Go 中的struct与C中的struct非常相似,并且Go没有class 2. 使用 type <Name> struct{} 定义结构,名称遵循可见性规则(即首 ...

  7. SQL-查询排名

    select row_number() over(order by amount) as rank,* from dbo.t_group

  8. 关于COM的Unicode string的精彩论述

    I need to make a detour for a few moments, and discuss how to handle strings in COM code. If you are ...

  9. [Functional Programming] mapReduce over Async operations and fanout results in Pair(rejected, resolved) (fanout, flip, mapReduce)

    This post is similar to previous post. The difference is in this post, we are going to see how to ha ...

  10. Struts2远程代码执行漏洞预警

    近期struts2 框架再现高危远程命令执行漏洞,漏洞编号S2-045,CVE编号CVE-2017-5638.利用此漏洞可对使用了struts2框架的网站进行远程命令执行,对服务器造成威胁.请相关单位 ...