[转]MegCup2015初赛题
门票题:数独有多少种对解线上没有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初赛题的更多相关文章
- 蓝桥杯近三年初赛题之一(15年b组)
临近比赛,自己定时做了近三年的初赛题,不是很理想,10道题平均做对5+道.为了这次比赛,总共做了200题左右吧,估计去北京参加决赛有点难,不过不管怎样,对得起自己万余行代码就好. 一.15年初赛题(第 ...
- CCF NOI plus 201(7)6 初赛题 解题报告
GTMDCCF. 今年这题怎么评价? 去看我在知乎的回答:https://www.zhihu.com/question/66621360/answer/244222388 挨个说一遍. 单项选择题 T ...
- 蓝桥杯近3年初赛题之三(17年b组)
1. 标题: 购物单 小明刚刚找到工作,老板人很好,只是老板夫人很爱购物.老板忙的时候经常让小明帮忙到商场代为购物.小明很厌烦,但又不好推辞. 这不,XX大促销又来了!老板夫人开出了长长的购物单,都是 ...
- 蓝桥杯近三年初赛题之二(16年b组)
1. 煤球数目 有一堆煤球,堆成三角棱锥形.具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),....如果一共有100层,共有多少个煤球? 请填 ...
- NOIP 2011 提高组初赛错题简析
Preface 好久没做初赛题了,据说今年的审核会更加严苛,作为一名去年未PY时只有\(92\)分的蒟蒻,我今年看来是\(90\)分都莫得了 然而今年也没怎么看重初赛,结果现在才来做,翻车到了\(84 ...
- 【生活没有希望】NOIP2010初赛 烽火传递 smartoj1475
整天初赛题做做,生活没有希望 用单调队列优化的dp 因为满足后来的总比先来的(在某些方面)更优 所以能用单调队列 n2变成n #include <cstdio> ],b[],c[]; in ...
- NOIP初赛 之 哈夫曼树
哈夫曼树 种根据我已刷的初赛题中基本每套的倒数第五或第六个不定项选择题就有一个关于哈夫曼树及其各种应用的题,占:0-1.5分:然而我针对这个类型的题也多次不会做,so,今晚好好研究下哈夫曼树: 概念: ...
- NOIP2016提高组初赛(C++语言)试题 个人的胡乱分析 Part 2.
洛谷秋令营day1模拟赛原地爆炸,心态崩了.于是打算写一下初赛题放松一下. 上次胡乱分析到了选择题,这次我想说说后面的题. 问题求解 T1.有一个1x8的方格图形,黑白两色填涂每个方格,两个黑格并不能 ...
- NOIP2016提高组初赛(C++语言)试题 个人的胡乱分析
最近在做历年的初赛题,那我捡几道比较有代表性的题说一下好了 原题可以在这里看:https://wenku.baidu.com/view/10c0eb7ce53a580217fcfede.html?fr ...
随机推荐
- [Linux] Linux 守护进程的启动方法
reference : http://www.ruanyifeng.com/blog/2016/02/linux-daemon.html "守护进程"(daemon)就是一直在后台 ...
- [PHP] ubuntu16.04下 Phpstorm发布项目到apache
reference to : http://blog.csdn.net/qq_23937195/article/details/72953308 在网上找的不靠谱,倒腾了大半天的,终于找到正确姿势QA ...
- PhpSpreadsheet生成Excel时实现单元格自动换行
PhpSpreadsheet是PHPExcel的替代版本,PHPExcel的作者已经停止了更新,今天尝试了使用PhpSpreadsheet生成Excel的时候支持单元格内的自动换行,发现用法其实差不多 ...
- Mysql中与时间相关的统计分析
最近项目需要统计一段日期范围内,根据每分钟.几分钟.每天分别统计汇总某些事件/指标的发生总次数,平均发生次数,因此总结了Mysql中与时间处理.统计相关的资料. 按分钟统计某一时间段内的数据 SELE ...
- 最值得你所关注的10个C语言开源项目
. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接 ...
- windows media server 组件安装后流媒体服务器启动失败
做好的web应用,去客户现场部署的时候发现流媒体服务器不能启动.(现场服务器系统为windows server2008 R2) 自己测试的时候搭建环境没什么问题.从来没有遇到安装windows med ...
- Element table使用技巧详解
1.控制table某些行数不显示 下载附件的需求,有些行有附件,有些没有,所以需要过滤,重点是:Array.filter()使用 <el-card :body-style="{ pad ...
- 【PAT Advanced Level】1013. Battle Over Cities (25)
这题给定了一个图,我用DFS的思想,来求出在图中去掉某个点后还剩几个相互独立的区域(连通子图). 在DFS中,每遇到一个未访问的点,则对他进行深搜,把它能访问到的所有点标记为已访问.一共进行了多少次这 ...
- FrameWork逆向工程之MotioPI
在BI项目建设的过程中我们一般都是有备份的,而且这个是必须有的!特别是例如ETL Model,还有Data Model这一类的元数据,这些东西如果我们没有备份,而恰好的我们的开发模型又在某一天离我们而 ...
- PHP OAuth 2.0 Server
PHP OAuth 2.0 Server PHP OAuth 2.0 Server ⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ ...