模板
多A几道题就好
一名学生
展开
-
动态规划的基础模板
首先是01背包for(int i=1;i<=n;i++) for(int j=V;j>=w[i];j--) dp[j]=max(dp[j],dp[j-w[i]]+v[i]);然后是完全背包for(int i=1;i<=n;i++) for(int j=w[i];j<=V;j++) dp[j]=max(dp[j],dp[j-w[i]]+v[i]);多重背原创 2016-07-28 23:34:17 · 1006 阅读 · 0 评论 -
最长公共子序列问题模板(不要求连续)
首先我贴个简单的模板,用dfs来解决的int LCS(int i,int j){ if(i>=lena || j>=lenb) return 0; if(a[i]==b[j]) return 1+LCS(i+1,j+1); else return LCS(i+1,j)>LCS(i,j+1)? LCS(i+1,j):LCS(i,原创 2016-08-02 15:36:05 · 434 阅读 · 0 评论 -
LIS 的模板
代码来自别人的博客先是比较简单的版本const int MAXN = 1010;int n;int a[MAXN];int dp[MAXN];int lis(){ memset(dp, 0, sizeof(dp)); int Max; for (int i = 0; i < n; ++i) { Max = 0; for (int原创 2016-08-02 15:47:12 · 1146 阅读 · 0 评论 -
HDU 1007 Quoit Design 最小点对基础模板
传送门题目大意是找一个最小的圆覆盖给你一堆点中的两个点,输出改圆的半径基础最近点对模板题#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <map>#define LL __int64using namespace std;const int maxn = 100010;st原创 2016-08-06 10:59:40 · 247 阅读 · 0 评论 -
POJ 1064 Cable master
题目链接怎么讲,一道水题,但是处理起来比较麻烦 就是先把读入的分数乘以100用int来处理仔细想想就好,就当是二分的模板#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <queue>using namespace std;int n,k;int a[10010];bool c原创 2016-08-03 10:49:04 · 183 阅读 · 0 评论