算法
文章平均质量分 61
普通网友
这个作者很懒,什么都没留下…
展开
-
背包算法(1)-计蒜课
一、01背包动态规划的要点是:列出状态转移方程,也就是当前阶段的状态是由上一阶段状态和决策的结果。 记录下所有阶段状态的结果,且必须满足最优化原理的无后效性。 附主要代码:for(int i=1;i<=M;i++){ for(int j=0;j<=N;j++){ if(j>=w[i]) dp[i][j]=max(dp[i-1][j],dp...原创 2018-03-16 22:45:14 · 166 阅读 · 0 评论 -
蒜头君的购物袋1-计蒜课
题目:蒜头君去超市购物,他有一只容量为 VVV 的购物袋,同时他买了 nnn 件物品,已知每件物品的体积 viv_ivi。蒜头君想知道,挑选哪些物品放入购物袋中,可以使袋子剩余的空间最小。思路:以重量作为状态变量,记录每阶段装了多大v。AC代码:#include<iostream>using namespace std;int dp[20005]={0};int main(){...原创 2018-03-16 23:00:02 · 266 阅读 · 0 评论 -
2月6日星期六-计蒜课
结果填空题目:从2000到2100有多个年2月4日是周六。解法:结果填空题可以用windows日历和excel。看2000年2月4日是周几,翻日历看是周五。因为一年365天,365%7=1,是闰年周几往后退2天,不是往后退1天。bool isleap(int y){if(y%400==0&&(y%100!=0&&y%4==0) return true;else...原创 2018-03-18 10:49:03 · 199 阅读 · 0 评论 -
LIS_LCS-计蒜课
一、LIS最长上升子序列先确定动态规划的状态,拿字符串的最后一项作为他的状态。任意j<i,a[j]<[i],dp[i]= max(dp[j]+1,dp[i])附:主要逻辑代码:memset(dp,0,sizeof(dp))for(int i=1;i<n;i++){ans = dp[1];dp[i]=1;for(int j=1;j<i;j++){if(a[i]>...原创 2018-03-19 11:55:02 · 133 阅读 · 0 评论