0-1背包
1.最典型,最基本的dp问题2.背包的每个容量就是“状态”
01背包(最基础的背包问题):
有N件物品和一个容量为V的背包。第I件物品的费用是c[i],价值是w[i]。
求解将哪些物品装入背包可使价值总和最大。
问题特点:每种物品仅有一件,可以选择放或不放;
思考:在每个物品都有可能被选中的前提下,如何构造“子问题”?
无序变有序的方法:依次考虑前1、前2、前3…前i个物品;
状态定义:f[i][v]表示前i件物品放入一个容量为v的背包可以获得
的最大价值。
3.0-1背包问题优化
1背包问题伪代码如下:
for i = 1 to n //所有物品;
for j = V to v[i] //思考:为何没必要循环到0?
dp[j] = max(dp[j - v[i]] + w[i],dp[j]);
空间成功优化到一维V。因为j小于v[i]时已经不满足条件。
整个代码如下
12345678910111213141516#include<bits/stdc++.h>usi ...
多项式求和
线性表实践-多项式(一)多项式的实现有两种方式:
一种为顺序存储结构的顺序表,另一种为线性表的链式存储的链表,本文采用后者。
1。链表创建以及初始化1234567891011121314151617181920212223242526272829303132333435363738394041424344454647#include <stdio.h>#include <stdlib.h>typedef struct Polynode{ int coef; int exp; struct Polynode *next;} Polynode,*Polylist;Polylist PolyCreat(){ Polynode *head,*rear,*s; int c,e; head = (Polynode*)malloc(sizeof(Polynode)); rear = head; scanf("%d %d",&c,&e); while(c!=0 ...
hexo搭建个人博客教程
博客搭建推荐学习视频(本人Studying site.)开始文档教程,本文比较精简,没有废话。
准备工具首先我们需要到对应网站下载需要的工具
47 1#include <stdio.h>2#include <stdlib.h>3typedef struct Polynode{4 int coef;5 int exp;6 struct Polynode *next;7} Polynode,*Polylist;8Polylist PolyCreat(){9 Polynode *head,rear,s;10 int c,e;11 head = (Polynode)malloc(sizeof(Polynode));12 rear = head;13 scanf(“%d %d”,&c,&e);14 while(c!=0){15 s = (Polynode) malloc(sizeof(Polynode));16 s->coef & ...
first
一.欢迎来到我的个人blog
1。我在大学入学之时就有打算搭建一个个人网站的想法,最初只了解到在云服务器上部署网站需要购买云服务器,部署网站,购买域名,icp备案等一系列,成功劝退了我。
2。
暑假之际,本打算和朋友游玩,前前后后计划了好几个地方,但都因为:朋友a家里有事,朋友b和其他人约好出去玩,朋友c兼职工作等等因素而不了了之。待在家里太无聊,于是就想找些事情做一做
突然了解到有GitHub pages可以免费搭建博客,本网站就是使用这套流程,不过文件内容使用的是markdown。感兴趣的小伙伴可以尝试一下,不过搭建的网址是静态页面模式,但已经能满足我的使用需求,所以学习使用,希望能收获更多吧。
3。
后期应该会把网站主题,网站排版改一些,目前时间比较充裕。
4。
那做个人博客的意义就是想记录美好生活,记录学习过程,还可以存放资源。
for example:
掘金官网
Kimi Chat
比如大家熟知的:刷题 and 找工作
访问LeetCode
牛客网