题解
Honour Van
新款人工智障
展开
-
洛谷P2895 [USACO 08FEB] Meteor Shower S 代码示例详解
P2895一道广搜,看似普通实则巧妙的好题。对地图的限制是动态的。初始化的覆盖很有特点地图是开放的。(相对于闭环的经典地图中最短路的广搜问题)原创 2020-06-16 13:16:24 · 743 阅读 · 1 评论 -
洛谷 P1006传纸条 ——四维DP,以及其对应的去重方法
四维DP的典型模板题。注意其中去重使用的思路。因为两条路不能有任何重复的节点,所以这两条路必然分立在整个地图当中,其中一者i(行号)大,另一个j(列号)大。所以对于第一条路,其横纵坐标的枚举是自由的,第二者有了一定的限制。#include <bits/stdc++.h>using namespace std;int dp[52][52][52][52], a[52][52], n, m;int max(int a, int s, int d, int f)//通过重载max函数,将使得原创 2020-06-16 09:24:25 · 543 阅读 · 0 评论 -
[模板] LIS(最长上升子序列)和 LCS(最长公共子序列)
此段无比伟大而清晰的解释来自阮行止。我仅调整了B序列的顺序,使之最初不为顺序序列(因为我的代码实现在这里栽了跟斗orz)。关于(LCS)为什么可以转化成LIS问题,这里提供一个解释。比如这样的两个序列:A:3 2 1 4 5B:2 5 4 1 3我们不妨给它重新编个号,使得A的逆序为0,即3-a(3标成a),2-b,1-c,4-d,5-e。于是成为:A: a b c d eB: b e d c a这样标号后,LCS长度显然不会因此改变,毕竟没有对原有序列进行任何相对位置的改变。于是.原创 2020-06-14 20:33:38 · 452 阅读 · 0 评论 -
[杂记] 近日练习中出现的小问题
数据清洗:注意排序是按照大小而不是输入顺序进行的。两次迷宫代表着两种不同的回溯结构:一种是更新-判断-深入-回溯,另一种是判断-更新-深入-回溯,前一种往往因为在深入之前判断,所以可能会减少递归函数的调用。这个问题已经在上午的博文当中得到了解决。广搜不一定要用结构体,如果只用一个值来确定当前状态,使用辅助数组很方便。搜索剪枝的时候,要先判断越界,再判断是否vis,否则会RE。拯救公主问题:对地图规模进行确定的m和n,注意输入量的先后和对应关系,这很重要数据规模:调试的时候应该用小数,但提交的时候.原创 2020-06-14 18:26:00 · 415 阅读 · 0 评论 -
[pieces] nlogn的LIS(最长上升子序列)实现
使用贪心法,将第k位定义成长为k的LIS末端可能的最小值。思路如下我们构建的存储答案的数组(暂且称为dp数组),其第kkk位表示:长度为kkk的LIS中,末端元素最小的那个LIS的末端元素。①扩展情形:条件:如果要扩展出k+1k+1k+1长的LIS,那么对当前读入的tmp,必须要有长为kkk的LIS且末端元素比tmp小。事实:而我们先前已经得到长为kkk的LIS,其末端元素存储为dp[ptr-1],所以如果末端元素dp[ptr-1]比tmp小,那么就能实现前述的条件。结果:长度增加,获得更优解。原创 2020-06-13 08:54:17 · 455 阅读 · 0 评论 -
[pieces] 画家问题 平方指数到线性指数枚举 两种解法
有一个正方形的墙,由N*N个正方形的砖组成,其中一些砖是白色的,另外一些砖是黄色的。Bob是个画家,想把全部的砖都涂成黄色。但他的画笔不好使。当他用画笔涂画第(i, j)个位置的砖时, 位置(i-1, j)、 (i+1, j)、 (i, j-1)、 (i, j+1)上的砖都会改变颜色。请你帮助Bob计算出最少需要涂画多少块砖,才能使所有砖的颜色都变成黄色。原创 2020-06-10 18:28:59 · 621 阅读 · 0 评论 -
Luogu P1650/POJ2287 两序列比较的优胜次数最大化的贪心博弈问题(田忌赛马) 以及基于元素的贪心法证明
贪心法容易理解,但不容易构想出来。关于理解完全可以使用反证的思路,**假设某一步不这么走,就不能取得最优**。这句话正是贪心法证明的核心。我们将通过法一对这个证明方法加以具体化说明,尽管法一是基于元素的贪心。另外多种贪心方法最后都可以证明是同质的。这将在法二中给予说明。原创 2020-06-07 17:08:04 · 530 阅读 · 0 评论 -
数据离散化之后 得到的数组有什么直观含义? 洛谷P1966
博文链接:如果还没有了解过离散化戳这里问题链接:P1966 火柴排队题目给出了INT_MAX级别的数组。这不仅对面子内存是一个挑战,最主要的是分散的数组不利于我们进行连续操作。但是离散化究竟有什么直观的含义呢?好像很多人都同我一样觉得这个很难理解。比如这样一位同学:(我太懂了!!)直入主体数组准备比如思考这样一个乱序的大幅度序列b,构建它的辅助数组a,用来表明序号变化,同时减小数组元素的变化幅度。a: [1] [2] [3] [4] ------------> b:原创 2020-05-25 23:10:55 · 537 阅读 · 0 评论