自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

转载 Leetcode 887 Super Egg Drop(扔鸡蛋) DP

这是经典的扔鸡蛋的题目。 同事说以前在uva上见过,不过是扔气球。题意如下:题意:你有K个鸡蛋,在一栋N层高的建筑上,被要求测试鸡蛋最少在哪一层正好被摔坏。你只能用没摔坏的鸡蛋测试。如果一个鸡蛋在上一次测试中没有被摔坏,那么你可以重复使用,否则,你只能用下一个鸡蛋。需要求,最小的步数,使得你在这么多步内一定测试出结果。思路:O(K * N^2)首先,这个题比较绕。需要求一个...

2018-08-18 14:14:00 188

转载 Git中的工作区(Working Directory)、暂存区(stage)和历史记录区(history)

今天和git搏斗了一下午,发现了修改的文件一直commit不了。网上查了一下才发现原来git的模型里还有工作区和暂存区的说法。工作区:在git管理下的正常目录都算是工作区。我们平时的编辑工作都是在工作区完成。暂存区:可以理解为一个临时区域。里面存放将要提交文件的快照。历史区:commit后,记录的归档。三者的转换关系如下图:需要注意的是:提交一个文件需要先git add ...

2017-01-17 23:09:00 314

转载 [转] 简述堆栈溢出攻击

摘自: http://blog.csdn.net/chenlycly/article/details/37912755预备知识:从物理上讲,堆栈是就是一段连续分配的内存空间。在一个程序中,会声明各种变量。静态全局变量是位于数据段并且在程序开始运行的时候被加载。而程序的动态的局部变量则分配在堆栈里面。从操作上来讲,堆栈是一个先入后出的队列。他的生长方向与内存的生长方向正好相反。我们规...

2017-01-01 14:47:00 560

转载 ucore_lab1

练习1:理解通过make生成执行文件的过程。(要求在报告中写出对下述问题的回答)实验过程静态分析代码。实验的目录结构如下:.├── boot├── kern│ ├── debug│ ├── driver│ ├── init│ ├── libs│ ├── mm│ └── trap├── libs└── tools其中./boot里面...

2017-01-01 14:15:00 208

转载 一种神奇的双向循环链表C语言实现

最近在看ucore操作系统的实验指导。里面提要一个双向循环链表的数据结构,挺有意思的。其实这个数据结构本身并不复杂。在普通链表的基础上加一个前向指针,我们就得到了双向链表,再把头尾节点连起来就是双向循环链表了。一般的实现方式如下:typedef struct link_node { ele_type element; link_node *prev, *next;}...

2016-12-13 01:03:00 114

转载 ucore_lab0

一直想好好学习一下操作系统课程,去一个Mooc网站上找了一门操作系统的课程。这便是里面的配套实验。实验指导:点这里lab0主要是准备相关的操作环境。课程推荐使用qemu作为硬件模拟器,推荐运行环境为linux操作系统。因为我使用的是Windows系统,所以需要解决运行环境的问题。开始想了几种解决方案:一个是直接装一个Linux的操作系统,但是觉得这样子系统切换太麻烦了;一个是租一台...

2016-12-10 11:43:00 201

转载 使用展开操符作替代 .apply() (prefer-spread)

在ES2015以前,你必须使用Function.prototype.apply()来调用可变函数。var args = [1, 2, 3, 4];Math.max.apply(Math, args);在ES2015以后,你可以使用展开操作符来调用可变函数。/*eslint-env es6*/var args = [1, 2, 3, 4];Math.max(...args);...

2016-09-21 13:44:00 1689

转载 使用剩余参数代替 arguments (prefer-rest-params)

使用剩余参数代替 arguments (prefer-rest-params)剩余参数来自于ES2016。可以在可变函数中使用这个特性来替代arguments变量。arguments没有Array.prototype方法,所以使用起来有一点麻烦。详细规则这条规则旨在标记arguments变量。例子不正确的例子function foo() { console.lo...

2016-09-21 10:53:00 1906

转载 LeetCode 11. Container With Most Water 单调队列

题意Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). ...

2016-09-14 13:51:00 69

转载 Codecademy网站安利 及 javaScript学习

