二模 (10)day1】的更多相关文章

第一题:题目大意: 数列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…
第一题: 题目描述: 有 n 个炸弹,有些炸弹牵了一根单向引线(也就是说引线只有在这一端能被炸弹点燃),只要引爆了这个炸弹,用引线连接的下一个炸弹也会爆炸.每个炸弹还有个得分,当这个炸弹被引爆后就能得到相应得分.现在要你引爆 k 个炸弹,使得得分最大. 解题过程: 1.一开始想到算出每个入度为0的点打掉之后的得分,然后做个堆,从大到小打,但是路径会有重叠的情况,也就是说打掉一条路径后可能会导致另外一条路径的权值发生变化.. 2.然后听到YYL大神一直在说2次BFS,就想到可以倒着来做..从出度为…
有时候在网上办理一些业务时有些需要填写银行卡号码,当胡乱填写时会立即报错,但是并没有发现向后端发送请求,那么这个效果是怎么实现的呢. 对于银行卡号有一个校验算法,叫做Luhn算法. 一.银行卡号码的校验规则 银行卡号码的校验采用Luhn算法,校验过程大致如下: 1. 从右到左给卡号字符串编号,最右边第一位是1,最右边第二位是2,最右边第三位是3-. 2. 从右向左遍历,对每一位字符t执行第三个步骤,并将每一位的计算结果相加得到一个数s. 3. 对每一位的计算规则:如果这一位是奇数位,则返回t本身…
二模13day1解题报告 T1.发射站(station) N个发射站,每个发射站有高度hi,发射信号强度vi,每个发射站的信号只会被左和右第一个比他高的收到.现在求收到信号最强的发射站. 我用了时间复杂度比较高(nlogn)的算法.首先按h排序(从高到低),作为算法的一个"输入"序列(记为A)(标记原来位置). 在保存这个序列的基础上,记录rank=1~n,然后按pos排序.排完记为B序列.这时会生成一个关于pos对应h的rank序列,对应B中的每个元素在A中的位置. 用next[i]…
信用卡Luhn算法(模10)具体的校验过程如下: 1.从卡号最后一位数字开始,逆向将奇数位(1.3.5等等)相加. 2.从卡号最后一位数字开始,逆向将偶数位数字,先乘以2(如果乘积为两位数,则将其减去9),再求和. 3.将奇数位总和加上偶数位总和,结果应该可以被10整除. 例如,卡号是:5432123456788881 则奇数.偶数位分布:5432123456788881 奇数位和=35 偶数位乘以2(有些要减去9)的结果:1 6 2 6 1 5 7 7,求和=35. 最后35+35=70 可以…
1.Luhn算法(模10算法) 通过查看ISO/IEC 7812-1:2017文件可以看到对于luhn算法的解释,如下图: 算法主要分为三步: 第一步:从右边第一位(最低位)开始隔位乘2: 第二步:把第一步所得的每一个数字加入到原来的数中,比如9*2=18,为1+8: 第三步:用以0结尾且大于第二步所获得的数的和的最小整数减去第二步所获得的合即可以获得校验位,如70-67=3,3即为校验位,如果第二步所有数字的和以0结尾,比如30.40.50等,那么校验为0: 2.IMEI校验 IMEI码由GS…
第一题: 题目描述: 一个阅览室每天都要接待大批读者.阅览室开门时间是0,关门时间是T.每位读者的到达时间都不一样,并且想要阅读的刊物不超过5本.每位读者心里对自己想看的刊物都有一个排位,到达之后他会先去找自己最想看的刊物,如果找不到则去找其次想看的刊物.如果找不到任何他想看的刊物,他会开始等待,直到有一本以上的他想看的刊物被人放回原处.当然,他会先去拿其中自己最想看的刊物.当他看完某一本刊物后,就把它放回原处,接着去找自己没看过的最想看的刊物.如此下去,直到看完所有他想看的刊物为止.矛盾出现在…
第一题: 题目大意: 求由N个1,M个0组成的排列的个数,要求在排列的任意一个前缀中,1的个数不少于0的个数.N,M<=5000. 解题过程: 1.看到N,M的范围就明确肯定不会是dp,因为起码要用二维表示状态,就算转移是O(1),也要5000*5000的时间,况且还要高精度,绝对超时. 2.于是想到可以根据Catalan数的推导方法来推出公式. ps:Catalan数的推导方法和一些应用可以参考我之前的博文中的问题二http://www.cnblogs.com/vb4896/p/3874622…
第一题: 题目大意:求出区间 [L,R]里约数最多的数.   L,R<=10^9 解题过程: 1.一开始我就往恶心的数据去想了,比如 L=R=一个超级大的质数.. 那么 用搜索质因子的方法  是不可能搜到它的,于是就放弃了搜索质因子的方法,用了个类筛法.直接暴力求出100w以内所有数的约数,骗到了30分. 2.AC算法:还是枚举质因子,枚举65536以内的所有质数,然后加很多乱七八糟的剪枝,还在研究中...待AC. 第二题: 题目大意:给出一个长度为N的整数数列,要求改变一些数字,使该数列递增.…
第一题: 题目大意: 给出数轴上N棵树的坐标和高度,如果两棵树之间的距离小于其中一颗树的高度,那么就有树会被挡住.因此要把一些树砍矮一点.求砍树的总高度最小值. N<=100000; 解题过程: 1.水题,直接按坐标升序排个序,然后看某棵树左右的树会不会被挡住,砍掉相应的高度即可.. 特殊考虑最左边的树和最右边的树. 初始得分100. 第二题: 求从给定的n个数中取一些数(必须取),使得他们的乘积 mod p = c 的方案数.n≤32,p≤10^9,c≤10^9,a[i]<p,p 是质数 解…