二模 (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 List实体类去重
版权声明:本文为博主原创文章,未经博主允许不得转载. List特点:元素有放入顺序,元素可重复 Map特点:元素按键值对存储,无放入顺序 Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入 ...
- hdu 1115 Lifting the Stone
题目链接:hdu 1115 计算几何求多边形的重心,弄清算法后就是裸题了,这儿有篇博客写得很不错的: 计算几何-多边形的重心 代码如下: #include<cstdio> #include ...
- ps前端切图常用快捷键
一.新建文件:预设-自定:宽度1920,单位像素,高度自定义:分辨率:72像素/英寸:颜色模式:RGB,8位:背景色:透明:可存储预设,下次新建的时候,直接在预设中,选择那个名称,点确定.视图:显示- ...
- Java 默认/缺省 内存大小,如果没有 -Xms -Xmx
命令 java -XX:+PrintCommandLineFlags -version 会直观的输出下面默认值 -XX:InitialHeapSize=16336768 -XX:MaxHeapSize ...
- eclipse 中发布 maven 项目到 tomcat
第一步:在 eclipse 中 右键 你的项目 Run as --> Maven build...--> Goals: 输入 install run 第二步:在 eclipse 中 ...
- 一个最简html5文档来说明html5的新特性和写法
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="utf-8&quo ...
- [翻译]了解ASP.NET底层架构(八)
原文地址:http://www.cnblogs.com/tmfc/archive/2006/09/04/493304.html [翻译]了解ASP.NET底层架构(完) [翻译]了解ASP.NET底层 ...
- Android 子activity关闭 向父activity传值
使用startActivity方式启动的Activity和它的父Activity无关,当它关闭时也不会提供任何反馈. 可变通的,你可以启动一个Activity作为子Activity,它与父Activi ...
- CentOS中输入yum报错:sudo: unable to execute /bin/yum: No such file or directory
今天尝试更新了下虚拟机CentOS中的python版本后. 运行“yum”命令,就报错:“sudo: unable to execute /bin/yum: No such file or direc ...
- 加载图片、倒计时--Columbia项目总结
CSS3 居然会在隐藏显示的时候触发,真心太神奇了(在ff下是没有用的,在chrome下才阔以) 貌似我还是写了大循环,怎么样才能优化这个循环呢 加载图片:已经用到过好多次了↓ function lo ...