今天发现一个Code教学网站,号称可以利用零碎时间来学习些代码。codecademy (https://www.codecademy.com)转载于:https://www.cnblogs.com/Phantom01/p/5523854.html

2016-05-24 16:27:00 148

转载 [Java] 使用 Apache的 Commons-net库 实现FTP操作

因为最近工作中需要用到FTP操作,而手上又没有现成的FTP代码。就去网上找了一下,发现大家都使用Apache的 Commons-net库中的FTPClient。 但是,感觉用起来不太方便。又在网上找到了很多封装过的。觉得也不是很好用。于是就自己写了一个。网上大多是例子都是直接对文件进行操作,而我更需要的是读到内存,或者从内存上写。并且有很多实用单例模式,但是我觉得如果调...

2016-03-18 21:48:00 151

转载 第一个JavaWeb工程

这个工程主要用来研究log4j,所以就只有一个页面,希望以后慢慢进步。 java动态生成网页主要使用servlet。把请求拦截下来,处理后返回结果。这里创建的是一个maven工程。 结构如下:因为是部署在tomcat容器中,所以需要配置 web.xml,主要处理逻辑在HelloWorldController.java,spring-context-config....

2015-12-15 20:24:00 58

转载 HNU 13108 Just Another Knapsack Problem DP + Trie树优化

题意:  给你一个文本串,和一些模式串,每个模式串都有一个价值,让你选一些模式串来组成文本串,使获得的价值最大。每个模式串不止能用一次。思路:  多重背包,枚举文本串的每个位置和模式串,把该模式串拼接在当前位置,看下一个位置是否能得到更优值。但是,存在很多模式串不能拼在当前位置的,无效状态。所以可以用Trie树来优化转移。代码:  #include &lt...

2014-12-01 17:43:00 68

转载 HNU 13101 The Triangle Division of the Convex Polygon 组合数的因式分解求法

题意:  求第n-2个Catalan数 模上 m。思路:  Catalan数公式: Catalan[n] = C(n, 2n)/(n+1) = (2n)!/[(n+1)!n!]  因为m是在输入中给的,所以我们不能用求阶乘和其逆元的方法来求。因为当m不是素数的时候,可能不存在逆元。  这里,我们把阶乘做质因数分解,然后上下两边约分,即可求出解。  怎么来把这个n!...

2014-12-01 11:22:00 92

转载 URAL 2027 2028 两个有趣的题

这两个题,讲的是有一种奇怪的语言,代码是一种二维的矩阵。前一个题,是根据所给的要求,写一个简单的解释器。后一个题,是用那种语言写一个简单的小程序。挺有意思的,所以在这里纪念一下。顺便那个语言的原型是一种叫做Befunge的语言。真实存在的哟。代码:  简单的解释器:  #include <iostream>#include <cstd...

2014-11-27 20:02:00 82

转载 PKU 2184 Cow Exhibition 01背包

题意:  有一些牛,每头牛有一个Si值,一个Fi值,选出一些牛,使得max( sum(Si+Fi) ) 并且 sum(Si)>=0, sum(Fi)>=0思路:  随便选一维做容量(比如Fi),另一维做价值,然后直接做01背包。  做的时候注意一下方向。  最后,在合法解里面找一下最优解就好了。代码:  #include <ios...

2014-11-25 00:21:00 77

转载 HDU 4069 数独

  好久没做题了,建图搞了好久…… 然后,判是否有多解的时候会把原来的答案覆盖掉…… 这里没注意,弄了一下午……代码:  #include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <cmath&g...

2014-11-23 20:16:00 71

转载 HDU 2295 Radar 重复覆盖 DLX

题意:  N个城市,M个雷达站,K个操作员,问雷达的半径至少为多大,才能覆盖所有城市。M个雷达中最多只能有K个同时工作。思路:  二分雷达的半径,看每个雷达可以覆盖哪些城市,然后做重复覆盖,判断这个半径是否可行。  我是直接二分的半径,跑了300+ms,看了Virtual Judge上面跑得快的代码,才发现为了不浪费半径的长度,最小的半径一定等于某一个雷达站到某一个城市之...

2014-11-16 21:17:00 123

转载 HDU 4945 2048 DP 组合

思路:  这个题写了一个背包的解法,超时了。搜了下题解才发现我根本不会做。  思路参见这个:  其实我们可以这样来考虑,求补集,用全集减掉不能组成2048的集合就是答案了。  因为只要达到2048就可以了,所以求补集会大大减小枚举的次数。代码:   1 #include <iostream> 2 #include <cstdio&...

2014-11-09 20:47:00 100

转载 HDU 4965 Fast Matrix Calculation 矩阵乘法 乘法结合律

一种奇葩的写法,纪念一下当时的RE。 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cstdlib> 5 #include <cmath> 6 #include <algori...

2014-11-09 16:47:00 143

转载 UVALive 2659 数独 DLX模板

建图:  从1到16枚举所有的行、列上放的数。代码: 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cstdlib> 5 #include <cmath> 6 #includ...

2014-10-27 19:35:00 181

转载 HDU 5068 Harry And Math Teacher 线段树+矩阵乘法

题意:  一栋楼有n层,每一层有2个门,每层的两个门和下一层之间的两个门之间各有一条路(共4条)。  有两种操作:   0 x y : 输出第x层到第y层的路径数量。  1 x y z : 改变第x层 的 y门 到第x+1层的 z门的通断情况。思路:  门之间的路径数可以用矩阵来表示,经过的中间层可以用矩阵乘积表示。 所以用线段树维护矩阵乘积即可。代码: ...

2014-10-27 19:32:00 90

转载 hiho 1055 刷油漆 树形dp

一个简单的树上的背包问题。代码: 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cstdlib> 5 #include <cmath> 6 #include <algorithm&gt...

2014-10-24 00:51:00 134

转载 hiho 1050 树中的最长路 (树的直径)

最近在复习比较简单的知识,顺便当整理代码吧。 树的直径是一个经典问题,即求树上最远两点的距离。思路一: 任取一个点,求这个点的最远点的最远点,两遍bfs即可。代码: 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #inc...

2014-10-24 00:11:00 87

转载 hiho 1068 重新整理的 Sparse-Table(RMQ)模板

http://hihocoder.com/problemset/problem/1067代码: 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cstdlib> 5 #include <cmath>...

2014-10-22 01:46:00 84

转载 HNU 12961 BitTorrent DP

题意:  你在网上下载东西,一个文件存储在一段或者多段里面,问怎么选择能在规定的流量内下载最多的文件数量。每段的大小一样。思路:  习惯了做答案保存在DP数组里的题,做这种答案保存在下标里的题,转不过弯来。开始想过背包,但是一来内存不够,二来时间也不够。  其实是这样做的,dp[i][j][0/1]保存枚举到第i个,下载了j个,最后一个是否被下载的最小花费。 最后找花费没...

2014-09-11 00:21:00 95

转载 UVALive 5790 Ball Stacking DP

  DP的方向真的很重要,这题做的时候死活想不出来,看了题解以后恍然大悟原来这么简单。题意:  有n层堆成金字塔状的球,若你要选一个球,你必须把它上面那两个球取了,当然也可以一个不取。求选的球最大的权值和。题解:  把原来的金字塔变换一下形式,转换成直角三角形的样子。假如原三角形是这样的:然后可以转化成这个样子:这样子的话,要选择一个球,就要选择...

2014-09-05 13:44:00 87

转载 HNU 12933 Random Walks Catalan数 阶乘求逆元新技能

  一个Catalan数的题,打表对每个数都求一次逆元会T,于是问到了一种求阶乘逆元的打表新方法。 比如打一个1~n的阶乘的逆元的表,假如叫inv[n],可以先用费马小定理什么的求出inv[n],再用递推公式求出前面的项。  我们记数字 x 的逆元为f(x) (%MOD)。  因为 n! = (n-1)! * n  所以 f(n!) = f( (n-1)! * n) = f(...

2014-08-27 16:31:00 100

转载 HDU 4976 A simple greedy problem. 贪心+DP

题意:  给定n<=1000个小兵,A每次都能使小兵掉1点血,B每次能使所有小兵掉1点血,A、B轮流攻击,每次轮到A他会选择是否攻击,轮到B必须攻击。求A最多能杀死多少小兵。(当小兵血量为1时被攻击到视为被杀死)思路:  如果所有小兵血量都不一样,A必定能杀死所有小兵。如果有小兵血量相同,那么A必定会攻击一些小兵使他们血量不同。所以我们可以把A的攻击分为两类:用来...

2014-08-22 20:28:00 115

转载 HDU 4973 A simple simulation problem 线段树

比赛的时候写跪了……赛后拿数据对比才发现,一个地方的判断条件的顺序写反了…… 真是结结实实的坑了队友一把。当时我可以全程都在想这个题,并且有十足的把握想法是对的。题意:  最开始有n种不同细胞各一个排成一排。有两种操作:    1. 使区间[l, r]里面的细胞加倍,并相应往后移动。    2. 求区间[l, r]中相同细胞数量的最大值。  对于每次2操作,输出...

2014-08-22 00:13:00 187

转载 HDU 4960 Another OCD Patient 简单DP

思路:  因为是对称的,所以如果两段是对称的,那么一段的前缀和一定等于另一段的后缀和。根据这个性质,我们可以预处理出这个数列的对称点对。然后最后一个对称段是从哪里开始的,做n^2的DP就可以了。代码:   1 #include <iostream> 2 #include <cstdio> 3 #include <cstr...

2014-08-21 00:36:00 92

转载 HDU 4941 Magical Forest (Hash)

这个题比赛的时候是乱搞的,比赛结束之后学长说是映射+hash才恍然大悟。因此决定好好学一下hash。题意:  M*N的格子,里面有一些格子里面有一个值。  有三种操作:    1.交换两行的值。    2.交换两列的值。    3.询问某个格子的值。  保证,交换的时候要么两行都有值,要么两行都为空。思路:  其实交换两行或者两列的话,相当于把...

2014-08-18 20:35:00 196

转载 HDU 4928 Series 2

有了题解以后这题就成了一个模拟题。不过写了好久才把它写对…… Sad#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <cmath>#include <algorithm&gt...

2014-08-18 20:27:00 69

转载 HDU 4937 Lucky Number 搜索

题意:  给你一个数,求在多少种不同的进制下这个数每一位都是3、4、5、6中的一个。思路:    搜索。枚举这个数在任意进制下的表示,判断是否合法。当数字只有3、4、5、6时,必定有无穷种。  因为数字太大,所以直接枚举必定会超时。  下面有两种剪枝的方法:    1. 先枚举最后一位的情况。 假设数字n在base进制下表示为 a[n]...a[0],即 n...

2014-08-14 22:20:00 131

转载 PKU 2528 Mayor's posters

题意:  一个公告板上面贴海报,宽度都是一样的,长度可能不一样。后面的海报可能把前面的覆盖掉。问最后能看见多少张不同的海报。思路:  这题原来做过,是用线段树的区间染色写的。记录每个区间是纯色还是杂色。最后统计所有颜色。  今天发现可以用一种类似扫描线的想法来做。想象一条扫描线从左往右走。用set来维护当前位置对应的海报集合。然后记录当前位置最新(能被看到)的海报是哪一张...

2014-08-13 17:31:00 69

转载 HDU 4939 Stupid Tower Defense 简单DP

题意:  地图为长为n个单位长度的直线,每通过一个单位长度需要t秒。  有3种塔,红塔可以在当前格子每秒造成x点伤害,绿塔可以在之后格子造成y点伤害,蓝塔可以使通过单位长度的时间增加z秒。  让你安排塔的排列是造成的伤害最大。思路:  最开始想到dp,状态dp[i][r][g][b]表示:假设前i格放了r个红塔、g个绿塔和b个蓝塔,枚举第i+1格放什么。  ...

2014-08-13 10:36:00 106

转载 HNU 12886 Cracking the Safe 二十四点的判断

经典的一个题,今天竟然写跪了……题意: 给你4个数字,让你判断是否能通过四则运算和括号,凑成24点。思路: 暴力枚举运算顺序和运算符。代码: 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include...

2014-08-10 20:04:00 90

转载 HNU 12876 Quite Good Numbers 完美数变形

筛法是一种很快的方法,贴代码纪念一下。 做法很像筛法 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cstdlib> 5 #include <cmath> 6 #include <algo...

2014-08-10 09:43:00 80

转载 HDU 4923 Room and Moor (单调栈)

题意:  给你一个A数列,让你求一个单调递增的B数列(0<=bi<=1),使得sum{(ai-bi)^2}最小。思路:  很明显,如果A = 0...01...1,那么bi=ai即可。  可以证明,如果 A = 1...10...0,那么所有bi达到同一个值的时候取得最优值。 假设 ai = 1, aj = 0, 那么 i<j ,所以bi<=bj。...

2014-08-08 15:12:00 89

转载 HDU 4917 Permutation 拓扑排序的计数

题意:  一个有n个数的排列,给你一些位置上数字的大小关系。求合法的排列有多少种。思路:  数字的大小关系可以看做是一条有向边,这样以每个位置当点,就可以把整个排列当做一张有向图。而且题目保证有解,所以只一张有向无环图。这样子,我们就可以把排列计数的问题转化为一个图的拓扑排序计数问题。  拓扑排序的做法可以参见ZJU1346 。  因为题目中点的数量比较多,所以无法直...

2014-08-08 13:46:00 604

空空如也

空空如也

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

TA关注的人

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