大意: 给定字符串$C$, 只含小写字母和'*', '*'表示可以替换为任意小写字母, 再给定字符串$S,T$, 求$S$在$C$中出现次数-$T$在$C$中出现次数最大值. 设$dp[i][j][k]$表示$C$的前$i$位, $S$和$T$分别匹配到第$j$位和第$k$位的最优解 可以用$kmp ...
分类:
其他好文 时间:
2019-05-10 20:35:26
阅读次数:
195
一道经典的贪心题。 我们不妨将物品按照价值从大到小排序,对于每一个物品,我们尽量让它晚一些被售出,这样得到的答案一定是最优解。 我们可以简单证明一下,首先我们先售出获利较大的物品,这个的正确性是显然的。对于某一个物品,我们最好在时间范围之内让它最晚被售出。为什么呢?因为这个物品在允许范围内的任意时间 ...
分类:
其他好文 时间:
2019-05-02 23:12:16
阅读次数:
142
1、动态规划(DP) 动态规划(Dynamic Programming,DP)与分治区别在于划分的子问题是有重叠的,解过程中对于重叠的部分只要求解一次,记录下结果,其他子问题直接使用即可,减少了重复计算过程。 另外,DP在求解一个问题最优解的时候,不是固定的计算合并某些子问题的解,而是根据各子问题的 ...
分类:
其他好文 时间:
2019-04-30 23:53:58
阅读次数:
234
第十八节逻辑回归之交叉熵损失函数梯度求解过程(3) 上一节中,我们讲解了交叉熵损失函数的概念,目标是要找到使得损失函数最小的那组θ,也就是l(θ)最大,即预测出来的结果在训练集上全部正确的概率最大。那我们怎么样找到我们的最优解呢?上节中提出用梯度下降法求解,本节的话我们对其具体细节展开。 先来看下我 ...
分类:
其他好文 时间:
2019-04-30 19:51:12
阅读次数:
121
程序设计:人以群分 思路:二分答案区间,难点在判断上,因为是要求最小值,所以为了得到最优解,我们要先将a数组排序,这样我们从中选择连续的一段一段作为一组这样得到的最小差值才是我们的最优解。我们思路上这样理解:我们从左往右进行分组,设pos=i表示[1~i]的人可以进行分组,开始先判断第一个区间,第一 ...
分类:
其他好文 时间:
2019-04-23 21:02:01
阅读次数:
164
题意翻译 【题目描述】 输入两个A~Z组成的字符串(长度均不超过30),找一个最短的串,使得输入的两个串均是它的子序列(不一定连续出现)。你的程序还应统计长度最短的串的个数。 e.g.:ABAAXGF和AABXFGA的最优解之一为AABAAXGFGA,一共有9个解。 【输入格式】 有多组数据。第一行 ...
分类:
其他好文 时间:
2019-04-23 20:47:55
阅读次数:
180
来一发大暴力 树链剖分无疑了 对于某个询问节点,二分答案所在的深度,若该深度到该节点上的区间和 0,说明其中有满足条件的点,增加深度继续二分,否则减小深度 线段树上的操作:单点修改+区间查询(区间和) 关于时间: 时间复杂度$O(nlog^{2}n)$ 虽然不是最优解法,但能过了,稍微卡一下,总时间 ...
分类:
其他好文 时间:
2019-04-23 09:22:02
阅读次数:
165
此处选用的(LP)形式为: min f = CTx ; s.t. AX = b , X >= 0, 1.可行域K != NULL 时,K为第一卦限中的凸多边形,且必存在顶点; 2.最优解存在则必有基本最优解,可行解存在则必存在基本可行解; 3.在求解之前首先观察决策变量定义域,约束条件的格式,若非标 ...
分类:
其他好文 时间:
2019-04-21 13:07:23
阅读次数:
226
上周面试挂了,反思原因,莫非是因为一道算法题没做好吗?这题目是“判断两条链表是否交叉,若有交叉,返回交叉节点的指针。”为了防止反复在同一个阴沟里翻船,决定把最优解写出来。#include"pch.h"#include<iostream>template<typenameT>classList{public:structNode{Tdata;Node*next;Node(T&
分类:
其他好文 时间:
2019-04-13 23:36:25
阅读次数:
149
什么是动态规划 把原问题分解成若干个相对简单的子问题,然后逐步解决子问题从而解决复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题。 基本思想 若要解出一个相对复杂的问题,我们需要解出其子问题,再合并子问题从而得到原问题的解。 问题特征 最优子结构:当原问题最优解包含了其子问题的最 ...
分类:
编程语言 时间:
2019-04-10 22:09:28
阅读次数:
191