二模 (13)day2

第一题:

题目大意:

给出一个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进行翻转的时候,相当于把前面那次的操作取消并把删掉的点的权值加上去。

时间: 2024-08-26 02:03:41

二模 (13)day2的相关文章

二模 (8) day2

第一题: 题目描述: 有 n 个炸弹,有些炸弹牵了一根单向引线(也就是说引线只有在这一端能被炸弹点燃),只要引爆了这个炸弹,用引线连接的下一个炸弹也会爆炸.每个炸弹还有个得分,当这个炸弹被引爆后就能得到相应得分.现在要你引爆 k 个炸弹,使得得分最大. 解题过程: 1.一开始想到算出每个入度为0的点打掉之后的得分,然后做个堆,从大到小打,但是路径会有重叠的情况,也就是说打掉一条路径后可能会导致另外一条路径的权值发生变化.. 2.然后听到YYL大神一直在说2次BFS,就想到可以倒着来做..从出度为

PMP备考资料 | 2019/2020年PMP全真模拟题 、一模、二模、三模试题 | PMP章节练习题 | 附带详细答案解析 --- 项目整合管理 等(PMBOK&#174;第六版)

PMP备考资料 | 2019/2020年PMP全真模拟题 .一模.二模.三模试题 | PMP章节练习题 | 附带详细答案解析 --- 项目整合管理 等(PMBOK®第六版),获取:http://t.cn/A6POWgMw 原文地址:https://www.cnblogs.com/chunlynn/p/12252179.html

二模 (9) day2

第一题: 题目大意:求满足条件P的N位二进制数的个数.P:该二进制数有至少3个0或者3个1挨在一起.. N<=20000 解题过程: 1.一开始直接写了个dfs把表打了出来,不过没发现什么规律,然后就尝试着反过来想,先求出不满足条件P的个数,然后总个数减一下.然后就把2^N-ans输了出来,结果发现是个斐波那契数列.(打表大法好啊) 2.如果直接写高精度是要超时并且爆空间的..所以要用滚动数组并且万进制优化(实际上我用了16位数字压成一个long long),貌似20000的数据万进制还是太慢.

二模 (6) day2

第一题: 题目大意:50*50的格子里玩贪吃蛇.给出N步扭头的操作,判断贪吃蛇会在第几步挂掉.(蛇初始向东) 解题过程: 1.一开始的方法是:为了加快速度,只保存头和尾的坐标,然后保存尾巴的方向,每次move先头运动,然后尾巴按照之前的方向运动直到需要改变方向(继续按之前的方向运动将撞到墙壁或者走到一个map[x][y]==0的地方)..事实证明这样是错误的.有可能尾巴继续走会到一个map[x][y]==0的地方,但是还不需要改变方向.. 运气不错,竟然还拿到了60分. 2.AC算法:保存所有点

二模 (2) day2

第一题: 题目描述: 在一个长方形框子里,最多有 N(0≤N≤6)个相异的点.在其中任何-个点上放一个很小的油滴,那么这个油滴会一直扩展,直到接触到其他油滴或者框子的边界.必须等一个油滴扩展完毕才能放置下一个油滴.那么应该按照怎样的顺序在这 N 个点上放置油滴,才能使放置完毕后所有油滴占据的总面积最大呢?(不同的油滴不会相互融合)注:圆的面积公式 V=pi*r*r,其中 r 为圆的半径 解题过程: 1.考虑到最多只有6个点,那么直接dfs实现枚举即可. 2.注意题目要求的是剩余面积...还有如果

又是一个二模02,不过day2

话说比较简单.除了第三题不会写平衡树啊你妹!!边做边写吧. 机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~ 仍然是机智的链接链接:http://pan.baidu.com/s/1bn6I14N 密码:pmsa 第一题: 题目的数据范围非常小,来个 大法狮 吧.$6^6$只有$46656$,加上浮点运算的超

二模 (3) day2

第一题: 题目大意:(难以概括,就不贴了把.) 解题过程: 1.担心被精度问题恶心,就把平均数的地方乘了N,这样只有最后计算的时候才会是小数.. 2.数组保存的时候蛋疼的 没改成double.结果全部WA了. 初始得分0分. 第二题: 题目大意: 给出N件衣服的湿度,然后单位时间里衣服的湿度自然会减少A,单位时间里还可以用烘干机使一件衣服的湿度减少B(烘干的同时会自然减少A).求最少的时间衣服全部干. 解题过程: 1.很明显是考堆的,一个贪心思想就是每次都取出湿度最大的衣服 用一次 烘干机. 2

二模 (5) day2

第一题: 有 N 个人顺时针围在一圆桌上开会,他们对身高很敏感. 因此决定想使得任意相邻的两人的身高差距最大值最小. 如果答案不唯一,输出字典序最小的排列,指的是身高的排列.N<=50 解题过程: 1.最大值最小的问题直接想到二分答案..然后就变成判断环的问题,但是想不到什么好的算法,就直接爆搜了..事实证明全部超时.. 2.正解:首先有一个贪心原则:即最高的和最矮的人肯定不会排到一起,然后他们之间的人必定是递增或者递减的(最矮的递增到最高的,然后最高的递减到最矮的),可用交换的方法证明.那么先

二模 (15)day2

第一题:Alice和Bob两个人正在玩一个游戏,游戏有很多种任务,难度为p的任务(p是正整数),有1/2p 的概率完成并得到1/2p−1分,如果完成不了,得0分.一开始每人都是0分,从Alice开始轮流做任务,她可以选择任意一个任务来做:而Bob只会做难度为1的任务.只要其中有一个人达到n分,即算作那个人胜利.求Alice采取最优策略的情况下获胜的概率. n<=500 解题过程: 1.感觉这题是今天最难的一题.主要是概率的题目基本没有做到过.先做了后面两题,然后花了一个多小时才把这题给想出来.