二模 (11) 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…
二模13day1解题报告 T1.发射站(station) N个发射站,每个发射站有高度hi,发射信号强度vi,每个发射站的信号只会被左和右第一个比他高的收到.现在求收到信号最强的发射站. 我用了时间复杂度比较高(nlogn)的算法.首先按h排序(从高到低),作为算法的一个"输入"序列(记为A)(标记原来位置). 在保存这个序列的基础上,记录rank=1~n,然后按pos排序.排完记为B序列.这时会生成一个关于pos对应h的rank序列,对应B中的每个元素在A中的位置. 用next[i]…
第一题: 题目描述: 有 n 个炸弹,有些炸弹牵了一根单向引线(也就是说引线只有在这一端能被炸弹点燃),只要引爆了这个炸弹,用引线连接的下一个炸弹也会爆炸.每个炸弹还有个得分,当这个炸弹被引爆后就能得到相应得分.现在要你引爆 k 个炸弹,使得得分最大. 解题过程: 1.一开始想到算出每个入度为0的点打掉之后的得分,然后做个堆,从大到小打,但是路径会有重叠的情况,也就是说打掉一条路径后可能会导致另外一条路径的权值发生变化.. 2.然后听到YYL大神一直在说2次BFS,就想到可以倒着来做..从出度为…
第一题: 题目大意:用邻接矩阵给出一棵树(边权非负)上N个节点相互之间的最短路距离,求这棵树所有边权的和. 解题过程: 1.暂时还没想出来,待AC. 第二题: 题目大意:给出一些单词,然后建立Trie树,然后求出Trie树的节点个数. 解题过程: 1.这题学过Trie树的就直接无脑的建树就可以了.. 2.另外一种解法(待回校写出来验证):先添加一个空单词,然后给所有单词按字典序排序,从第二个单词(第一个是空)开始,看它和它前面的那个单词 的前面部分最多能有几个单词一样,也就是最长的公共前缀len…
第一题: 题目大意: 求由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…
第一题: 题目描述: 有一个无穷序列如下:110100100010000100000…请你找出这个无穷序列中指定位置上的数字 解题过程: 1.考虑到1的数目比0少的多,就从1的位置的规律开始分析.前几项1的位置是 1,2,4,7,11,16. 可以发现 An=An-1 + n-1 . 用点数列的知识可以求出通项公式. An=n*(n-1)/2 + 1 . 如果位置k是1,那么有  k=x*(x-1)/2 +1 .   就变成一个解方程的题,只要判断根是不是正整数就好. 初始得分100: 第二题:…
第一题: 题目描述: 一个数列定义如下:f(1) = 1,f(2) = 1,f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.给定 A,B 和 n 的值,要求计算 f(n)的值.(1≤ A, B ≤1000, 1 ≤n≤100,000,000). 解题过程: 1.方法一:矩阵乘法. 2.方法二:hash.如果 Ak,Ak+1  确定了,那么Ak+2 就确定了,而Ak,Ak+1 的值都是小于7的,所以做个二维hash,记录Ak,Ak+1  第一次出现的位置,就可…
第一题: 题目大意: 有两个长度为N的序列A和B,在A和B中各任取一个数相加可以得到N2个和,求这N2个和中最小的N个. 解题过程: 1.这题是刘汝佳<<训练指南>>上的一道经典例题,考察了堆的运用. 如果把A,B序列都从小到大排序,那么有: A1<=A2<=A3...<=An B1<=B2<=B3...<=Bn 可以把这N2个和用N个递增队列表示出来: A1+B1<=A1+B2<=A1+B3...<=A1+Bn A2+B1&l…
第一题: 题目大意: N个发射站排成一排,求每个发射站左右第一个比它高的发射站. N<=1000000 解题过程: 1.前几天做poj的时候刚好在discuss里看到有一个神奇的东东叫单调栈,正好派上用场...虽然本题2s的时限RMQ+二分应该也不会超时,但是容易写错.而单调栈不仅O(N)的复杂度,写起来也简单.. 2.具体做法是:从左往右边扫一遍,维护一个单调递减的栈.如果当前元素的高度大于等于栈顶,就不断弹出栈中元素直到栈顶元素小于当前元素.那么对于弹出的元素,它右边的第一个比它高的就是当前…
第一题: 题目大意: 有一本n个单词的字典,其中每个单词的长度不超过4且大于0.现在给你一篇文章,文章中没有分隔符,只有小写字母.现在需要你修改最少的字母,使文章(长度为m 是由字典中的单词构成. n≤100000,m≤200000 解题过程: 1.一开始还以为是Trie树,很开心的打完了Trie 结果发现题目看错了..把修改看成了删除,而且就算是删除,我的算法也还是错的. 以后做题还是应该先想好算法保证算法正确再开始写,否则就白白浪费时间了. 2.想不出什么好的方法,我就直接处理每个单词(长度…