NOIP模拟赛第7场题解:

题解见:http://www.cqoi.net:2012/JudgeOnline/problemset.php?page=13

题号为2221-2224.

1.car

边界要当做建筑物。

只需要判断是否存在一个'.',至少三面都是建筑。那么这个点就是所谓的“死胡同”.

2.gcd

利用整数唯一分解定理,求出A,B的所有质因数和该质因数出现的次数。

对A,B的公共质因数取其出现次数的最小值,再将该质因数的最小值次幂累乘起来即可。

3.pair

这是一道非常有质量的题,很考思维。

暴搜的时间复杂度是O(N^2).只能处理n较小的数据。30分应该没有问题。

一般会想到容斥原理。

要统计num和之前的多少数形成一个pair,可以这样计算:与num有一个共同数字的数之和-与num有两个共同数字的数之和+与num有三个共同数字的数之和-……

如何计算与num有k个共同数字之和呢?可以这样做:

利用一个数组bit[2^10],如果当前数包含了数字i(出现多次算一次),则bit[1<<i]++;如果同时出现了i,j,则bit[1<<i]++,bit[1<<j]++,bit[(1<<j)|(1<<i)]++,如果包含i,j,k等多个数字,依次类推。

这样,要计算与num有一个共同数字的数的个数:sum(bit[1<<i])(0<=i<=9 &&num包含数字i)

这种方法很麻烦,而且时间复杂度为O(N*2^10).程序肯定会超时。

注意到bit[2^10]。为什么我们可以用这么小的一个数组来记录所有数“包含哪些数字”的信息?

思考后你会发现,其实对于一个数num,我们只关心它包含哪些数字,至于这些数字出现的顺序,出现的次数,都可以不用考虑。

所以我们把一个数num,转换为一个小于1024的数k。转换规则很简单,如果num包含数字i,则k中右数第i位设为1,否则第i位为0.

这样所有的数既可以映射到1个1024的区间,这样,相当于缩小了n的范围。现在可以用暴搜了解决了。

结果由两部分组成:

第一部分:设cnt[i]表示转换后得到的数i出现的次数。i和其他数形成的pair,即为cnt[i]*cnt[j].(j表示其他数,且i&j!=0)。最后将这些乘积累加,再除以2.(因为每个pair都计算了两次。)

第二部分:

i代表的是相同的一类数num,这些数对应同一个i,它们是两两成pair的,一共可以形成C(cnt[i],2)个pair。(组合计数,从cnt[i]个元素中取出两个,所以为C(cnt[i],2))。所有的i都可以得到一个C(cnt[i],2),这部分全部累加起来。

两部分的和即为答案。

第四题:如果26层循环相互之间没有关系,则是一个连乘即可解决的问题。

现在有些循环变量的边界是外层循环变量,我们称这两层循环有对应关系。

我们把每个循环变量看做一个节点,有对应关系的节点连一条边。具体说:题目说了,任意一个变量的两个边界中,至少有一个为常量,

也就是说之多只有一个边界为变量。如果v2的一个边界为v1,则v1向v2连一条边。这样会得到一个森林,即多棵树。

树中的节点即一个循环变量,所有循环变量给res带来的贡献即该树的结果。

树与树之间是互相独立的。最后的res值等于每棵树代表的结果的乘积。

如何计算一棵树的结果。

设f[root]为以root为根的子树的结果,g(node,number)表示节点node表示的变量取值为number时,其子树的结果。则有下列式子

注意下式中,g(node,number)只给出了一种情形,node所表示的变量的上界为常数;还有另一种情形,即node所表示的变量的下界为常数,g(node,number)的表达式要稍作修改,但其实本质都差不多的。下面的式子中,类似于pi的符号表示取乘积。

这个时间复杂度是O(nm2)的,只能过70%的数据。

注意到,g(node,number)的计算是可以递推得到的,即

这样,时间复杂度为O(nm)了。

