自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(157)
  • 资源 (1)
  • 收藏
  • 关注

原创 Jump Game II

难度:4好题。。动态规划O(n^2)会超时,必须O(n)Given an array of non-negative integers, you are initially positioned at the first index of the array.Each element in the array represents your maximum jump len

2013-11-20 12:37:42 656

原创 3Sum 3Sum Closest 4Sum

3Sum的题意:给出一列数,找出所有的满足条件的三个数,条件:三个数相加等于0 3Sum Closest 的题意:给出一列数,找出三个数使得三个数相加最接近target4Sum:和3sum一样,不过是4个数解法:都一样。。基本改几行就能过另外两个题3Sum的解法:按从小到大排序假设找到的三个数a,b,c满足a+b+c=0a从左往右枚举

2013-11-15 18:27:15 708

原创 Median of Two Sorted Arrays

题意:给数组a[0],a[1]...a[m-1]和数组b[0],b[1]...b[n-1]两个数组均已排序求中位数解法:如果m和n均为偶数或者均为奇数所求为a[i],b[j]平均值,满足i+j=(m+n)/2-1如果a[i]>b[j],则应满足a[i]a[i-1]如果a[i]b[j-1]如果m和n一个为偶数,一个为奇数所求为a[i],b[j]较大值,

2013-11-11 15:53:51 628

原创 HDU4630 No Pain No Game

sample:1108 2 4 9 5 7 10 6 1 352 102 46 91 47 10意思是:1表示测试样例有一个10表示接下来一行有10个数,编号为1-105表示接下来的5次询问每次询问有两个数L R,询问[L,R]区间任意两个数的最大公约数的最大值解法:2013多校第三场的题,官方的题解我这渣渣是看不懂了,以下整理总

2013-07-31 21:08:58 897 1

原创 HDU1561 The more, The Better

