
ACM_DP
呆雁1707
这个作者很懒,什么都没留下…
展开
-
Manacher(马拉车)算法详解
原文链接传送门        马拉车用于解决最长回文子串问题,重点是子串,而不是子序列,想了解最长回文子序列的可以看下这篇博客传送门。对于这种问题,当然最简单粗暴的方法就是暴力求解,但太暴力也不好,毕竟会TLE。所以对于求最长回文子串的问题有一种神奇的算法——马拉车算法,神奇就神奇在时间复杂度为O(n)。&转载 2018-03-30 21:13:18 · 25506 阅读 · 11 评论 -
POJ--1163 The Triangle (DP || 记忆化搜索)
原题链接传送门题意:这道题就是让求从三角形顶部到底部结束的路线上传递的最大数字总和。每一步都可以沿着对角线向左或右对角线向下。输入:第一行输入一个整数N:三角形的行数。 一下N行描述三角形的数据。1 < N <= 100,且三角形中所有整数都砸0–99之间。输出:从顶部到底部结束的路线上的最大值。//#include <bits/stdc++.h&g...原创 2018-04-01 21:00:09 · 148 阅读 · 0 评论 -
NYOJ--17 、214单调递增子序列
NYOJ—17 单调递增最长子序列(DP)原题链接传送门 这是一道LIS(单调递增最长子序列)模板题。#include <cstdio>#include <cstring>using namespace std;int dp[10005];char a[10005];int Max;void LIS() { int len ...原创 2018-04-02 12:28:53 · 205 阅读 · 1 评论 -
牛客网:2018年湘潭大学程序设计竞赛 D:Fibonacci进制
原题链接传送门题意:给出一个数x,把x分解表示成若干不同的Fibonacci数的和,Fibonacci:1 2 3 5 8 13 21 34 ...... 1 2 3 4 5 6 7 814 = 13+1 = 8+5+1 = 8+3+2+114分解成的Fibonacci数就代表对应位数的二进制数位上为1即13+1~~1000...原创 2018-05-03 10:03:01 · 199 阅读 · 0 评论 -
HDU 2884 Coins (多重背包)
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2844多重背包模板题,就是他让求的是不大于m的钱数有多少种(多种方案钱数相同算一种),开个数组标记一下就好了。#include <bits/stdc++.h>using namespace std;const int maxn = 110000;int dp[maxn];int ...原创 2019-07-05 10:00:42 · 214 阅读 · 0 评论 -
51Nod 1021 石子归并 (区间dp)
原题链接:https://www.51nod.com/Challenge/Problem.html#!#problemId=1021#include <bits/stdc++.h>using namespace std;const int maxn = 110;int dp[maxn][maxn];int a[maxn];int sum[maxn];int n;int...原创 2019-07-05 11:35:52 · 195 阅读 · 0 评论