- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
NOIp题解A星算法
专题三 NOIP2009
//by wanda1416 版权归原作者
第二题(Hankson 的趣味题, son)
Gcd(x,a0)=a1, Gcd(x,b0)=xb0/b1
设f(a,b) 代表b这个质因子在a中有多少个.
对于a0的任意质因子t, 若f(a0,t)=f(a1,t) 则只需保证f(x,t)≥f(a1,t), 否则f(x,t)=f(a1,t)
对于b1的任意质因子t, 若f(b1,t)=f(b0,t) 则只需保证0≤f(x,t)≤f(b1,t), 否则f(x,t)=f(b1,t)
由于x的所有因子都是b1的子集, 所以我们只需对b1的质因子按如上方法逐个检查这个质因子在x里面的取值范围(若为空则说明无解), 并按照乘法原理统计即可.
关于分解质因子: 由于b1不会超过2*10^9, 大于50000的质因子不会超过1个, 所以我们只要打出50000以内的素数表即可, 若最后除剩的b1仍未除尽, 说明此时b1一定是一个大于50000的素数.
第三题(最优贸易, trade):
做法1:
设Low[i]为从1到i当前所有路径中最便宜的价格. Profit[i]为从1到i当前所有路径中最大获利. 初始时Low[1]=P[1], Low[2..n]=infinity, Profit[1..n]=0.
那么我们可以从1开始广搜, 要注意一个点有可能多次被更新.
从i可以更新到j的条件是:
1. 存在有向/无向边(i,j)
2. Low[j]Low[i] 或 Profit[j]Profit[i]
做法2:
首先考虑没有环的情况, 此时1,n之间要么无法连通, 要么只存在一些单向的无环路径. 对于每一条路径, 由于不能”回头”, 走到某个点i的极优获利显然是i的费用-路径上此点之前的点的最小费用, 而此路径的最大获利便是取获利最大的点.
但是还有很多数据是有环的, 也就是对于有些点对(a,b), 在a走到b之后, b仍然可以走回到a. 在图论中, 我们把点集V, 其中任意两个点可以互达, 叫做强连通分量.
由于强连通分量中的点可以互相到达, 所以在一个强连通中的最大获利就是强连通中最贵的-最便宜的. 我们把所有强连通分量求出来缩为两个点之后. 1与n之间只存在一些无环路径, 对于这些单向的无环路径我们只需要扫描一遍便可求出最大获利.
强连通缩为两个点的具体做法: 把一个强连通缩为a,b 两个点, 连(a,b)边, a的费用为强连通中最便宜的, b的费用为强连通中最贵的. 把指向强连通中任何一个点的所有边改为指向a, 把强连通中任何一点指向强连通外部的边改为由b指出. 这样构出来的保证与原图等价.
第四题(靶形数独, sudoku)
注:很直白的搜索, 由于数独是NP-H问题, 所以我们肯定只能用搜索, 那么关键就在于剪枝了, 我们发现, 对于每个格子都有一个取值范围, 这个范围由其横行/纵行/小九宫格中已填的数决定, 那么无疑我们每次搜索选取值范围最小的格子搜是比较优的.
NOIP2009靶形数独解题报告
这题困扰了我差不多有一年之久,今天终于解出来了。以下是我的解题报告:
【题目大意】
给出一个数独,部分位置已经填上了数,每个格子(x, y) (1 = x, y = 9)有一个权值w(x, y),试找出一种填数独的方案,使得所有格子所填的数字乘以权值之积的和最大,并将这个最大值输出。如果该数独无解,输出-1。
【题目分析】
数独问题是个非常经典的NP完全问题,没有多项式的算法,只能搜索。首先可以想到枚举,但数据给出的数独空格非常多,最多可能有9^57种状态,是效率极低的算法,对于本题的数据是无法得分的。
进一步分析可以想到递归回溯,遇到每个空格,枚举该空格所在的行、列、小九宫已填了哪些数,得出空格可填的数,分别填上这些数并进行下一层的搜索。这样的方法已经远优于枚举,但对于本题大部分数据还是无法出解(实际测试可以得到40%的分数)。为了加快计算一个格子可填的数的速度,我们可以把每行、每列、每个九宫格可填的数用二进制集合表示,每个格子(x, y)当前可填的数的集合就是第x行、第y列以及(x, y)所在小九宫的可填的数集求交。这个操作可以用位运算实现。这样,找可填的数的时间就大大缩短了。实际测试中可以得到75%的分数。
上面的方法所得的分数在考场上已经是相当可观,但本题还有进一步的优化余地。
有时在数独下方会有一些格子只有一两个可填的数字,而在数独上方的一些格子可能会有很多可填的数字。这时如果按照从上往下搜索的顺序搜索,将会扩展出很多无用的状态。如果是用人脑来做数独的话,必定会先填可行方案少的格子,来给其它格子更多的限制,这样可以剪去很多不可行的分支。所以我们可以预处理求出每个空格可填的
您可能关注的文档
- IIR数字滤波器的设计大纲.doc
- II离散数学试卷金陵科技学院.doc
- IMOA船用便携式灭火器指南.doc
- impedancematching阻抗.doc
- IELTS最核心的词汇.doc
- K公路桥与原有道路连接工程方案.doc
- LCDRTC的技术资料及c程序.doc
- LCESIMS法测定混合元酸种主要组分含量.doc
- LeilLowndesConversationConfidenceWorkbook.doc
- LDJB动静态螺栓实验台使用说明书.doc
- 中国国家标准 GB/T 5211.9-2025颜料和体质颜料通用试验方法 第9部分:相同类型着色颜料耐光性的比较.pdf
- 《GB/T 5211.9-2025颜料和体质颜料通用试验方法 第9部分:相同类型着色颜料耐光性的比较》.pdf
- 《GB/T 37228-2025安全与韧性 应急管理 突发事件管理指南》.pdf
- GB/T 23724.3-2025起重机 检查 第3部分:塔式起重机.pdf
- 中国国家标准 GB/T 25163-2025防止儿童开启包装 可重新盖紧包装的要求与试验方法.pdf
- 《GB/T 25163-2025防止儿童开启包装 可重新盖紧包装的要求与试验方法》.pdf
- GB/T 16263.5-2025信息技术 ASN.1编码规则 第5部分:W3C XML模式定义到ASN.1的映射.pdf
- 中国国家标准 GB/T 16263.5-2025信息技术 ASN.1编码规则 第5部分:W3C XML模式定义到ASN.1的映射.pdf
- 《GB/T 16263.5-2025信息技术 ASN.1编码规则 第5部分:W3C XML模式定义到ASN.1的映射》.pdf
- GB/T 11349.2-2025机械振动与冲击 机械导纳的试验确定 第2部分:用激振器作单点平动激励测量.pdf
文档评论(0)