zoukankan      html  css  js  c++  java
  • 二模 (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进行翻转的时候,相当于把前面那次的操作取消并把删掉的点的权值加上去。

     

  • 相关阅读:
    《校园封神榜》第二阶段个人工作总结——第五天
    寻找水王2——寻找三个小水王
    站立会议04(第二次冲刺)
    站立会议03(第二次冲刺)
    站立会议02(第二次冲刺)
    站立会议01(第二次冲刺)
    测试计划
    评价cnblogs.com的用户体验
    第一次冲刺各组评价的回复
    第一次冲刺对各组的评价
  • 原文地址:https://www.cnblogs.com/vb4896/p/4046911.html
Copyright © 2011-2022 走看看