第一题:
题目大意:

数列a[0]=a[1]=1, a[n]=a[n-2]*a[n-1]*n,求a[n]的因子个数 mod 1000000007.  n<=1000000

解题过程:

1.递推式还真没想出来,就记录每个a[i]的分解质因数的结果,然后转移质因子的个数。可以拿到30分。

2.思路:计算a[i]的时候,a[i]=a[i-2]*a[i-1]*i.  追踪这个i,它到a[i+1]里的时候是一个i,到a[i+2]里的时候是2个i,到a[i+3]里的时候是3个i,到a[i+4]里的时候是5个i,所以可以发现i到a[n]里的时候就有F[n-i+1]个i.(F[i]表示斐波那契数列第i项).

3.根据这个思路就可以来做了,首先很容易想到可以把1~n都分解质因数就可以得出a[n]中各个质因子的个数了,但是对于100w的数据显然是跑不出来的。时间复杂度是O(n*sqrt(n))

4.既然1~n都要分解质因数,那么不妨直接仿照筛法来做。举个例子:对于质数3,可以筛到3,6,9,12... 3,6,12里都有1个质因子3,那么a[n]中的质因子3的个数就可以加上F[n-3+1],F[n-6+1],F[N-12+1].. 而对于9,他有2个质因子3,那么a[n]中的质因子3的个数就可以加上F[n-9+1]*2.  也就是k中有多少个质因子x,就让a[n]质因子x的个数加上多少个F[n-k+1].时间复杂度成功降为O(n*log2n). 但是还是跑不出100w的数据。

5.更进一步优化可以到O(n).  对于数k,假设它有一个质因子p,显然a[n]中的p的个数要加上F[n-k+1].那么加起来之后就先不要管它。但是k/p的每个质因数在a[n]中也要出现F[n-k+1],被我们忽略掉了(实际上是把它放到分解k/p的时候来算),所以当分解真正的k/p的时候,它的每个质因子在a[n]中本来是要出现F[n-k/p+1]次的,但是之前还有一个被我们丢掉的k/p,要出现F[n-k+1]次,所以当我们分解真正的k/p的时候,把它在a[n]中出现的次数当做F[n-k/p+1]+F[n-k+1]次就可以了。

因此在分解k的时候,只要计算最小的质因子p(其实可以任意一个质因数),然后F[n-k/p+1]=F[n-k/p+1]+F[n-k+1]. 非常巧妙.   至于为什么要最小的质因子p,是因为可以用O(n)的筛法处理出每个数最小的质因数。


第二题:

题目大意:

解同余方程组

x mod m1=a1

x mod m2=a2

...

x mod mn=an

解题过程:

1.这题数据真良心,直接暴力枚举+卡时骗到了60分。

2.AC算法和扩展欧几里得有关,我直接补充到之前的关于扩展欧几里得的文章里了。

http://www.cnblogs.com/vb4896/p/4009181.html


第三题:

题目大意:

在三维空间里从(0,0,0)出发,要求走n步回到原地.第k步可以让x,y,z坐标的任意一个+-k,然后还有一些障碍点不能通过,也不能走走过的点,求所有方案。 n<=12.

解题过程:

1.看到n的范围这么小八成就是搜索了,先打了个最裸的搜索,发现竟然很快可以跑出10以内的数据,对于11和12就不大行了。

2.由于第k步只能让一个坐标+k,很多情况下都是永远走不到原点的. 假设是在第k步,当前的坐标是(x,y,z).之后肯定要让xyz都变成0, 那么不考虑障碍什么的,在最理想的状况下,x,y,z在后面的第k+1,k+2...n步中,要么+t,要么-t,要么不变.所以可以倒着dfs预处理出一个数组d[i][j],表示在第i,i+1,i+2..n步里能否达到j.   就可以拿来剪枝了:

d[k+1][-x]==false || d[k+1][-y]==false || d[k+1][-z]==false 的时候直接return.

这样对于n=12且没有任何障碍点的数据都能很快出解。

