二模 (2) day1
第一题:
题目描述:淘汰赛制是一种极其残酷的比赛制度。2n名选手分别标号1,2,3,…,2n-1,2n,他们将要参加n轮的激烈角逐。每一轮中,将所有参加该轮的选手按标号从小到大排序后,第1位与第2位比赛,第3位与第4位比赛,第5位与第6位比赛……只有每场比赛的胜者才有机会参加下一轮的比赛(不会有平局)。这样,每轮将淘汰一半的选手。n轮过后,只剩下一名选手,该选手即为最终的冠军。
现在已知每位选手分别与其他选手比赛获胜的概率,请你预测一下谁夺冠的概率最大。 n<=10
解题过程:
1.概率的题目以前很少碰到,每位选手在第一轮比赛存活下来的概率很好算,因为每个人只可能和一个人比赛,但是第i轮就不好确定了。 比如 第一轮1 和 2比 1存活下来了,3 和 4 比 ,有可能是3 留下来 ,第二轮1和3比,也有可能是 4 留下来,第二轮1和4比。 假设 1 存活到第2轮的概率是 P1,3存活下来的概率是P3,4是P4, 那么只能是这样计算:设1和3对打存活下来的概率是P(1,3),和4对打是P(1,4);那么 1 在第二轮存活下来的概率是 P1* ( P3 * P(1,3)+P3 * P(1,4) ) ;
2.弄清楚了概率的计算公式之后,用F[i][j]表示编号为i的人存活到第j轮的概率。F[i][1]=1。那么需要确定第i个人在第j轮有可能和那些人相比。可以画一个关系树,就是一棵倒过来的二叉树。
以n=3为例,如果1要存活到第3轮,也就是在红色点的位置,他有可能和3,4比赛。同理如果要存活到第4轮,也就是蓝色节点,有可能和5,6,7,8比赛。
确定了哪些人比赛之后,根据公式计算递推即可。初始得分100.
第二题:
题目大意:有n个排成一行的格子,给出m个区间,和每个区间的权w,要求区间里至少有w个格子要种树。求最少的种树总数。 n<=30000,h<=5000;
解题过程:
1.这题以前做过了,直接贪心。先按照区间的右端点升序排序,对于任意一个区间,首先必须要满足它的条件,既然肯定要种树,那么就尽量在靠右边的格子填充。
2.具体实现有2种方法。
A:处理每一个区间时,先扫一遍,看看区间里已经有多少树了,在按照上面的贪心原则种下不够的。
B:每种下一棵树,扫一遍所有区间,如果这棵树在某个区间里,把那个区间需要种的树的个数-1;
我用的是方法B,不过时间明显不如方法A。用了2倍多的时间。但是方法A也有弊端,就是如果每个区间的长度都很大就会很慢。
初始得分100;
第三题:
题目大意:
有2个工程AB,每个工程有m个模块,有n个人,每个人完成同一个工程的不同模块耗时一样,分别给出每个人完成工程A和工程B的模块的时间。求最短的总时间能完成2个工程。
解题过程:
1.一开始想到用F[i][j][k]表示前i个人,完成了工程A的j个模块,工程B的k个模块的最短时间。状态转移方程也很好写:
F[i][j][k]=min{max(F[i-1][p][q],(j-p)*A[i]+(k-q)*B[i])}; 时间复杂度O(n*m^4); 初始得分60分。比预想的要好了。
2.AC算法:有点类似之前做过的快餐问题。用F[i][j]表示前i个人,完成了工程A的j个模块后最多还能完成多少个工程B的模块,但是时间不知道,所以先二分时间,然后判断F[n][m]>=m是否成立即可。
状态转移方程:F[i][j]=max( F[i-1][k] + (time-(j-k)*A[i])/B[i] );
注意初始化一开始要把F[0][0]=0,F[i][j]=-inf,而不是设成0,因为某些状态是永远无法达到的。
二模 (2) day1的更多相关文章
- 二模 (16) day1&day2
第一题:题目大意: 数列a[0]=a[1]=1, a[n]=a[n-2]*a[n-1]*n,求a[n]的因子个数 mod 1000000007. n<=1000000 解题过程: 1.递推式还 ...
- 二模13day1解题报告
二模13day1解题报告 T1.发射站(station) N个发射站,每个发射站有高度hi,发射信号强度vi,每个发射站的信号只会被左和右第一个比他高的收到.现在求收到信号最强的发射站. 我用了时间复 ...
- 二模 (8) day2
第一题: 题目描述: 有 n 个炸弹,有些炸弹牵了一根单向引线(也就是说引线只有在这一端能被炸弹点燃),只要引爆了这个炸弹,用引线连接的下一个炸弹也会爆炸.每个炸弹还有个得分,当这个炸弹被引爆后就能得 ...
- 二模 (12) day1
第一题: 题目大意: 求由N个1,M个0组成的排列的个数,要求在排列的任意一个前缀中,1的个数不少于0的个数.N,M<=5000. 解题过程: 1.看到N,M的范围就明确肯定不会是dp,因为起码 ...
- 二模 (3) day1
第一题: 题目描述: 一个数列定义如下:f(1) = 1,f(2) = 1,f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.给定 A,B 和 n 的值,要求计算 ...
- 二模 (15)day1
第一题: 题目大意: 有两个长度为N的序列A和B,在A和B中各任取一个数相加可以得到N2个和,求这N2个和中最小的N个. 解题过程: 1.这题是刘汝佳<<训练指南>>上的一道经 ...
- 二模 (13)day1
第一题: 题目大意: N个发射站排成一排,求每个发射站左右第一个比它高的发射站. N<=1000000 解题过程: 1.前几天做poj的时候刚好在discuss里看到有一个神奇的东东叫单调栈,正 ...
- 二模 (11) day1
第一题: 题目大意:用邻接矩阵给出一棵树(边权非负)上N个节点相互之间的最短路距离,求这棵树所有边权的和. 解题过程: 1.暂时还没想出来,待AC. 第二题: 题目大意:给出一些单词,然后建立Trie ...
- 二模 (9)day1
第一题: 题目大意: 给出一个n位01串,要么不动它,要么把它删掉一个字符,要么插入一个字符(0或1),要么把一个1变成0,.使得有1的位置号的总和是n+1的倍数,或者是0. 解题过程: 1.直接枚举 ...
- 二模 (10)day1
第一题: 题目描述: 一个阅览室每天都要接待大批读者.阅览室开门时间是0,关门时间是T.每位读者的到达时间都不一样,并且想要阅读的刊物不超过5本.每位读者心里对自己想看的刊物都有一个排位,到达之后他会 ...
随机推荐
- Java 14 类型信息
14 类型信息 运行是识别对象和类的信息 两种方式RTTI 假定编译时已经知道所有的类型反射 运行时发现和使用类的信息 1 RTTI //多态 创建一个具体的对象(Circle Square Tria ...
- linux 试题
1. 在Linux系统中,以 文件 方式访问设备 . 2. 某文件的权限为:drw-r--r--,用数值形式表示该权限,则该八进制数为: 644 ,该文件属性是 目录 . 3. 前台起动的进程使用 C ...
- javascript js中的typeof使用
typeof运算符介 绍:typeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型.它返回值是一个字符串,该字符串说明运算数的类型. 你 知道下面typeof运算的结果吗? typeof ...
- HBase 的存储结构
HBase 的存储结构 2016-10-17 杜亦舒 HBase 中的表常常是超级大表,这么大的表,在 HBase 中是如何存储的呢?HBase 会对表按行进行切分,划分为多个区域块儿,每个块儿名为 ...
- linux下动态链接库.so文件 静态链接库.a文件创建及使用
转摘网址为:http://www.cnblogs.com/fengyv/archive/2012/08/10/2631313.html Linux下文件的类型是不依赖于其后缀名的,但一般来讲: ...
- mysql设置编码
1.修改数据库的编码 将数据库(test)的编码方式修改为utf8,如: ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE ut ...
- Linux下安装最新的Eclipse
欢迎关注我的社交账号: 博客园地址: http://www.cnblogs.com/jiangxinnju/p/4781259.html GitHub地址: https://github.com/ji ...
- [redis] session 保存到 redis 简单实现
参考资料: [session保存到redis简单实现]http://blog.csdn.net/ppt0501/article/details/46700221 [Redis学习]http://blo ...
- wiki-editor语法
1.==标题== 2.::换行缩进 3.[[文件:example.png]] 图片 4.** 名字|名字 链接
- poj----(1470)Closest Common Ancestors(LCA)
Closest Common Ancestors Time Limit: 2000MS Memory Limit: 10000K Total Submissions: 15446 Accept ...