随笔分类 - 模板
            
    模板 最长公共递增子序列
    
            
            
        
摘要:【模板】最长递增公共子序列二维 1 #include 2 #include 3 #include 4 using namespace std; 5 6 int n,m,a[505],b[505],dp[505][505]; 7 8 int LICS() 9 {10 int MAX,...
        阅读全文
            
        
            
    sort 树  hash 排序
    
            
            
        
摘要:STL中sort函数用法简介做ACM题的时候,排序是一种经常要用到的操作。如果每次都自己写个冒泡之类的O(n^2)排序,不但程序容易超时,而且浪费宝贵的比赛时间,还很有可能写错。STL里面有个sort函数,可以直接对数组排序,复杂度为n*log2(n)。使用这个函数,需要包含头文件#include。...
        阅读全文
            
        
            
    快速幂  蒙格马利算法
    
            
            
        
摘要:快速求幂约定:x%y为x取模y,即x除以y所得的余数,当x1){//一直计算,直到指数小于或等于1if((p%2)!=0){//如果指数p是奇数,则说明计算后会剩一个多余的数,那么在这里把它乘到结果中odd*=main;//把“剩下的”乘起来}main*=main;//主体乘方p/=2;//指数除以...
        阅读全文
            
        
            
    排序
    
            
            
        
摘要:有人说排序是一个程序员的基本功,下面就介绍一下常见的几种排序算法:(1)“冒泡法”冒泡法大家都较熟悉。其原理为从a[0]开始,依次将其和后面的元素比较,若a[0]>a[i],则交换它们,一直比较到a[n]。同理对a[1],a[2],...a[n-1]处理,即完成排序。下面列出其代码: 1 void ...
        阅读全文
            
        
            
    背包九讲  附:USACO中的背包问题
    
            
            
        
摘要:附:USACO中的背包问题USACO是USAComputingOlympiad的简称,它组织了很多面向全球的计算机竞赛活动。USACOTrainng是一个很适合初学者的题库,我认为它的特色是题目质量高,循序渐进,还配有不错的课文和题目分析。其中关于背包问题的那篇课文(TEXTKnapsackProb...
        阅读全文
            
        
            
    背包九讲(9)
    
            
            
        
摘要:P09:背包问题问法的变化以上涉及的各种背包问题都是要求在背包容量(费用)的限制下求可以取到的最大价值,但背包问题还有很多种灵活的问法,在这里值得提一下。但是我认为,只要深入理解了求背包问题最大价值的方法,即使问法变化了,也是不难想出算法的。例如,求解最多可以放多少件物品或者最多可以装满多少背包的空...
        阅读全文
            
        
            
    背包九讲(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)
    
            
    
摘要:位运算程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。运位算包括位逻辑运算和移位运算,位逻辑运算能够方便地设置或屏蔽内存中某个字节的一位或几位,也可以对两个数按位相加等;移位运算可以对内存中某个二进制数左移或右移几位等。计算机内部是以补码...
        阅读全文
            
        
 
                    
                     
                    
                 
                    
                 
 浙公网安备 33010602011771号
浙公网安备 33010602011771号