zoukankan      html  css  js  c++  java
  • 20190812

    ——“梦某的名字,是希望的意思。”  (一口毒奶

    ——“为了野心.和必须得到的东西.”

     某诺已经菜成渣了.

     不是命中必然,是运里偶然.

     $T1$ 码了半小时,调编译,过样例,弃。

     剩下时间刚$T2$,码了一个过不去样例的DP,又想到建$m^2$的边,在树上找最大价值的链,嘤?还是过不了样例……时间不多以后打算打搜索,还是过不了样例w&#@¥×%……#&×@@……¥&  吃了$S$一样难受.

     自觉的倒着翻,$T2$  $WA60$  ? 真的是运气,真的,数据水带来的假象。

     ——“那谁,**诺啊,你那$T3$看了没有?”

     ——“看了,看了。”(是啊,只是看了。都没有QJ一手

     ——“不做$T3$,那这场考试也是失败的啊......”

     对,我太失败了..我配不上自己的野心。

     


    $T1$. 引子

     模拟 水题 过了 模拟题记得注意边界。


      

    $T2$. 可爱精灵宝贝

     数据水,瞎打有分。非正解搜索,及时$break$。

     正解DP 俩数组 $f[i][j][t]$   $g[i][j][t]$ .

     分别代表经历 $[i,j]$ 一段后位于$i$和$j$的最大价值

     对于一个区间,遍历一遍就好,就是遇到物品就拿,反正不亏。

     考虑扩展

     从初位置向外转移到 $[i,j+1]$,$[i-1,j]$,思考为什么,打过$DFS$或$BFS$的应该清楚,初状态只有一个,拿$BFS$想,每次只会向左右扩展,而从左右扩展到现在并不能保证左右合法(也不是不行,加判断语句就好了,我的$WA60$思路就是由前一个状态转移到现在,不过特别麻烦,而从现在扩展到两边却很容易)扩展时考虑当前可不可拿就好。

     暂提一个坑点,我们给出状态赋值时,在$sort$完的新序列找到$k$点的位置,某$hx$如下打道:

     $int$ $st;$

     $for(int i=1;i<=m;i++)$

      $if(a[i]<=k) st=i;$

      $else break;$

     $memset(f,0xcf,$ $sizeof$ $ f);$

     $f[st][st][1]=0;$

     考虑为什么错

     当你的k本身就是一个贡献点时,这样做消除了k的贡献。

     你在原序列中插入一个新的 $k$ ,贡献呢,是$0$吗?如果序列中本来有 $k$,如果选择了可以贡献答案的那个 $k$ ,这个 $k$ 的贡献就没了。

     如何避免? 打上花火($pa$ $to$ $hi$ $ta$ $te$ $saita$,$ha$ $na$ $mi$ $wo$ $mei$ $teita$突然鬼畜  标记强行查找,即精准到插入的那个$k$

     或者判断是否原序列中有,给初值附上贡献而不是$0$.

     或改变$sort$第二优先级,其实也是打标记思想精准找到插入的那个$k$.

     实现起来很简单的。


    $T3$. 相互再归的鹅妈妈

     不会,鸽了,刘坑。


  • 相关阅读:
    Linux sort命令使用方法
    Linux awk命令使用方法
    Linux sed命令使用方法
    Python调用外部系统命令
    [ Python入门教程 ] Python正则表达式与re模块介绍
    [ Python入门教程 ] python异常处理方法
    Python操作远程服务器paramiko模块介绍
    Hibernate的应用及注解开发
    JQuery Validate插件与实现
    Struts2的核心——拦截器
  • 原文地址:https://www.cnblogs.com/bilibiliSmily/p/11342378.html
Copyright © 2011-2022 走看看