二模 (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 ...
随机推荐
- android下基本json串的生成与解析
以前就用过json串,不过是在java环境下面,如今转移到android环境下,java里面生成解析json串的jar包与android中自带的冲突,所以也只能用安卓自带的. 先前查网上的资料,感 ...
- Java troubleshooting guide
http://www.oracle.com/technetwork/java/javase/toc-135973.html --不同的 OutOfMemoryError/内存溢出,以及相关的解决
- 如何从NFS文件系统启动
笔记,备忘! 步骤: 1.设置好NFS服务器 2.修改uboot启动参数bootarg setenv bootargs console=ttySAC0 root=/dev/nfs nfsroot=19 ...
- ajax 跨域解决 网上资料
PHP中运用jQuery的Ajax跨域调用实现代码,需要的朋友可以参考下 可以在页面定义一个调用方法,如下: 复制代码代码如下: function getData(){ $.getJSON(&qu ...
- retrifit
Retrofit 特点 性能最好,处理最快 使用REST API时非常方便: 传输层默认就使用OkHttp: 支持NIO: 拥有出色的API文档和社区支持 速度上比volley更快: 如果你的应用程序 ...
- virutalbox虚拟机硬盘扩容
大小改变为30GB VBoxManage modifyhd d:\newxp.vdi --resize 30000 然后用diskgenius扩从容量
- C#读写EXCEL
using System; using System.Collections; using System.Configuration; using System.Data; using System. ...
- 也谈谈 Redis 和 Memcached 的区别
本文作者: 伯乐在线 - 朱小厮 . 说到redis就会联想到memcached,反之亦然.了解过两者的同学有那么个大致的印象: redis与memcached相比,比仅支持简单的key-value数 ...
- hdu 1561 The more, The Better (树上背包)
The more, The Better Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- webBrowser1执行函数
IHTMLWindow2 Win = (IHTMLWindow2)webBrowser1.Document.Window.DomWindow;string s = "alert('x');& ...