第一题:

题目大意:

给出一个N*M的矩阵,定义一条路径的权值为经过的所有点权值的最大值.求一条从第一行到第N行的路径,使得路径权值最小.

N,M<=1000 矩阵内点的权值小于1000.

解题过程:

1.感觉有点像vijos的晴天小猪,有后向性的dp,当时用了spfa来做,于是这题也用spfa了。听说网格图可以卡掉spfa,以前一直不相信,结果今天就被网格图卡死了。 TLE 5个点。 50分

2.AC算法:考虑点的权值小于1000,可以直接二分答案&&flood—fill 即可。


第二题:

题目大意:

根据文件的路径,打印成下面的表的形式.
data //data文件夹,根目录
|----prob                 //data下面的文件夹
|     |----a.in             //prob下面的文件
|     |----a.out
|----qq                     //data下面的文件夹
|     |----new //qq下面的文件夹
|     |     |----ok.txt    //new下面的文件
|     |----old              //空文件夹
|----xxx.rmvb
生成的列表格式有如下要求:
1. 属于同一层的文件或文件夹位于相同的缩进处,相邻两层文件间差距5个字符;
2. 每个文件夹或文件前有4个'-'(根目录除外),文件夹下方属于文件夹的部分有'|';
3. 属于统一文件夹下的文件或子文件夹按字典序排列。

解题过程:

1.蛋疼的模拟题,考虑如果几个文件在同一个文件夹里,那么它们的路径有很大一部分是一样的。而题目又要求字典序最小,所以可以直接排个序.然后对于每个路径,只要比较它和它前面那个路径,找到它们有多少个目录是一样的,然后不一样的地方自己建立目录。

2.比较路径有个比较方便的方法.就是在路径的前后都先加一个'/',然后处理出每条路径'/'的位置,只要依次比较2个'/'之间的就可以。

初始得分100.


第三题:

题目大意:

给出一行N个数字,要求取出M个,使得和最大.取出的数字不能相邻,第一个和最后一个数字也算相邻.N,M<=200000

解题过程:

1.想不到AC算法.就写了个dp拿部分分。 F[i][j]表示前i个取j个,且第i个必须取的最大值。g[i][j]表示F[1...i][j]的最大值.

那么F[i][j]=g[i-2][j]+a[i].  至于第一个数和最后一个数,分2次dp,一次是第一个数必须取,那么只要在第3到N-1个数里做dp.

第二次是第一个数不能取,那么在第2到N个数里做dp.  滚动数组可以多过一个点,但是权衡一下还是求稳不要这个点了。dp初始化出了点小问题,WA一个点. 初始得分55分(m*2>n 无解一个点)。

2.AC算法(双向链表+堆优化贪心):

先贴一段官方题解:

借鉴网络流中的残余流思想,用堆来维护解决。映射建大根堆,记录每一个数值在堆中的位置好方便删除操作。每回出堆顶元素后,a[k]=a[l[k]]+a[r[k]]-a[k],l[k]和r[k]是k的左边节点和右边节点,即双链表思想,再将a[l[k]]和a[r[k]]删除,将新的a[k]加入堆中。

个人理解:

定义对x进行的翻转操作:如果x没有取,那么就是把它取过来,得分为a[x]。如果x已经取了,那么该操作的意义就是把x放回去,然后取走x-1,x+1  很明显每次翻转操作都会多取一个,只要进行m次翻转操作即可。

双向链表的作用就是只保留能进行这样的翻转操作的点.可以自己画图验证,每对一个点x进行一次翻转操作,L[x]和R[x]就不能进行翻转操作了,需要删去,本次操作的得分为a[x],下次再对x进行翻转的时候,相当于把前面那次的操作取消并把删掉的点的权值加上去。

二模 (13)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. 又是一个二模02,不过day2

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

  7. 二模Day2题解

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

  8. 二模 (13)day1

    第一题: 题目大意: N个发射站排成一排,求每个发射站左右第一个比它高的发射站. N<=1000000 解题过程: 1.前几天做poj的时候刚好在discuss里看到有一个神奇的东东叫单调栈,正 ...

  9. 二模 (12)day2

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

随机推荐

  1. 使用Log4Net完成异常日志处理

    1.在MVC的Modal文件夹建一个异常处理过滤器 public class MyExceptionAttribute:HandleErrorAttribute { public static Que ...

  2. 如何在page_load方法判断是服务器端控件引发的page_load方法

    动态获取单击的服务器端控件的id值 private string getPostBackControlName()    {        Control control=null;        s ...

  3. 使用 jsPlumb 绘制拓扑图 —— 异步加载与绘制的实现

    本文实现的方法可以边异步加载数据边绘制拓扑图. 有若干点需要说明一下: 1.  一次性获取所有数据并绘制拓扑图, 请参见文章: <使用 JsPlumb 绘制拓扑图的通用方法> ; 本文实现 ...

  4. 将HTML5 Canvas的内容保存为图片借助toDataURL实现

    将HTML5 Canvas的内容保存为图片主要思想是借助Canvas自己的API - toDataURL()来实现,具体实现如下,感兴趣的朋友可以参考下哈,希望对你有所帮助 <html> ...

  5. python入门练习题1

    常见python入门练习题 1.执行python脚本的两种方法 第一种:给python脚本一个可执行的权限,进入到当前存放python程序的目录,给一个x可执行权限,如:有一个homework.py文 ...

  6. C#写WPF程序,SQLSever2008 提示插入数据成功,却查询不到数据

    1.提示存储成功,但是数据库中没有数据.今天在用C#写一个wpf程序时,要向数据库Sql server2008 中插入数据,程序提示成功,但打开数据库却没有值; 经过查询发现,数据存储到默认路径下的数 ...

  7. IOS 键盘 禁止输入字母

    在开发中有时候需要数字键盘,但是设置textfield为默认数字键后, 在模拟器上如果用电脑键盘仍然可以输入字母, 在真机上如果使用搜狗等其他输入法也可能会出现可以输入字母的情况.解决方法如下,在te ...

  8. linux-ubuntu常用命令

    常用命令 cd 目录 #跳转到指定目录 cp fileName pfileName #拷贝fileName到pfilename ll #显示目录下的所有文件和目录 uname -a #查看内核版本 c ...

  9. 由“单独搭建Mybatis”到“Mybatis与Spring的整合/集成”

    在J2EE领域,Hibernate与Mybatis是大家常用的持久层框架,它们各有特点,在持久层框架中处于领导地位. 本文主要介绍Mybatis(对于较小型的系统,特别是报表较多的系统,个人偏向Myb ...

  10. linux下解压war格式的包

    linux解压 .war 包 war格式的包可以解决web应用程序部署时候不用按照目录层次结构部署,而是将war包当作部署单元来使用. 下面就讲下怎么去解压 .war 格式的压缩包: 1.安装jdk, ...