NOIP第7场模拟赛题解的更多相关文章

  1. 2018.12.30【NOIP提高组】模拟赛C组总结

    2018.12.30[NOIP提高组]模拟赛C组总结 今天成功回归开始做比赛 感觉十分良(zhōng)好(chà). 统计数字(count.pas/c/cpp) 字符串的展开(expand.pas/c ...

  2. 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程

    数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...

  3. 10.6-10.7 牛客网NOIP模拟赛题解

    留个坑... upd:估计这个坑补不了了 如果还补不了就删了吧

  4. 『7.5 NOIP模拟赛题解』

    T1 Gift Description ​ 人生赢家老王在网上认识了一个妹纸,然后妹纸的生日到了,为了表示自己的心 意,他决定送她礼物.可是她喜爱的东西特别多,然而他的钱数有限,因此他想 知道当他花一 ...

  5. 『7.3 NOIP模拟赛题解』

    T1 gift Description ​ 夏川的生日就要到了.作为夏川形式上的男朋友,季堂打算给夏川买一些生日礼物. ​ 商店里一共有种礼物.夏川每得到一种礼物,就会获得相应喜悦值Wi(每种礼物的喜 ...

  6. NOIp 2015真题模拟赛 By cellur925

    果然我还是最菜的==不接受反驳== Day1 T1:神奇的幻方 思路:直接模拟即可,由于当前放法只与上一放法有关系,用两个变量记录一下即可.10分钟内切掉== 预计得分:100分 实际得分:100分 ...

  7. 20220303模拟赛题解and总结

    目录 总结 A.不幸的7 B.选举 C. 差的绝对值之和 D. 路径通过 总结 初一第一 一般,最后一题没打好 不难发现,教练出水了,可能是信心赛 A.不幸的7 暴力,没有逻辑可言 #include& ...

  8. 2017.08.08【NOIP提高组】模拟赛B组

    Summary 今天的题目也不算很难,唯一一道没做出来的题目是以前做过的,太不应该了. Problem T1 油滴扩展 题目大意 给你一堆点,你准备要在这么多的点当中滴油.你可以自己安排顺序,每次滴油 ...

  9. 2017.08.06【NOIP提高组】模拟赛B组

    Summary 今天的比赛60+100+100=260分,没有想到第一题正解是搜索,我与AK差一段距离,这段距离,叫倒着搜.总的来说不是很难. Problem T1 天平 题目大意 给你N个排序好的砝 ...

随机推荐

  1. 解决f.lux总是弹框定位

    解决f.lux总是弹框定位,直接导入成功定位的注册表文件即可. 以下保存为f.lux.reg 双击导入即可. Windows Registry Editor Version 5.00 [HKEY_CU ...

  2. == 和equals比较

    遇到的问题是 导出excel数据 有些为null  之前进行判断是  o.getEmployeeNumber()!=null 原来是null为字符串类型   字符串类型要用!o.getEmployee ...

  3. C#使用FtpWebRequest上传文件

    System.Net命名空间下的FtpWebRequest类实现了ftp协议的.Net实现. FtpWebRequest.KeepAlive指定在请求完成后服务器是否要马上关闭连接 FtpWebReq ...

  4. haar-like特征(转载)

    浅析人脸检测之Haar分类器方法  [补充] 这是我时隔差不多两年后, 回来编辑这篇文章加的这段补充, 说实话看到这么多评论很是惊讶, 有很多评论不是我不想回复, 真的是时间久了, 很多细节我都忘记了 ...

  5. ZOJ 1074 To the Max

    原题链接 题目大意:这是一道好题.在<算法导论>这本书里面,有一节是介绍如何求最大子序列的.这道题有点类似,区别是从数组变成了矩阵,求最大子矩阵. 解法:完全没有算法功底的人当然不知道最大 ...

  6. c++有默认参数的函数---4

    原创博客:转载请标明出处:http://www.cnblogs.com/zxouxuewei/ 1.默认参数的目的 C++可以给函数定义默认参数值.通常,调用函数时,要为函数的每个参数给定对应的实参. ...

  7. 学号20145220 《Java程序设计》第5周学习总结

    学号20145220 <Java程序设计>第5周学习总结 教材学习内容总结 语法与继承结构 8.1.1使用try.catch java中所有的错误都会被打包为对象,并提供了特有的语句进行处 ...

  8. Ci分开配置网站前台后台的方法

    CodeIgniter 是一个简单快速的PHP MVC框架.EllisLab 的工作人员发布了 CodeIgniter.许多企业尝试体验过所有 PHP MVC 框架之后,CodeIgniter 都成为 ...

  9. 关于linux软连接

    以前一直搞不懂linux软连接用什么 只知道是类似于linux的快捷方式 sudo ln -s /home/hadoop/bigdata/jdk1.7.0_79/ /usr/local/jdk(创建软 ...

  10. 论文笔记之:From Facial Parts Responses to Face Detection: A Deep Learning Approach

    From Facial Parts Responses to Face Detection: A Deep Learning Approach ICCV 2015 从以上两张图就可以感受到本文所提方法 ...