08 2014 档案
摘要:题意: 给你N和K,问能否将N拆分成K个互不相同的正整数,并且其中K-1个数的和为完全平方数. PS:这道题目原来是要求输出一种可行方案的,所以下面题解是按照输出方案的思想搞的。 分析: 我们尝试枚举那个完全平方数S,然后看能否将他拆分为 K-1 个数,并且不用到N-S 这一步可以用贪心+一次调整来搞定。为了保证 K-1个数都不同,我们尝试尽量用 1,2,3...这些连续自然数来构造,如果 N-S...
阅读全文
摘要:感谢CJ同学监督╭(╯^╰)╮。从放假到现在都木有更新博客了~噶呜~小娘谨记教诲,每天会更新博客==!!看了一下POJ训练计划,虽然已经零零散散做了40多道题了,还是从头开始整理一下漏掉的知识点。Today is 枚举~!很多人认为枚举是笨笨的,但是枚举却又总是我们面对算法问题时的第一反应,也比较容...
阅读全文
摘要:POJ 3628 Bookshelf 2:http://poj.org/problem?id=3628题意:有个书架,高度为B,现在FJ有N个奶牛,每个奶牛有个高度hi,现在将奶牛堆起来,使得堆起来的高度大于等于B,现在要求最小高度差。思路一: 01背包:把奶牛的高度总和减去B,就是这个背包的容量,...
阅读全文
摘要:多重背包:基本思路: 先来看一个引例:有N种物品和一个容量为V的背包。第i种物品最多有n[i]件可用,每件费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。这种类型的背包问题的特点是:每件物品的件数有限。 和完全背包问题很类似。基本的方程只...
阅读全文
摘要:昨天小小总结了01背包:01背包不足之处还望多提意见~噶呜~今天来总结一下完全背包:完全背包: 基本思路:类似于01背包,所不同的是每种物品有无限件。也就是从每种物品的角度考虑,策略已经不是取与不取两种,而是取0件,取1件,..等很多种,如果仍按01背包的思路,令f[i][v]表示前i种物品恰放入一...
阅读全文
摘要:今天抓的四道DP做完了==三道是用背包做的,突然想起来背包知识点总结还没做~反正时间还早。。把01背包和完全背包小结了吧~~福利来啦~~噶呜~01背包:基本思路: 01背包问题是最广为人知的动态规划问题之一,介绍01背包之前,先来看一个引例: 有N件物品和一个容量为V的背包。第i件物品的体积是c...
阅读全文
摘要:今天第一次用了滚动数组,缘由要从一道题说起:POJ 1159 Palindrome 题意:给你一个字符串,求对字符串最少添加几个字符可变为回文串。 分析: 简单做法是直接对它和它的逆序串求最长公共子序列长度len。n-len即为所求。至于为什么,小盆友们可以自己模拟一下下。O(∩_∩)O~因为这不是...
阅读全文
摘要:~\(≧▽≦)/~啦啦啦,昨天说的是LCS,今天我们要学习的是LIS,什么是LIS呢?LIS:最长有序子序列(递增/递减/非递增/非递减)这么说还是有些模糊,举个例子: 在一个无序的序列a1,a2,.....,am里,找到一个最长的序列,满足ai D[len],则将a[i]接在D[len]后将得到一...
阅读全文
摘要:题意:在给出的n个结点处切断木棍,并且在切断木棍时木棍有多长就花费多长的代价,将所有结点切断,并且使代价最小。思路:设DP[i][j]为,从i,j点切开的木材,完成切割需要的cost,显然对于所有DP[i][i+1]=0,记w[i][j]为从i,j点切开的木材的长度,因此可以枚举切割点,dp[i][...
阅读全文
摘要:LCS!~如果你在百度上搜这个的话会出来”英雄联盟冠军联赛”,orz。。但是今天要讲的LCS是最长公共子序列 ,"Longest Common Subsequence "not"League of Legends Championship Series"小盆友们又要涨姿势了~ 最长公共子序列也称作最...
阅读全文
摘要:1.poj 1837Balance :http://poj.org/problem?id=1837这道题个人认为不好想,要不是CJ的耐心指导,我可能会困很久吧orz。。写一篇解题报告来纪念一下~~噶呜!先来说说题意: 这道题用到了一个物理知识:力臂=重量 *臂长 = w[i]*c[k]。 有一个天平...
阅读全文
摘要:噶呜~先来了解一下什么是哈希吧? 当我们要在一堆东西中找到想要的那一个东西,我们常常通过比较来找,理想的情况是不经过任何比较,一次就能找到,怎么才能做到这样呢?那就在记录的储存位置和他的关键字之间建立一个确定的对应关系,我们称这种对应关系为哈希函数~小盆友们应该对哈希有了一个初步的印象了吧?其实,...
阅读全文
摘要:今天学的hash。说实话还没怎么搞懂,明天有时间把知识点总结写了,今天就小小的写个结题报告吧!题意: 在n (n.(2)创建vector对象,vector vec;(3)尾部插入数字:vec.push_back(a);(4)使用下标访问元素,cout::iterator it;for(it=vec...
阅读全文
摘要:1. HDU 4907:http://acm.hdu.edu.cn/showproblem.php?pid=4907 中文题我就不说题意了,直接说解题思路吧! ① 第一种思路就是我比赛时的思路,将a数组先全部清为零,当输入机器在ti时间执行第i个任务时,将a[ti]置为1,开始输入q(表示在q时间有
阅读全文
摘要:图的遍历也称为搜索,就是从图中某个顶点出发,沿着一些边遍历图中所有的顶点,且每个顶点仅被访问一次,遍历可采取两种不同的方式:深度优先搜索(DFS)和广度优先搜索(BFS)。1.DFS算法思想` 从顶点v出发深度遍历图G的算法 ① 访问v0顶点,置vis[v0]=1,搜索v0未被访问的邻接点w,若...
阅读全文