自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

kthsdwwl

while (haven't got one billion) { earn more; }

  • 博客(66)
  • 收藏
  • 关注

转载 make 和 make install

Makefile里面记录的是 你的工程(也就是一堆程序的有序集合)的编译规则。Makefile 大体语法是这样的:colon ":" 前面是一个target的名称,后面是这个 target的编译规则。这一点你已经相当清楚了,无须多说。理解的关键在于make命令。当你使用make命令是,格式是这样的 make [option: target_name]也就是说,你在make 后面加上

2015-01-17 17:30:59 463

转载 How do you use “git --bare init” repository?

git init  和 git init –bare 的区别使用命令"git init --bare"(bare汉语意思是:裸,裸的)初始化的版本库(暂且称为bare repository)只会生成一类文件:用于记录版本库历史记录的.git目录下面的文件;而不会包含实际项目源文件的拷贝;所以该版本库不能称为工作目录(working tree);如果你进入版本目录,就会发现只有.git目录下

2015-01-17 16:50:11 487

转载 Linux dmesg命令参数及用法详解(linux显示开机信息命令)

功能说明:显示开机信息。语  法:dmesg [-cn][-s ]补充说明:kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里。参  数: -c  显示信息后,清除ring buffer中的内容。  -s  预设置为8196,刚好等于ring b

2014-12-29 23:19:50 476

转载 Linux下查看系统版本号相关命令

可以通过以下命令查看版本号:1. cat /etc/redhat-release#这是属于redhat系列里专有的一个文件,debian则是/etc/debian_version2. uname -a3. cat /etc/issue#说明:这条指令可以查看Linux属于哪个distribution,maybe Debian、RHEL or others。4. cat

2014-12-29 17:49:44 381

原创 NYOJ 16 矩形嵌套

题目链接: 点击打开链接题目大意: 一个矩形长宽均小于另一个矩形就可以嵌套进去,求嵌套矩形序列的最长长度。思路: LIS分析: 存放矩形时,长宽,宽长两种组合都存一次。接着对矩形数组按长度排序,最后求最长上升子序列就可以了。代码:#include #include using namespace std;const int maxn =

2013-12-23 17:00:29 673

原创 hdu 1257 最少拦截系统

题目链接: 点击打开链接题目大意: 给定一串导弹的高度,问最少需要多少导弹拦截系统。思路: LIS分析: 首先,至少需要一套拦截系统,一开始可以打到第一颗导弹的位置。之后每来一颗导弹更新一下系统能打到的高度。一旦有一颗导弹所有系统都打不到了,增加一个系统。那么就会得到一个序列,每个系统目前能打到的最高位置。这个序列是递增的,后面的系统能打到的高度一定比前面高

2013-12-18 19:53:25 396

原创 hdu 1025 Constructing Roads In JGShining's Kingdom

题目链接: 点击打开链接题目大意: 有n对国家,每对国家一个缺资源,一个有资源。穷的国家按序号从左到右排列,富的国家也一样。要在一穷,一富国家之间建立一条铁路,而且铁路不能交叉,问最多能建多少铁路。思路: LIS分析: 将每条铁路按富国家序号从小到大排列,要使铁路不交叉,另一端的穷国家得排成一个上升序列。只要中间有一个穷国家不满足递增关系,那么铁路就会出现交

2013-12-18 18:50:16 403

原创 poj 2533 Longest Ordered Subsequence

题目链接: 点击打开链接题目大意: 求最长上升子序列思路: 动态规划,LIS分析: 最长上升子序列裸题,这里直接用复杂度O(N^2)的动态规划做,用dp[i]表示以第i个数字结尾的最长上升子序列(LIS)长度,那么状态转移时,对于所有j<i,Aj<Ai的j(Aj表示第j个数字),计算最大的dp[j] + 1就行了。代码:#incl

2013-12-18 16:44:17 1155

原创 poj 3260 The Fewest Coins

题目链接: 点击打开链接题目大意: Farmer John买东西,要求付的金币数加找回的金币数总和最小思路: 动态规划,多重背包,完全背包分析: John的金币数是有限的,我们可以用多重背包算给定数额下John最少能付多少金币。卖家金币数是无限的,我们可以用完全背包算给定找钱数下卖家最少能付多少金币。最后遍历两个dp数组,算出最小的金币数就行了。我用dp_rec

2013-12-16 19:46:33 692

原创 poj 2250 Compromise

题目链接: 点击打开链接题目大意: 找出两个单词序列的最长公共部分思路: 动态规划,最长公共子序列分析: 最长公共子序列问题,要输出子序列。子序列的每个单元不是字符而是单词。增加一个二维数组记录路径,0表示数据来自dp[i-1][j-1],1表示数据来自dp[i-1][j], 2表示数据来自dp[i][j-1]。最后递归输出就行了。代码:#inc

2013-12-16 16:42:31 393

原创 poj 1458 Common Subsequence

题目链接: 点击打开链接题目大意: 最长公共子序列代码:#include #include #include #include using namespace std;const int maxn = 10000;string a, b;int dp[maxn][maxn];void lcs(){ int x = a.length(), y

2013-12-16 15:42:35 457

原创 poj 1276 Cash Machine

#include #include #include using namespace std;const int maxc = 100000 + 10;const int maxn = 20;int V, n, cost[maxn], amount[maxn], dp[maxc];void ZeroOnePack(int cost, int value){ for (int

2013-12-11 18:57:42 330

原创 hdu 2191

题目链接: 点击打开链接题目大意: 买米,给定总钱数,每种米的价格,重量,数量,问能买到的最大重量是多少思路: 动态规划,多重背包分析: 多重背包入门题,直接套模板代码:#include #include #include using namespace std;const int maxm = 100 + 10;const int

2013-12-11 18:35:13 346

原创 hdu 1059 Dividing

题目链接: 点击打开链接题目大意: 分弹珠思路: 动态规划,多重背包分析: 多重背包问题,第一次没优化超时了,根据背包问题九讲上的叙述稍微优化了一下,过了。先把每种物品分成若干个物品,每个物品有一个系数,1,2,4... . ,每个物品的重量和价值是原本的值乘上这个系数,这样就转化成一个01背包问题,接着就好办了。代码:#include #in

2013-12-11 17:04:56 421

原创 poj 3181 Dollar Dayz

题目链接: 点击打开链接题目大意: 有不同价值的工具和一定数额的钱,问买工具的方案有多少思路: 动态规划,完全背包分析: 完全背包求方案问题,答案会超出long long,因此dp结果分开用两个数组dph,dpl存,dpl存放结果的低18位,dph存放高位。最后依次输出两个数组的结果。如果低位不足18位,在前面补0。代码:#include #i

2013-12-09 16:15:23 648

原创 uva 147 Dollars

题目链接: 点击打开链接题目大意: 给定一个面额,求将这个面额换算成硬币的方案数。硬币有美元美分两种,面额不超过$300.00。思路: 动态规划,完全背包分析: 和uva 647思路一样,不过需要换算一下,注意答案会超出int范围,得用long long存。代码:#include #include using namespace std;

2013-12-09 14:57:06 425

原创 uva 674 Coin Change

题目链接: 点击打开链接题目大意: 给定一个面额,求将这个面额换算成硬币的方案数。思路: 动态规划,完全背包分析: 完全背包基础题,用一维数组dp[j]存放当面额为j时的方案数,状态转移方程可以这么理解:dp[i][j] = dp[i-1][j] + dp[i][j - coins[p]]。代码:#include #include using

2013-12-08 17:39:28 1118

原创 poj 1384 Piggy-Bank

题目链接: 点击打开链接题目大意: 给定重量上限,求刚好填满这个上限的所有硬币的最小价值。思路: 动态规划,完全背包分析: 完全背包基础题,用一维数组,先遍历所有种类的硬币,接着从小到大遍历重量,转移方程为 dp[i][j] = min( dp[i-1][j],  dp[i][j-weight[i] ] + value[i] )。代码:#incl

2013-12-07 16:21:58 355

原创 hdu 2639 Bone Collector II

题目链接: 点击打开链接题目大意: 背包装骨头,求第k大的骨头价值思路: 动态规划,01背包分析: 01背包变形,求第k大的价值。那么dp数组每个单元存的就不是当前状态最优价值了,而是一个长度为k的序列,存放前k个骨头价值。状态转换时,对于某块骨头如果放,那么将dp[j-vol[i]]的序列中的所有值加上val[i];如果不放,保持原样。将这两个序列合并排序取前

2013-12-06 15:41:21 407

原创 poj 2184 Cow Exhibition

题目链接: 点击打开链接题目大意: 选牛,要求smart值和fun值总和最高且总smart和总fun值都不能为负数思路: 动态规划,01背包分析: 可以以smart作为体积,fun作为价值来考虑。状态转换方程:dp[j]=max{dp[j], dp[j-s[i]+f[i]}。dp结束后寻找大于等于0的体积,计算体积和价值总和,求得一个最大值。由于smar

2013-12-05 16:38:31 373

原创 hdu 2955 Robberies

题目链接: 点击打开链接题目大意: 小偷抢银行,被抓概率低于限度的情况下要求金钱最多思路: 动态规划,01背包分析: 由于被抓概率是小数,没法将这个参数当做背包容量,因此换个思路,把所有银行总金额当做背包总量,每个银行金额当做体积,不被抓的概率当做价值,目标是不被抓的概率最大,最后看在什么金额下不被抓概率符合要求即可。代码:#include #

2013-12-04 16:59:11 416

原创 uva 562 Dividing coins

题目链接: 点击打开链接题目大意: 一堆硬币两个人分,要求差值最小思路: 动态规划,01背包分析: 01背包,把所有硬币面值相加除2得中值,把这个中值当成背包容量,算出在不超过它的情况下最多能拿多少钱,最后用总额减一下就成了。代码: #include #include #include #include using namespace s

2013-12-04 14:46:11 439

原创 uva 624 cd

题目链接: 点击打开链接题目大意: 把cd里的歌转移到总长度为n的磁带中,要求能尽可能多地利用磁带空间。最后除了输出总长度,还要依次输出选择的歌曲的长度。思路: 动态规划,01背包分析: 01背包,要记录中间结果,我使用了vector数组来记录。#include #include #include using namespace std;con

2013-12-02 14:15:47 462

原创 hdu 2546 饭卡

题目链接: 点击打开链接题目大意: 饭卡余额m元,从n道菜中选,使得饭卡余额尽量低,也就是花费尽量高。余额小于5元是买不了菜的,不低于5元的话就算透支也没事思路: 动态规划,01背包分析: 就是个01背包题,不过得做点变通。用一维数组dp存放子状态结果,dp[j]表示余额为j时最高的花费。那么dp[0]到dp[4]就永远都是0了。考虑到透支是可以的,所以在状态转

2013-12-01 19:58:54 389

原创 hdu 2602 Bone Collector

题目链接: 点击打开链接题目大意: 思路: 01背包,dp分析: 常规01背包题,一维数组代码:#include #include #include using namespace std;const int maxn = 1000 + 10;const int maxv = 1000 + 10;int n, v;int dp[

2013-12-01 16:20:18 418

原创 la 3667 ruler

题目链接: 点击打开链接题目大意: 给出n个数字,要求设计一个尺子,刻度尽量少,长度尽量短,能够把n个数字都表示出来。刻度不超过7个,第一个刻度为0.思路: bfs分析: 学习了网上大牛的代码,搜索树的状态为一个set,记录所有刻度;以及一个status,用二进制记录能表示的数字。对于一个状态,遍历该状态的所有刻度,每个刻度加上或减去一个数字可以得到一个新刻度。

2013-11-29 19:45:30 817

原创 uva 1419 Ugly Windows

题目链接: 点击打开链接题目大意: 输入几个窗口,判断在最顶上的窗口是哪些思路: 字符串遍历分析: 暂且保存在这里...思路应该没问题.提交了半天都是wa,上网找了几个代码交上去也是wa...从uva上找了几道之前AC的题,原本可以的代码也都wa了...是不是出了什么问题?1. 第一步先把不可能在顶端的窗口过滤掉.观察在边界上的字母,如果没被覆盖,周围一

2013-11-28 17:06:51 407

原创 uva 11389 The Bus Driver Problem

题目链接: 点击打开链接题目大意: n个巴士司机,有n条白天线路和n条夜晚线路。给每个司机分配一条白天线路和一条夜晚线路。如果线路总时间超过时间上限d,那么每超过1小时就要付加班费r元。没超过就不用付。如何分配线路可以使加班费最少?思路: 贪心分析: 1. 首先把白天线路按时间从大到小排列。2. 对于耗时最长的线路d1,应该分配耗时最短的夜间线路n1。因

2013-11-27 15:02:54 720

原创 uva 1344 Tian Ji The Horse Racing

题目链接: 点击打开链接题目大意: 田忌和国王赛马,求最多能赢得的钱数思路: 贪心分析: 1. 把双方的马按速度从小到大排列。2. 从最慢的比起,设田忌速度为t,国王速度为k。如果ti ki,比,以最小的代价赢下一局。3. 如果ti = ki,这时要比较双方的最快马速,设为tm和km:a 如果tm b 如果tm > km,最快的

2013-11-23 20:16:16 814

uva 1344 Tian Ji The Horse Racing

题目链接:点击打开链接题目大意: 田忌和国王赛马,求最多能赢得的钱数思路:贪心分析:1. 把双方的马按速度从小到大排列。2. 从最慢的比起,设田忌速度为t,国王速度为k。如果ti &lt; ki,必输,索性就输的彻底些,让ti和最快的马比;如果ti &gt; ki,比,以最小的代价赢下一局。3. 如果ti = ki,这时要比较双方的最快马速,设为...

2013-11-23 20:16:00 110

原创 uva 10970 Big Chocolate

题目链接: 点击打开链接题目大意: 把一个m行n列的矩形巧克力切成m*n个1*1的方块,需要切几刀?不能一刀同时切多块巧克力.思路: 数学分析分析: 先切m-1刀把巧克力切成m条,接着每条切n-1刀.代码:#include int main(){ int m, n; while (scanf("%d %d", &m, &n) == 2) p

2013-11-22 17:43:34 446

uva 10970 Big Chocolate

题目链接:点击打开链接题目大意:把一个m行n列的矩形巧克力切成m*n个1*1的方块,需要切几刀?不能一刀同时切多块巧克力.思路:数学分析分析:先切m-1刀把巧克力切成m条,接着每条切n-1刀.代码:#include &lt;cstdio&gt;int main(){ int m, n; while (scanf("%d %d", &amp;m...

2013-11-22 17:43:00 75

原创 la 3602 DNA Consensus String

题目链接: 点击打开链接题目大意: 给定m个长度均为n的DNA序列,求一个DNA序列,使它到所有序列的总Hamming距离尽量小.如果有多个解,输出字典序最小的解.思路: 字符串遍历分析:1. Hamming距离就是不同的字符的个数.要使Hamming距离最小,那么对于目标DNA的每个位置,可以遍历所有m个序列的该位置,找到出现次数最多的碱基,就是这个位置的字符

2013-11-22 17:40:10 489

la 3602 DNA Consensus String

题目链接:点击打开链接题目大意:给定m个长度均为n的DNA序列,求一个DNA序列,使它到所有序列的总Hamming距离尽量小.如果有多个解,输出字典序最小的解.思路: 字符串遍历分析:1. Hamming距离就是不同的字符的个数.要使Hamming距离最小,那么对于目标DNA的每个位置,可以遍历所有m个序列的该位置,找到出现次数最多的碱基,就是这个位置的字符.这...

2013-11-22 17:40:00 69

原创 la 3213 Ancient Cipher

题目链接: 点击打开链接题目大意: 给定两个长度均为n的字符串,判断其中一个字符串重新排列后,每个字母能否和另一个字符串的字母一一对应.比如ABB和CDD.思路: 字符串匹配分析:1. 两个字符串如果能一一对应,那么对应的字母出现次数一定是相同的.2. 因此对每个字符串,计算所有字母出现的次数,再依次比对这些次数.如果有不相同的次数说明无法一一对应.

2013-11-22 17:33:31 488

la 3213 Ancient Cipher

题目链接:点击打开链接题目大意:给定两个长度均为n的字符串,判断其中一个字符串重新排列后,每个字母能否和另一个字符串的字母一一对应.比如ABB和CDD.思路:字符串匹配分析:1. 两个字符串如果能一一对应,那么对应的字母出现次数一定是相同的.2. 因此对每个字符串,计算所有字母出现的次数,再依次比对这些次数.如果有不相同的次数说明无法一一对应.代...

2013-11-22 17:33:00 59

原创 uva 10340 All in All

题目链接:点击打开链接题目大意: 输入两个字符串s和t判断能否从t中删除0或多个字符,得到s思路: 字符查找分析:1. 将游标定位在t开头,对于s中的每个字符,在t中查找.找到后就把游标定位在下一个位置,继续查找s的下一个字符.2.某个字符找不到,说明无法得到s.代码:#include #include #include using

2013-11-22 17:28:52 409

uva 10340 All in All

题目链接:点击打开链接题目大意:输入两个字符串s和t判断能否从t中删除0或多个字符,得到s思路: 字符查找分析:1. 将游标定位在t开头,对于s中的每个字符,在t中查找.找到后就把游标定位在下一个位置,继续查找s的下一个字符.2.某个字符找不到,说明无法得到s.代码:#include &lt;cstdio&gt;#include &l...

2013-11-22 17:28:00 56

原创 uva 11039 Building designing

题目链接:点击打开链接题目大意: 有n个绝对值各不相同的非0整数,选出尽量多的数,使得正负交替且绝对值递增.思路:分析:1. 将数字按代码:

2013-11-22 17:13:38 420

uva 11039 Building designing

题目链接:点击打开链接题目大意: 有n个绝对值各不相同的非0整数,选出尽量多的数,使得正负交替且绝对值递增.思路: 数学分析分析:1. 将数字按绝对值大小排序2. 遍历序列,将符号不满足的数字删除代码:#include &lt;cstdio&gt;#include &lt;cmath&gt;#include &lt;algorith...

2013-11-22 17:13:00 66

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除