根据题意可以建立一颗树要想攻占子节点,必须先攻占父亲节点,以这个关系建立森林在从0号节点引一个关系到所有树根,森林就成为一棵树了状态定义opt[i][j]表示以i号节点为根的子树中选择j个点获得的最大价值状态转移Gem[i]即输入的bopt[i][j]=opt[son1][j1]+opt[son2][j2]+....+opt[son-m][jm]+Gem[i]令d[

2013-07-02 15:48:36 585

原创 POJ2168 Joke with Turtles

50 20 32 11 24 0意为有5只乌龟第一只乌龟说前面有0只乌龟,后面有2只乌龟第二只乌龟说前面有0只乌龟,后面有3只乌龟这些乌龟中一定有撒谎的,否则会发生冲突对每只乌龟,[ai,bi]表示前面有ai只乌龟,后面有bi只乌龟所以其位置一定为[ai+1,n-bi]这个区间内,对于例子[1,3][1,2][3,4][2,3][5,

2013-04-22 19:50:42 681

原创 POJ 1042 Gone Fishing

题意:2 1 10 1 2 5 2 意思是有两个湖,有一个小时的时间让你钓鱼第一个湖泊初始5分钟能钓10个,每过5分钟能钓的鱼减1第二个湖泊初始5分钟能钓2个,每过5分钟能钓的鱼减5,少于0就是0从第一个湖泊到第二个湖泊的时间为2*5分钟你只能在一个湖泊钓鱼,然后走到下一个湖泊,不允许回头解法:枚举到达的最后一个湖泊,则已知将会在哪些湖泊钓鱼

2013-04-04 23:37:02 574

原创 hdu3530 Subsequence

题意:给出n,m,k和n个数a[0],a[1],,,,a[n-1]对n个数,求其中的一个最长的连续子序列这个字序列的最大值与最小值之差满足大于等于m小于等于k动态规划状态定义dp[i]表示以i结束的满足条件的最长字序列的长度转移方程对dp[i-1]的序列中的最大值MAX和最小值MIN如果此序列中加入a[i]后MAX-MIN若MAX-MIN>k,可通过踢出MAX与

2013-03-10 19:48:32 836

原创 poj2559 Largest Rectangle in a Histogram hdu1505 City Game

POJ2559题意:在直方图中找出最大矩形如图,输入数据为7 2 1 4 5 1 3 37为个数,直方图如上图枚举所有宽为1的矩形,往两边扩充,找出完整包含他的且面积最大的矩形。若假设指定的是第k个宽为1的矩形,他到左边可以扩充到第lk个宽为1的矩形,他到右边可以扩充到第rk个宽为1的矩形,用单调队列求解lk和rk即可。维护递增的单调队列,队

2013-03-10 15:21:42 1034

原创 POJ1182 BIT1063 食物链

题:动物王国中有三类动物 A,B,C ,这三类动物的食物链构成了有趣的环形。 A 吃 B , B 吃 C , C 吃 A 。 现有 N 个动物,以 1 - N 编号。每个动物都是 A,B,C 中的一种,但是我们并不知道它到底是哪一种。 有人用两种说法对这 N 个动物所构成的食物链关系进行描述: 第一种说法是 "1 X Y" ,表示 X 和 Y 是同类。 第二种说法是 "2 X

2013-02-05 15:26:00 433

原创 BIT1054 Largest prime factor

题意:在素数表中2的位置上1,3的位置是2,5的位置上3给一个数,问他的最大素数因子在素数表中的什么位置开始用素数筛选出来后试除果断TLE了。。。改一下素数筛选素数筛选的过程中,定义一个数组,初始代表所有的数都为素数然后一个一个筛掉这里改了一下筛法,代码中讲解#include#include#includeusing namespace std;#def

2013-02-03 18:51:32 357

原创 BIT1052 poj1061 青蛙的约会

拿了以前在pojAC的代码一交,WA了。。。重写了、根据题意有p+m*k=q+n*k (mod L)化简p-q+(m-n)k=(k')*L再化简(m-n)*k+k'*(-L)=q-p另a=m-n,b=-La*k+b*k'=q-p这就可以用扩展欧几里德了#include #includeusing namespace std;long

2013-02-03 17:13:13 595

原创 BIT 1036 篱笆长度

这题之前在poj做过,搬过来居然RE,重写了一遍题意就是给n个点,就是图中的实线的顶点,然后问虚线的长度虚线要求每处距离定点都要大于r解法,求n个点的凸包长度,再加上2*PI*rPI是圆周率,就是答案,至于为什么,看下图就懂了上代码。#include#include#include#include#include#define PI acos(-1

2013-02-02 13:05:37 436

原创 BIT1035 远古石碑

这题调了N久啊有木有,交到hdu都AC了的代码,在BIT就是WA,我调了三个小时了有木有问题:已知多边形的各点的坐标计算一个多边形的重心的坐标,多边形的质量分布均匀按逆时针顺序给出各个点的坐标如图将多边形作如图切割,红点是各个三角形的重心,连起来就是另一个多边形将各个三角形看成一个点,即整个三角形的重量都集中在一个点上然后求各个重心所构成的多边形的重心

2013-02-01 15:31:11 728

原创 BIT1020 小白鼠

先看这个样例,解决这个问题3 0.5 0.25 0.25 瓶子中有毒的概率为0.5,0.25,0.25最先一定是用一只小白鼠实验0.5的那个瓶子,需要第二只白鼠(也就是说0.5那个没有的毒的情况)的概率为0.5,期望为1+0.5*1=1.5,为答案画出图来我画出这个图的时候反应过来了,这不就是哈夫曼树吗构造哈夫曼树,然后算出哈夫曼树的带权路径长度#i

2013-01-28 15:06:03 642

原创 BIT1018 没有上司的聚会

d[i][0]表示不选该节点的以该节点为子树的最大欢乐值d[i][1]表示选择该节点的以该节点为子树的最大欢乐值staff表示员工状态转移为d[i][0]=sum(max(d[i-child][0],d[i-child][1]))d[i][1]=sum(d[i-child][0])#include#include#include#includeusing n

2013-01-28 11:46:12 508

原创 FOJ1076 BIT1005 穿越沙漠

这题一开始想不出来,后来看解题报告说普车在沙漠中建临时油库,是逐步向前推进的,即建好一个油库后,再建下一个油库就懂了_(:з」∠)_设从A点到达B点的路中建立了n个油库,从A到B依次编号为Cn,Cn-1,,,,,,,C1显然C1建立的时候是500升油设在建立Ci(最后有V1升油的时候)的过程中,用了C(i+1)的 V2升油,车子一开始装了0升油,车子往返了k次(k显然为奇数,一

2013-01-14 17:07:15 782

原创 poj 1384 Piggy-Bank

完全背包问题,背包解法详见背包九讲题意:有一个罐子,里面装着钱,你知道它里面装的钱的重量。同时给出所有种类的钱的价值和重量,问罐子装满时的最小重量初始化时,由于只有在体积为0的时候被装满,所以只有d[0]=0,而其他情况都未知,所以设为最大值样例解释310 11021 130 5010 11021 150 301 6210 320 43的意思

2012-11-17 21:27:30 419

原创 poj2352 Stars

题意:给出n个点的坐标值,计算出每个点的位于该点左下方的点的个数level(包括x或y相等的边界),最后统计level从0到n-1的点的个数并输出算法:首先将n个点排序,按照y从小到大,y相等时按x从小到大排序建立树状数组c[],该树状数组的求和功能getsum(i)是求当前已经插入的点的坐标的x值小于等于i的点的个数,即为该点的level值+1代码如下:#includ

2012-10-28 20:45:17 687

转载 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2015-02-23 15:43:31 471

原创 原码,补码,反码与位运算

原码,补码与反码例子:-13,二进制为-1101,使用一个字节表示原码:10001101补码:11110011反码:11110010原码转反码:正数的反码与原码相同,如13的原码为00001101,反码为00001101负数的反码为将原码的数值部分取反,如-13的原码为10001101,反码为11110010原码转补码正数的补码与原码相同,如13的原码为00

2014-01-27 22:13:48 5741

原创 C++中的const

这两天看了各种const使用,写篇总结理理,以下代码使用g++ 4.7编译const的基本使用定义const对象#includeint main(){ const int a=5; a=7; return 0;}定义了一个const对象,错误信息为t.cpp:5:7: 错误: 向只读变量‘a’赋值通过const限定符定义的变量必须在定义时进行初

2014-01-26 17:07:43 646

原创 typedef与struct

struct定义结构体的方式第一种:使用struct { xxx; } t;直接定义结构体变量第二种:使用struct node {xxx} t;定义结构体node,同时定义个变量t此后还可使用struct node这个标识符定义变量t2typedeftypedef的使用语法为typedef 数据类型 标识符;结合struct的用法一使用

2014-01-18 17:52:25 607

原创 蚂蚁爬杆

问题出自编程之美。本文主要针对扩展扩展1:第i个蚂蚁,什么时候走出木杆思路来自http://lam8da.sinaapp.com/?p=11假设蚂蚁从左至右编号为1到n,一共n只蚂蚁设每只蚂蚁都背着一袋粮食,也从左至右编号为1到n设两只蚂蚁相碰时,掉头并交换粮食。由书上的解决原问题的思路,我们可以O(n)时间求出所有粮食走出木杆的时间设一开始有m只蚂蚁的方向向左,n

2014-01-05 20:25:11 847

原创 只考加法的面试题

问题出自编程之美。解法是自己思路3=1+29=4+59=2+3+4问题:对于正整数n,输出所有可能连续自然数(至少两个)之和的算式分析正整数2,3,9,18,30分析2,无解分析3,3=1+2,1个解分析9,9=2+3+4分析18,对其进行因式分解,18=2*3*3设定解中有2个数,无解设定解中有3个数,则有2*3-1,2*3,2*3+1构成一个解

2014-01-03 16:41:04 606

原创 找符合条件的整数

问题出自编程之美,感觉书上讲的比较晦涩,本人最喜欢通过例子来学习了问题:给定一个正整数N,求一个最小的正整数M,使得N*M的十进制表示形式里只有1和0这里分析N=13的情况由于N*M比M有特征,所以从N*M入手设ans=N*M当ans有1位时,ans=1,ans%N=1当ans有2位时,ans=10,11,ans%N=10,11当ans有3位时,ans=100,101,

2014-01-02 20:04:00 681

转载 最大公约数问题

问题与解法均出自编程之美求两数A和B的最大公约数辗转相除法因为有模运算,所以摒弃不用分析a和b若a和b均为偶数,则a和b的最大公约数f(a,b)=2*f(a>>1,b>>1)若a和b为一奇一偶,设a为偶,则a和b的最大公钥数f(a,b)=f(a>>1,b)若a和b均为奇数,则f(a,b)=f(b,a-b)这样不断减小a和b,最终得到结果这种方法的优点在于没有取模运算

2014-01-02 10:40:21 582

原创 精确表达浮点数

问题出自编程之美如何将无限循环小数表示成分数这里只考虑0.a1a2...ana1a2....an........的情况a1a2...an为循环节设N=0.a1a2....anN*10^n=a1a2...an+N得N(10^n-1)=a1a2...anN=a1a2...an/(10^n-1)比如对于无限循环小数0.(142857)循环节为142857转

2014-01-02 10:13:58 660

原创 1的数目

问题出自编程之美给定一个十进制正整数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有1的个数解法:设正整数N,a1a2a3...an为其十进制数表示出现的所有1的个数,等于a1,a2,a3....an上出现的所有的1的个数总和我们先分析an上出现的1的个数首先看几个例子34,245对于34,个位上为1的数有1,11,21,31,总数为4个对于245,个

2014-01-01 21:06:40 526

原创 水王扩展

问题出自编程之美有三个发帖很多的ID,发帖数目都超过了总数的1/4,快速找到这三个ID一开始想着证明每次删除四个不同的ID后,这三个ID占的百分比仍超过1/4,后来证明失败实际上以上证明是没有意义的每次选取四个不同的ID删去,最后一定会只剩下三个ID这三个ID就是解

2013-12-28 22:27:11 592

原创 阶乘

问题出自编程之美问题一:n!的末尾的0的个数解法:设n!素数分解后为n!=(2^x1)*(3^x2)*(5^x3)*(7^x4)*...显然,n!末尾0的个数只和x1,x3有关即末尾0的个数为min(x1,x3)于是原问题转化为了求x1和x3求x1:用一个例子来说明过程,设n=10则n!=1*2*3*4*5*6*7*8*9*10n/2=5     即2,

2013-12-28 21:57:58 549

原创 快速找出故障机器

问题出自编程之美,简化问题描述问题1:有n数a1,a2,,,,,an,其中只有一个数只出现了一次,其余数均出现了两次,求出这个数,比如7 7 6 6 3,答案是3利用异或运算,举上例说明7,7,6,6,3在位运算时的表示为111,111,110,110,011将各位异或,第一位1^1^1^1^0=0第二位1^1^1^1^1=1第三位1^1^0^0^1=1

2013-11-28 23:04:35 746

原创 中国象棋将帅问题

问题出自编程之美问题描述:用A表示将,B表示帅,求A,B所有合法位置,要求程序中只能使用一个字节存储变量将A所有可能的位置按上图编号解法:很容易想到用二进制位表示位置一共9个位置,4个二进制位足够表示,A和B一个8个二进制位,刚好一个字节代码如下#includeint main(){ unsigned char opt=0; for(;(opt&0x

2013-11-27 22:26:35 533

原创 Gray Code

难度:2解法:这题的价值在于有一个结论二进制数n对应的格雷码n^(n>>1)class Solution {public: vector grayCode(int n) { vectorans; n=1<<n; for(int i=0;i<n;i++) { ans.pu

2013-11-26 12:25:09 671

原创 Merge Sorted Array

难度:2解法:归并,如果是按照从小到达从左往右插入A数组,势必要新增一个临时的数组换成从大到小从右往左,就可以省掉这部分空间class Solution{public: void merge(int A[], int m, int B[], int n) { int ia=m-1,ib=n-1; int k=m+n-1;

2013-11-26 12:23:12 527

原创 Submission Details

难度:2一开始的想法是用二进制位表示行列是否应该清空,- -题目没给行列的范围,不好猜标准解法是把标志位放在第一行,第一列数上第一行,第一列的数若为0则代表该行/列应被置0此外维护两个标记,标记第一行第一列是否应该被清空Given a m x n matrix, if an element is 0, set its entire row and column to 0

2013-11-25 10:32:38 610

原创 Edit Distance

难度:2求编辑距离。。。opt[i][j]表示word1的前i个字符与word2的前j个字符的editdistanceword1[i-1] == word2[j-1]  opt[i][j]=opt[i-1][j-1]word1[i-1] != word2[j-1]  opt[i][j]=min(opt[i-1][j]+1,opt[i][j-1]+1,opt[i-1][j-1]+1)

2013-11-25 10:29:20 566

原创 Unique Paths

难度:2DP入门题,挺水的dp[i][j]表示i,j到终点的方法数dp[i][j]=dp[i+1][j]+dp[i][j+1]A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below).The robot can only move e

2013-11-24 19:09:55 539

原创 Spiral Matrix

难度:11Y又失败。。解法:模拟。。class Solution {public: const int LEFT=0; const int RIGHT=1; const int DOWN=2; const int UP=3; vector spiralOrder(vector > &matrix) { vectorans; if(matrix.size(

2013-11-23 21:59:42 526

原创 Combination Sum II

难度:2还是DFS裸搜,1Y失败了Given a collection of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sums to T.Each number in C may only be

2013-11-23 20:53:45 449

国家集训队2009论文集浅谈几类背包题

国家集训队2009论文集浅谈几类背包题,包括了单调队列优化的多重背包,完全背包等常见背包的详细解法

2013-03-12

空空如也

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

TA关注的人

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