zoukankan      html  css  js  c++  java
  • p1265

           突然想起来自己还有个博客要经常写。。

           昨天先是把《程序员的数学》看完了,好看是好看,但是编程用得上的很少我还都会。然后开始复习动态规划,翻看学长们的ppt,感觉学到了很多。

           做的前几道题都挺简单的,但是P1265就花了我一晚上时间,这里着重讲一波。

           刚开始觉得和之前差不多,写了个

                                            

    然后把a[n][m]一输出,感觉挺对。但是输出位置我就很蒙蔽了。想了很久后认为要从根本处着手改一下(可能叫状态转移方程?),于是想到了新的方程

    完美,这样就可以在更新状态的时候顺便判断要不要放进去。

    这时候想起了学的并不是很好的并查集,决定试一下。

    但是这样肯定也不对啊,比如第一个花瓶我输出哪个就不知道。

    就又从头思考这个题,考虑从后往前判断不就好了,然后就这样搞了

    第一排的预处理就不说了,flag先全部赋值成0用ans[0][i]保存位置,输出ans[n][m]和ans[0][i]就好了,感觉非常的对。

    然后交上去发现有一组数据过不了,第三个应该输出12,但是我输出了20。看着一大群数据很尴尬,我也不能自己手算吧,输出一波ans[3][12]和ans[3][20]发现是一样的。那证明第三个花放在12与20是等价的,而题目要求字典序排列。

    然后我就回寝想这个问题,怎么样保证合法还要输出字典序呢?然后今天早上起来坐在实验楼楼梯上睡觉的时候就想出来了。

    哎呀我怎么这么机智,赶紧交上去了,然后来写博客。

           

  • 相关阅读:
    ubuntu远程windows桌面
    spring boot 给返回值加状态 BaseData
    spring boot 拦截异常 统一处理
    IntelliJ IDEA spring boot 远程Ddbug调试
    IntelliJ IDEA 常用插件
    spring boot 请求地址带有.json 兼容处理
    spring boot 接口返回值去掉为null的字段
    spring boot 集成disconf
    Spring boot 自定义拦截器
    Linux下安装MySQL
  • 原文地址:https://www.cnblogs.com/qywyt/p/8553362.html
Copyright © 2011-2022 走看看