随笔分类 - algorithm
背包九讲(8)
摘要:P08:泛化物品定义考虑这样一种物品,它并没有固定的费用和价值,而是它的价值随着你分配给它的费用而变化。这就是泛化物品的概念。更严格的定义之。在背包容量为V的背包问题中,泛化物品是一个定义域为0..V中的整数的函数h,当分配给它的费用为v时,能得到的价值就是h(v)。这个定义有一点点抽象,另一种理解...
阅读全文
背包九讲(7)
摘要:P07:有依赖的背包问题简化的问题这种背包问题的物品间存在某种“依赖”的关系。也就是说,i依赖于j,表示若选物品i,则必须选物品j。为了简化起见,我们先设没有某个物品既依赖于别的物品,又被别的物品所依赖;另外,没有某件物品同时依赖多件物品。算法这个问题由NOIP2006金明的预算方案一题扩展而来。遵...
阅读全文
背包九讲(6)
摘要:P06:分组的背包问题问题有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。这些物品被划分为若干组,每组中的物品互相冲突,最多选一件。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。算法这个问题变成了每组物品有若干种策略:是选择本组的某一件,还是...
阅读全文
背包九讲(5)
摘要:P05:二维费用的背包问题问题二维费用的背包问题是指:对于每件物品,具有两种不同的费用;选择这件物品必须同时付出这两种代价;对于每种代价都有一个可付出的最大值(背包容量)。问怎样选择物品可以得到最大的价值。设这两种代价分别为代价1和代价2,第i件物品所需的两种代价分别为a[i]和b[i]。两种代价可...
阅读全文
背包九讲(4)
摘要:P04:混合三种背包问题问题如果将P01、P02、P03混合起来。也就是说,有的物品只可以取一次(01背包),有的物品可以取无限次(完全背包),有的物品可以取的次数有一个上限(多重背包)。应该怎么求解呢?01背包与完全背包的混合考虑到在P01和P02中给出的伪代码只有一处不同,故如果只有两类物品:一...
阅读全文
背包九讲(3)
摘要:P03:多重背包问题题目有N种物品和一个容量为V的背包。第i种物品最多有n[i]件可用,每件费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。基本算法这题目和完全背包问题很类似。基本的方程只需将完全背包问题的方程略微一改即可,因为对于第i种物...
阅读全文
背包九讲(2)
摘要:P02:完全背包问题题目有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。基本思路这个问题非常类似于01背包问题,所不同的是每种物品有无限件。也就是从每种物品的角度考虑,与它...
阅读全文
背包九讲(1)
摘要:P01:01背包问题题目有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。基本思路这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大...
阅读全文
背包九讲(0)
摘要:背包问题九讲v1.0 目录第一讲01背包问题第二讲完全背包问题第三讲多重背包问题第四讲混合三种背包问题第五讲二维费用的背包问题第六讲分组的背包问题第七讲有依赖的背包问题第八讲泛化物品第九讲背包问题问法的变化附:USACO中的背包问题前言本篇文章是我(dd_engi)正在进行中的一个雄心勃勃的写作计划...
阅读全文
acm算法模板(5)
摘要:STL中sort函数用法简介做ACM题的时候,排序是一种经常要用到的操作。如果每次都自己写个冒泡之类的O(n^2)排序,不但程序容易超时,而且浪费宝贵的比赛时间,还很有可能写错。STL里面有个sort函数,可以直接对数组排序,复杂度为n*log2(n)。使用这个函数,需要包含头文件#include。...
阅读全文
acm算法模板(4)
摘要:杂乱小模板状态压缩dp小技巧x&-x是取x的最后一个1的位置。x-=x&-x是去掉x的最后一个1。读入外挂intnxt_int(){//negorposcharch;intflag=0,tmp=0;for(ch=getchar();ch'9';ch=getchar())if(ch==int('-')...
阅读全文
几何 模板
摘要:1、 几何 41.1 注意 41.2 几何公式 41.3 多边形 61.4 多边形切割 91.5 浮点函数 101.6 面积 151.7 球面 161.8 三角形 171.9 三维几何 191.10 凸包 261.11 网格 281.12 圆 28几何1.1注意1.注意舍入方式(0.5的舍入方向);...
阅读全文
暴力 枚举
摘要:枚举:在所确定的一定范围内,对每一个可能的目标解进行检测,找出所有的目标解。枚举也称作暴力求解,穷举法。枚举的特征:对所有的可能的目标解,进行一一检测。枚举思想很简单,没有太大的思维量。(只要不超时,不超内存空间,枚举都是一种很好的方法)提示:当想不出来别的算法时,就用枚举吧!优化枚举方法,就是指缩...
阅读全文
acm算法模板(3)
摘要:位运算程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。运位算包括位逻辑运算和移位运算,位逻辑运算能够方便地设置或屏蔽内存中某个字节的一位或几位,也可以对两个数按位相加等;移位运算可以对内存中某个二进制数左移或右移几位等。计算机内部是以补码...
阅读全文
MST之kruskal算法
摘要:一、普里姆(Prim)算法 1.基本思想:设G=(V, E)是具有n个顶点的连通网,T=(U, TE)是G的最小生成树, T的初始状态为U={u0}(u0∈V),TE={},重复执行下述操作:在所有u∈U,v∈V-U的边中找一条代价最小的边(u, v)并入集合TE,同时v并入U,直至U=V。即: ...
阅读全文
MAT之prim算法
摘要:prim算法边赋以权值的图称为网或带权图,带权图的生成树也是带权的,生成树T各边的权值总和称为该树的权。最小生成树(MST):权值最小的生成树。生成树和最小生成树的应用:要连通n个城市需要n-1条边线路。可以把边上的权值解释为线路的造价。则最小生成树表示使其造价最小的生成树。构造网的最小生成树必须解...
阅读全文
acm算法模板(2)
摘要:数学问题: 1.精度计算——大数阶乘2.精度计算——乘法(大数乘小数)3.精度计算——乘法(大数乘大数)4.精度计算——加法5.精度计算——减法6.任意进制转换7.最大公约数、最小公倍数8.组合序列9.快速傅立叶变换(FFT)10.Ronberg算法计算积分11.行列式计算12.求排列组合数 ...
阅读全文
acm算法模板(1)
摘要:1、 几何 41.1 注意 41.2 几何公式 41.3 多边形 61.4 多边形切割 91.5 浮点函数 101.6 面积 151.7 球面 161.8 三角形 171.9 三维几何 191.10 凸包 261.11 网格 281.12 圆 281.13 整数函数 302、 组合 332.1组合公...
阅读全文
ACM/ICPC竞赛
摘要:ACM知识点分类第一类:基础算法(1)基础算法:枚举,贪心,递归,分治,递推,构造,模拟(2)动态规划:背包问题,树形dp,状态压缩dp,单调性优化,插头dp(3)搜索:dfs,bfs,记忆化搜索,优化与剪枝,双广,A*,IDA*,跳舞链第二类:数据结构(1)简单数据结构:链表,栈和队列,串,树和二...
阅读全文
poj 题目分类(1)
摘要:poj 题目分类按照ac的代码长度分类(主要参考最短代码和自己写的代码)短代码:0.01K--0.50K;中短代码:0.51K--1.00K;中等代码量:1.01K--2.00K;长代码:2.01K以上。短:1147、1163、1922、2211、2215、2229、2232、2234、2242、2...
阅读全文
浙公网安备 33010602011771号