二模 (16) day1&day2的更多相关文章

  1. 又是一个二模02,不过day2

    话说比较简单.除了第三题不会写平衡树啊你妹!!边做边写吧. 机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链 ...

  2. 二模 (8) day2

    第一题: 题目描述: 有 n 个炸弹,有些炸弹牵了一根单向引线(也就是说引线只有在这一端能被炸弹点燃),只要引爆了这个炸弹,用引线连接的下一个炸弹也会爆炸.每个炸弹还有个得分,当这个炸弹被引爆后就能得 ...

  3. 二模13day1解题报告

    二模13day1解题报告 T1.发射站(station) N个发射站,每个发射站有高度hi,发射信号强度vi,每个发射站的信号只会被左和右第一个比他高的收到.现在求收到信号最强的发射站. 我用了时间复 ...

  4. 二模 (9) day2

    第一题: 题目大意:求满足条件P的N位二进制数的个数.P:该二进制数有至少3个0或者3个1挨在一起.. N<=20000 解题过程: 1.一开始直接写了个dfs把表打了出来,不过没发现什么规律, ...

  5. 二模 (15)day2

    第一题:Alice和Bob两个人正在玩一个游戏,游戏有很多种任务,难度为p的任务(p是正整数),有1/2p 的概率完成并得到2p−1分,如果完成不了,得0分.一开始每人都是0分,从Alice开始轮流做 ...

  6. 二模 (12)day2

    第一题: 题目大意: 有N颗糖,两个人轮流取,每次只能取质数颗,不能取的输.求先取者若必胜,最少需要多少步胜利.(N<=10000) 解题过程: 1.看到N的范围比较小,先打个素数表,然后dp即 ...

  7. 二模 (12) day1

    第一题: 题目大意: 求由N个1,M个0组成的排列的个数,要求在排列的任意一个前缀中,1的个数不少于0的个数.N,M<=5000. 解题过程: 1.看到N,M的范围就明确肯定不会是dp,因为起码 ...

  8. 二模 (6) day1

    第一题: 设 S(N)表示 N 的各位数字之和,如 S(484)=4+8+4=16,S(22)=2+2=4.如果一个正整数 x满足 S(x*x)=S(x)*S(x),我们称 x 为 Rabbit Nu ...

  9. 二模 (4) day1

    第一题: 题目描述: 有一个无穷序列如下:110100100010000100000…请你找出这个无穷序列中指定位置上的数字 解题过程: 1.考虑到1的数目比0少的多,就从1的位置的规律开始分析.前几 ...

随机推荐

  1. delphi的webBrowser操作HTML研究

    测试例子: 外网电脑D:\TEST\delphiTest\webbrowsetest 参考文档: delphi 操作WebBrowser 元素值 http://hi.baidu.com/kinglik ...

  2. :only-child

    如果某个元素是父元素中唯一的子元素,那将会被匹配 如果父元素中含有其他元素,那将不会被匹配.(注:这里的其他元素并不包含文本节点,如:<p><img/>图片</p> ...

  3. 一个Json结构对比的Python小工具兼谈编程求解问题

    先上代码. jsondiff.py #!/usr/bin/python #_*_encoding:utf-8_*_ import argparse import json import sys rel ...

  4. 将java项目转换成Web项目

    http://www.cnblogs.com/kaige123/p/5866446.html 在项目上点击右键,进入Properties配置,点击Project Facets,再点击Convert t ...

  5. PHP获取毫秒时间戳,利用microtime()函数

    PHP获取毫秒时间戳,利用microtime()函数 php本身没有提供返回毫秒数的函数,但提供了一个microtime()函数,借助此函数,可以很容易定义一个返回毫秒数的函数.php的毫秒是没有默认 ...

  6. 动态的计算行高 加载数据源 有多少显示多少 tableView 包含 colloctionView 显示复杂的界面写法

    有时候,我们经常碰到这样的需求 先遵守代理 @interface PublishCollectionCell ()<UICollectionViewDataSource, UICollectio ...

  7. pyenv ipython jupyter

    pyenv pyenv  依赖安装 yum -y install git gcc make patch zlib-devel gdbm-devel openssl-devel sqlite-devel ...

  8. 如何去掉list里重复的数据

    去掉list重复的数据,目前总结的以下三种方法,分别是采用set集合来做.两层循环不用任何方法来做,以及一层循环采用contains()方法来做,如下: 1.采用set结合来做: package te ...

  9. Unity使用反射探头实现地面的镜面反射

    最近在看之前的愤怒机器人demo,它的反射通过一个反射相机实现 我尝试在unity5里用反射探头做出镜面反射,但想要调的准确倒是比较难.. .. 后来朋友发我一份反射探头实现镜面反射的文章,解决了这个 ...

  10. 浏览器URL编码

    jsp页面中通过请求另一个页面并通过url传递了带有中文的参数,结果在接收端获取参数时乱码了 经检查乱码现象指出新在IE浏览器中,其他浏览器火狐.chrome等不会有问题 最后的解决方式是: 手动将此 ...