第一题:

题目大意:(难以概括,就不贴了把。)

解题过程:

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的更多相关文章

  1. 二模 (8) day2

    第一题: 题目描述: 有 n 个炸弹,有些炸弹牵了一根单向引线(也就是说引线只有在这一端能被炸弹点燃),只要引爆了这个炸弹,用引线连接的下一个炸弹也会爆炸.每个炸弹还有个得分,当这个炸弹被引爆后就能得 ...

  2. 二模13day1解题报告

    二模13day1解题报告 T1.发射站(station) N个发射站,每个发射站有高度hi,发射信号强度vi,每个发射站的信号只会被左和右第一个比他高的收到.现在求收到信号最强的发射站. 我用了时间复 ...

  3. 二模 (9) day2

    第一题: 题目大意:求满足条件P的N位二进制数的个数.P:该二进制数有至少3个0或者3个1挨在一起.. N<=20000 解题过程: 1.一开始直接写了个dfs把表打了出来,不过没发现什么规律, ...

  4. 二模 (16) day1&day2

    第一题:题目大意: 数列a[0]=a[1]=1, a[n]=a[n-2]*a[n-1]*n,求a[n]的因子个数 mod 1000000007.  n<=1000000 解题过程: 1.递推式还 ...

  5. 二模 (15)day2

    第一题:Alice和Bob两个人正在玩一个游戏,游戏有很多种任务,难度为p的任务(p是正整数),有1/2p 的概率完成并得到2p−1分,如果完成不了,得0分.一开始每人都是0分,从Alice开始轮流做 ...

  6. 二模 (13)day2

    第一题: 题目大意: 给出一个N*M的矩阵,定义一条路径的权值为经过的所有点权值的最大值.求一条从第一行到第N行的路径,使得路径权值最小. N,M<=1000 矩阵内点的权值小于1000. 解题 ...

  7. 又是一个二模02,不过day2

    话说比较简单.除了第三题不会写平衡树啊你妹!!边做边写吧. 机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链 ...

  8. 二模Day2题解

    小明搬家 题目描述 小明要搬家了,大家都来帮忙. 小明现在住在第N楼,总共K个人要把X个大箱子搬上N楼. 最开始X个箱子都在1楼,但是经过一段混乱的搬运已经乱掉了.最后大家发现这样混乱地搬运过程效率太 ...

  9. 二模 (12)day2

    第一题: 题目大意: 有N颗糖,两个人轮流取,每次只能取质数颗,不能取的输.求先取者若必胜,最少需要多少步胜利.(N<=10000) 解题过程: 1.看到N的范围比较小,先打个素数表,然后dp即 ...

  10. 二模 (11) day2

    第一题: 题目大意: 有一本n个单词的字典,其中每个单词的长度不超过4且大于0.现在给你一篇文章,文章中没有分隔符,只有小写字母.现在需要你修改最少的字母,使文章(长度为m 是由字典中的单词构成. n ...

随机推荐

  1. Python学习(4)运算符

    目录 Python 算术运算符 Python 比较运算符 Python 赋值运算符 Python 位运算符 Python 逻辑运算符 Python 成员运算符 Python 身份运算符 Python  ...

  2. 无限极分类,传递一个子ID得到所有父集,用于在前台分层显示标题

    方法: static public function getParents($data,$id){ $arr=array(); foreach ($data as $v) { if ($v['id'] ...

  3. Java中List的使用

    package ch8; import java.util.*; /** * Created by Jiqing on 2016/11/27. */ public class ListTest { p ...

  4. Round robin

    http://www.computerhope.com/jargon/r/rounrobi.htm Round robin Round robin is a method of distributin ...

  5. Java编程思想学习笔记_4(异常机制,容器)

    一.finally语句注意的细节: 当涉及到break和continue语句的时候,finally字句也会得到执行. public class Test7 { public static void m ...

  6. zabbix监控系统客户端安装

    原文:http://blog.chinaunix.net/uid-25266990-id-3387002.html 测试使用agentd监听获取数据. 服务端的安装可以查看http://blog.ch ...

  7. double 逆序

    请设计一个函数,不许用到字符串函数,用数学运算,将double类型数据转换,例如123.456转换成654.321 int _tmain(int argc, _TCHAR* argv[]) { con ...

  8. D3.js 简介和安装

    一.What´s D3.js D3.js是一种数据操作类型的javascript库(也可视其为插件):结合HTML,SVG和CSS,D3可以图形化的,生动的展现数据. D3 的全称是(Data-Dri ...

  9. css 颜色渐变

    .top_nav {     width: 100%;     height: 29px;            /* 如果浏览器不支持渐变,使用图像作为背景 */     background: u ...

  10. PHP 实现多服务器共享 SESSION 数据

    PHP 实现多服务器共享 SESSION 数据 2011 年 12 月 05 日评论暂缺 一.问题起源 稍大一些的网站,通常都会有好几个服务器,每个服务器运行着不同功能的模块,使用不同的二级域名,而一 ...