二模 (3) day2
第一题:
题目大意:(难以概括,就不贴了把。)
解题过程:
1.担心被精度问题恶心,就把平均数的地方乘了N,这样只有最后计算的时候才会是小数。。
2.数组保存的时候蛋疼的 没改成double。结果全部WA了。 初始得分0分。
第二题:
题目大意:
给出N件衣服的湿度,然后单位时间里衣服的湿度自然会减少A,单位时间里还可以用烘干机使一件衣服的湿度减少B(烘干的同时会自然减少A)。求最少的时间衣服全部干。
解题过程:
1.很明显是考堆的,一个贪心思想就是每次都取出湿度最大的衣服 用一次 烘干机。
2.while 循环的条件写错了,一开始写的是 当湿度最大的衣服 湿度比B小的话就 退出,然后剩下的衣服自然就会干了。 然后就脑残地把剩下的衣服 自然干的时间当成了1,ans++后输出。 初始得分40分。
3.另外一个比较不错的思路:二分答案,然后扫一遍,如果 限定时间内不能自然干的,自然就要用烘干机。然后累计烘干机的使用次数,如果比限定时间大 说明答案太小。时间稍微慢了点,但也能AC。
第三题:
题目大意:给出N个数,求最大的区间,使得区间的最左边的元素严格最小,最右边的元素严格最大(严格最大最小即中间不能有相同的)。
解题过程:
1.由于和区间最大最小值有关,就先用ST算法做一次RMQ,求出区间的最大值最小值的位置(注意是位置而不是值)。然后用递归解决。对于一个区间[L,R],设最小值所在的位置是min_pos,最大值所在的位置是max_pos,那么分下面2种情况讨论。
A:min_pos<max_pos,那么递归处理[L,min_pos-1],[max_pos+1,R],对于区间[min_pos,max_pos],还要看他们之间有没有出现和两端的值相等的元素,如果没有,那么该区间就是合法的,如果中间有最小值,且位置是t,那么递归处理[min_pos,t-1] [t,max_pos], 如果中间有最大值,且位置是t,那么同理递归处理区间[min_pos,t]和区间[t+1,max_pos].
B:min_pos>max_pos,那么递归处理[L,max_pos],[min_pos,R],[max_pos+1,min_pos-1];
初始得分80分,递归层数过多爆系统栈了。。。自己手写栈后AC。
2.其实 对于情况A中 区间里有多个极值的情况,只要修改一下RMQ部分(当区间有多个最小值的时候,取最右边的,最大值取最左边的)。这样就保证了 区间[min_pos,max_pos]内不会出现多个极值的情况。 这样减少了部分递归次数后,不用手写栈也能过。
3.来自YYL的另类方法:枚举区间的左端点,利用min[L,R]随着R的增大是非增的,二分右端点直到找到最大的R,使得min[L+1,R] 大于num[L];那么区间[L,max_pos[L+1,R]]就是符合要求的。(RMQ时如果有多个最大值,需要取最右边的)
4.写题解时突然想到的算法:枚举区间的左端点,用RMQ找右端点。 对于一个确定的左端点L,需要找到一个最大的R,使得min[L+1,R] 大于num[L],且max[L+1,R]==num[R]。
R初始为max_pos[L+1,N],然后不断R=max_pos[L+1,R-1]直到找到第一个符合要求的。
二模 (3) day2的更多相关文章
- 二模 (8) day2
第一题: 题目描述: 有 n 个炸弹,有些炸弹牵了一根单向引线(也就是说引线只有在这一端能被炸弹点燃),只要引爆了这个炸弹,用引线连接的下一个炸弹也会爆炸.每个炸弹还有个得分,当这个炸弹被引爆后就能得 ...
- 二模13day1解题报告
二模13day1解题报告 T1.发射站(station) N个发射站,每个发射站有高度hi,发射信号强度vi,每个发射站的信号只会被左和右第一个比他高的收到.现在求收到信号最强的发射站. 我用了时间复 ...
- 二模 (9) day2
第一题: 题目大意:求满足条件P的N位二进制数的个数.P:该二进制数有至少3个0或者3个1挨在一起.. N<=20000 解题过程: 1.一开始直接写了个dfs把表打了出来,不过没发现什么规律, ...
- 二模 (16) day1&day2
第一题:题目大意: 数列a[0]=a[1]=1, a[n]=a[n-2]*a[n-1]*n,求a[n]的因子个数 mod 1000000007. n<=1000000 解题过程: 1.递推式还 ...
- 二模 (15)day2
第一题:Alice和Bob两个人正在玩一个游戏,游戏有很多种任务,难度为p的任务(p是正整数),有1/2p 的概率完成并得到2p−1分,如果完成不了,得0分.一开始每人都是0分,从Alice开始轮流做 ...
- 二模 (13)day2
第一题: 题目大意: 给出一个N*M的矩阵,定义一条路径的权值为经过的所有点权值的最大值.求一条从第一行到第N行的路径,使得路径权值最小. N,M<=1000 矩阵内点的权值小于1000. 解题 ...
- 又是一个二模02,不过day2
话说比较简单.除了第三题不会写平衡树啊你妹!!边做边写吧. 机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链 ...
- 二模Day2题解
小明搬家 题目描述 小明要搬家了,大家都来帮忙. 小明现在住在第N楼,总共K个人要把X个大箱子搬上N楼. 最开始X个箱子都在1楼,但是经过一段混乱的搬运已经乱掉了.最后大家发现这样混乱地搬运过程效率太 ...
- 二模 (12)day2
第一题: 题目大意: 有N颗糖,两个人轮流取,每次只能取质数颗,不能取的输.求先取者若必胜,最少需要多少步胜利.(N<=10000) 解题过程: 1.看到N的范围比较小,先打个素数表,然后dp即 ...
- 二模 (11) day2
第一题: 题目大意: 有一本n个单词的字典,其中每个单词的长度不超过4且大于0.现在给你一篇文章,文章中没有分隔符,只有小写字母.现在需要你修改最少的字母,使文章(长度为m 是由字典中的单词构成. n ...
随机推荐
- javaMail编写案列
package common.impl; import java.util.Properties; import javax.mail.BodyPart; import javax.mail.Mess ...
- mysql 存储过程中limit
1.mysql的高版本(5.5),存储过程中的limit可以使用变量,如下:select * from student limit iStart,iNum; 2.mysql的低版本(5.1),存储过程 ...
- 在Android中查看和管理sqlite数据库
在Android中可以使用Eclipse插件DDMS来查看,也可以使用Android工具包中的adb工具来查看.android项目中的sqlite数据库位于/data/data/项目包/databas ...
- 树状数组求逆序对:POJ 2299、3067
前几天开始看树状数组了,然后开始找题来刷. 首先是 POJ 2299 Ultra-QuickSort: http://poj.org/problem?id=2299 这题是指给你一个无序序列,只能交换 ...
- opencl初探-sobel检测
sobel检测的C版本,neon和GPU的时间比较. Platform: LG G3, Adreno 330 ,img size 3264x2448 sobel: C code neon GPU 73 ...
- 基于 php-redis 的redis操作
基于 php-redis 的redis操作 林涛 发表于:2016-5-13 12:12 分类:PHP 标签:php,php-redis,redis 203次 redis的操作很多的,下面的例子都是基 ...
- 在Linux或者Unix下打开,每一行都会出多出^M这样的字符
Windows上写好的文件,在Linux或者Unix下打开,每一行都会出多出^M这样的字符,这是因为Windows与*nix的换行符不同所致,我们看看文件格式有什么不同. 在Linux下查看文件格式: ...
- michael的沟通秘籍
1 多准备几个邮件模板2 lower expectation over delivery less promise extra give3 involve resource earliar 尽早接手公 ...
- CLGeocoder Error Domain=kCLErrorDomain Code=2
使用CLGeocoder解码地址时,遇到错误 Error Domain=kCLErrorDomain Code=2 代码: #pragma mark 跟踪定位代理方法,每次位置发生变化即会执行(只要定 ...
- Linux远程管理
若想要远程管理服务器,对于Windows系统,应该比较容易理解,通过window系统自带的远程桌面客户端即可登录远程服务器,从而实现在本地对远程服务器的管理.然而对于linux服务器来说这种方法就不行 ...