自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

happy_lcj

此博客暂停更新,详情请见 http://happylcj.github.io/

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

原创 hdu 1535 Invitation Cards (最短路径)

题意:有编号1~P的站点, 有Q条公交车路线,公交车路线只从一个起点站直接到达终点站,是单向的,每条路线有它自己的车费。有P个志愿者早上从1站点出发,每个人要到达一个不同公交站点,(即一个站点有一个人)然后到了晚上再返回点1。求所有人来回的最小费用之和。分析:去的费用是从1站点出发的总和,直接正向建图 回来的费用是从各站点返回的到1站点的费用总和,如果一个一个求,会超时,所以要反向建图

2014-07-22 17:36:08 977

原创 poj 3026 Borg Maze (bfs + 最小生成树)

题意:y行x列的迷宫中,#代表阻隔墙(不可走),空格代表空位(可走),S代表搜索起点(可走) A代表外星人站(可走),现在要从S出发,每次可上下左右移动一格到可走的地方,求到达所有的A 的路线总距离最小值分析:可以先用bfs从上下左右四个方向将所有的A,S两两之间的最短距离,题目的目的是将S与所有的A连通, 使得总距离最小,所以任选一点开始按最小生成树的算法做就行,并非非要从S点开始

2014-07-20 20:56:57 1211

转载 DP_背包专辑

这短时间看了论文《背包九讲》,看到背包问题解法中的优美之处也看到背包问题在现实中的应用,总结出一句话:背包问题值得一看。    背包问题可以概括为这样的模型:有若干种选择,每种选择有一定的代价和价值,做某些选择会得到特定的状态,问我们在约定的条件下怎么得到特定的状态?这里的状态可以是代价和或者价值和或者由其他这两者组合而来的状态。这类问题需要枚举每种状态,但是可以通过动态规划减少枚举的次数,提

2014-05-19 19:07:47 850

原创 2014 多校赛 第一场

题目链接A - Couple doubi题意:桌上共有 k 个球,第i个球的值为 (1^i+2^i+...+(p-1)^i )mod pDouBiXp 和 他的女朋友 DouBiNan 轮流拿球,DouBiNan先拿,所有的球都拿完后,谁手上球的值总和更大谁就赢,已知 k,p,且p为素数,若DouBiNan赢输出"YES",否则输出"NO"

2015-07-13 09:56:01 1480

原创 poj 1026 Cipher (置换群)

链接:poj 1026题意:给定n个大小1-n的不同的整数作为密钥,给定一个字符串,      求将该字符串经过k次编码后的字符串分析:暴力求解会超时,可以利用置换群的知识解题置换群:一个有限集合的一一变换叫做置换,一对对置换组成了置换群。对于一个集合a(a[1],a[2],a[3]...a[n]) 通过置换可以变成     (b[a[1]],b[a[2]],b[a[3

2015-01-29 17:18:38 1346

原创 poj 3071 Football (概率 dp)

题意:有2^n个队,相邻的两两打淘汰赛,n轮后必定会决出冠军,      求最后哪个队夺冠的概率最大分析:dp[i][j]表示第i轮的时候,第j去支队伍赢的概率则dp[i][j]的前提就是i-1轮的时候,j是赢的,且第i轮赢了对方

2015-01-29 17:00:28 1153

原创 poj 2728 Desert King (最优比率生成树)

题意:有n个村庄,给出每个村庄的坐标和海拔,benifit为两点之间的水平距离,cost为两点的高度差,现要求一棵树使得 cost / benift 最小,即求一个最优比例生成树分析:01规划的应用设x[i]等于1或0, 表示边取或者不取则所求的比率 rate = ∑(cost[i] * x[i]) / ∑(benifit[i] * x[i])

2015-01-29 16:36:43 838

原创 poj 2976 Dropping tests (01规划,二分查找)

链接:poj 2976题意:给定n和k,a1,a2...an和b1,b2...bn求扔掉k组数ai,bi 后,下面式子的最大值为多少分析:01规划的基本应用假设最大值为x可得:   100*sigma(a[i])/sigma(b[i])=x---->    100*sigma(a[i])-x*sigma(b[i])=0

2015-01-29 16:00:48 1015

原创 poj 2947 Widget Factory (高斯消元,解模线性方程)

题意:生产一些零件,已知零件种数,记录条数记录只记录了某次生产从周几开始,周几结束,以及生产了哪些产品。每件商品生产所需天数为3-9天。求每样产品需要多少天才能完成。若无解输出Inconsistent data.有无穷解输出Multiple solutions.有唯一解,输出其解

2015-01-29 15:09:57 1697

原创 poj 1905 Expanding Rods (二分查找)

链接:poj 1905截取自某大牛的blog,详情请关注:链接:Enumz题意:一根两端固定在两面墙上的杆长度为L,受热弯曲后变弯曲,长度L′=(1+nc)*L 求前后两个状态的杆的中点位置的距离分析:设L′对应的半径为r,弧长为2α,要求的距离为x

2015-01-28 17:10:35 826

原创 poj 3122 Pie (二分查找)

题意:我生日派对时,准备了n个圆柱形的pie,半径比一定相同,但高都为1,邀请了f个朋友,加上自己一共f+1人,需要将n个pie分给f+1个人要求:每个人分得的pie尺寸要一样大,并且同一个人所分的pie要是从同一个pie上得到的,n个pie分完后可以有剩余求:每个人最多可以分多少

2015-01-28 16:37:21 1814

原创 poj 3440 Coin Toss (概率)

题意:在m*n的网格盘上,每个格子大小都是t*t,现将一个直径为c的硬币扔在向网格盘上,求硬币覆盖1,2,3,4个格的概率分别为多少注:圆心只可能落在在网格盘上分析:问题可转化为求覆盖1,2,3,4个格硬币圆心活动的面积分别推出公式即可求解注意输出格式、、、

2015-01-28 16:07:10 930

原创 poj 1062 昂贵的聘礼 (有限制的最短路)

题意:探险家想娶酋长的女儿,需要昂贵的聘礼,但可以用其他物品加优惠价替代,其他物品也可用另外的物品和优惠价替代,求探险家最少需多少金币可以娶到酋长的女儿?注意:等级限制:如果两人地位等级差距超过了M,就不能"间接交易",但酋长的等级不一定最高分析:这是一道求有等级限制的最短路,可以将每个物品(包括酋长允诺)看成一个结点,替代品间的优惠价为边的权值,

2015-01-28 15:44:38 826

原创 hdu 5139 Formula

即先将多组输入输出存起来,转化为一组,再排序后暴力求解,这样数组只需开到100000

2014-12-07 15:52:33 699

原创 poj 2546 Circular Area (两圆相交面积)

题意:已知两圆的圆心和半径,求两圆相交部分的面积分析:两圆的位置关系有三种:相离,相交,内含相离时:相交面积为0相交时,大扇形面积+小扇形面积-四边形面积内含时,相交面积为小圆面积

2014-11-30 16:01:15 1222

原创 poj 1679 The Unique MST (判断最小生成树是否唯一)

题意:判断最小生成树是否唯一,若唯一,输出最小权值和,否则,输出 Not Unique!判断最小生成树是否唯一的思路:1、对图中的每一条边,扫描其他边,如果存在相同权值的边,则对该边做标记2、然后用Kruskal算法或Prim算法求MST3、求得MST后,如果该MST中未包含做了标记的边,即可判断MST唯一;如果包含做了标记的边,则依次去掉这些边的一条边,再求MST,如果求得的MST权值和原来的MST的权值一样,即可判断MST不唯一。

2014-11-17 16:27:40 1282 1

原创 poj 1659 Frogs' Neighborhood (Havel-Hakimi定理,判断序列是否可图)

其实质是给定一个度序列,判断是否可图,若可图,输出YES,并输出各顶点之间的连边的情况否则,输出NO思路:判断一个序列是否可图,直接利用Havel-Hakimi定理即可

2014-11-17 15:30:54 943

原创 度序列与Havel-Hakimi 定理

度序列:若把图G所有顶点的度排成一个序列s,则称s为图G的度序列序列是可图的:一个非负整数组成的有限序列,如果是某个无向图的度序列,则称该序列是可图的可图的判断一个序列是否是可图的,可以用 Havel-Hakimi定理

2014-11-17 15:16:52 1198

原创 hdu 4323 Magic Number (dp,编辑距离)

题意:给定n个串和m次询问,对于每次询问,给定一个字符串t,和最大操作次数a,问在n个字符串中有多少个能在规定的次数之内变成字符串t.说明:字符串的基本操作仅为:删除、插入和修改一个字符这三种操作我们把进行了一次上述三种操作的任意一种操作称为进行了一步字符基本操作。两个字符串的编辑距离:两个字符串a和b,通过上述的基本操作,把a变成b或b变成a,需要的最少基本字符操作步数称为字符串a和字符串b的编辑距离

2014-11-13 16:39:23 908

原创 poj 1850 Code (组合数学)

题意:合法的字符串序列:由小写字母组成,每一个字符比后一个字符ASCII码要大。将这样的字符串序列按字典序排列编码,第一小的编码为1,第二小的编码为2...依次类推如:a->1,b->2……z->26,ab->27……vwxyz->83681.给定一个字符串,若其合法,输出其编码,否则输出0分析:先判断是否合法,若合法,再算其编码计算编码即计算比该字符串小的字符串的个数,再加1即为其编码

2014-11-11 16:49:23 934

原创 poj 3252 Round Numbers (组合数学)

题意:一个数转化成二进制之后,0的个数大于等于1的为round数,给定一个区间[m,n],问这区间内有多少round数分析:要求[m,n]间的的round数,可以用[1,n+1)的个数减去[1,m)的个数,

2014-11-11 16:13:32 1041 1

原创 poj 1942 Paths on a Grid (组合数学)

题意:给一个n*m的矩阵网格,问有多少种方法从左下角走到右上角。注意n,m都是32位无符号整形范围内,可以直接用64位存,从左下角走到右上角的过程中,每次只能向上或向右走一个单位长度。分析:向上走要走n步,向右走要走m步,就相当于n+m个位置选n个向上或选m个向右

2014-11-11 15:31:29 875

原创 poj 1703 Find them, Catch them (并查集)

题意:在这个城市里有2个黑帮团伙,现在给出N个人,M条信息输入D x y代表x于y不在一个团伙里输入A x y要输出x与y是否在同一团伙或者不确定他们在同一个团伙里分析:虽说是并查集的题,但又有所不同,本题给出的信息为x,y不在一个团伙,而并查集确定的是关于有关系的操作假设x与x+N不在一个团伙,y与y+N不在一个团伙,又x与y不在一个团伙,一共只有2个黑帮团伙,所以x与y+N在一个团伙,y与x+N在一个团伙,

2014-11-11 09:21:42 813

原创 poj 1019 Number Sequence (组合数学)

题意:有一个由数字组成的序列规律为112123123412345123456123456712345678123456789123456789101234567891011 ...输入位置n,计算这一串数字第n位是什么数字

2014-11-08 17:00:52 876

原创 poj 1260 Pearls ( 区间dp )

题意:给出n类珍珠,所需它们的数量,以及它们的单价,要求用最少的钱就可以买到相同数量的,相同(或更高)质量的珍珠。注:价格更高的珍珠等级更高,支付规则为:买任一类的珍珠n个(单价:p),都要支付(n+10)*p的钱

2014-11-08 16:15:30 819

原创 Codeforces #275 div2

A.题意:给定左右区间[l,r],求区间内的三个数a,b,c使得a与b互质,b与c互质,但a与c不互质,若不存在,输出-1分析:找连续的偶奇偶序列即可

2014-11-08 09:31:15 813

原创 poj 3414 Pots (bfs)

题意:给出了两个瓶子的容量A,B, 以及一个目标水量C,对A,B可以进行如下操作:FILL(i) 将瓶i装满水DROP(i) 将瓶i倒空POUR(i,j) 将瓶i中的水倒入瓶j,此操作后要么瓶j装满水,要么瓶i为空求至少要几次操作能使A或者B装的水为C,并输出具体操作分析:可以从6个方面bfs,因为要输出具体操作,可以用数组模拟队列,并记录前一次操作的状态,最后再回溯路径

2014-11-07 11:07:38 864

原创 poj 1416 Shredding Company (dfs)

题意:有一种新的碎纸机,要用新的碎纸机将纸条上的数字切成几部分, 求切完后的和最接近而不超过target的值。比如,target的值是50,而纸条上的数字是12346,应该把数字切成四部分,分别是1、2、34、6。所得到的和43 (= 1 + 2 + 34 + 6) 是所有可能中最接近而不超过50的。比如1, 23, 4, 和6 就不可以,因为它们的和不如43接近50,而12, 34, 6也不可以,因为它们的和超过50了。

2014-11-07 10:57:27 960

原创 poj 2676 Sudoku (dfs)

题意:给定一个未完成的数独,0是待填位置,其他均为已填入的数字。 如果能将其补充完整,则输出补充完整的数独(有多组答案输出任意一组),否则原样输出数独:一个9行9列的网格,包括9个3*3的子网格,要求每行、每列、每个子网格内都只能使用一次1-9中的一个数字,即每行、每列、每个子网格内都不允许出现相同的数字。

2014-11-07 10:44:52 781

原创 poj 2531 Network Saboteur

题意:给定一个完全图,求将其分为两部分的边权值和最大如:题中第一组样例:30 50 3050 0 4030 40 0将顶点分为两个集合A={2},B={1,3},sum=C21+C23=90为最大权值和

2014-11-07 09:53:18 777

原创 poj 1129 Channel Allocation (dfs)

题意:如果相邻的中继器使用不同的频道,就不会相互干扰。给定一些中继器的相邻关系,问至少要选几个不同的频道,使得中继器都不互相干扰。分析:这题可以转化为无向图的染色问题,即相邻的点不能染同一种颜色,求至少需要的几种颜色?本题顶点数最多为26,可以直接用暴力搜索即可

2014-11-06 16:55:23 870

原创 poj 2635 The Embarrassed Cryptographer (同余定理,筛选法)

题意:给定一个大数k,k是两个大素数的乘积的值,再给定一个int内的数L 问这两个大素数中最小的一个是否小于L,如果小于则输出这个素数。分析:因为k达到了10^100,只能用字符串读入,再转化为千进制,用int数组存储, 然后枚举小于L的素数,看是否能被整除,即判断k%L是否为0, 这样就得先用筛选法求素数打表,但是注意要打表到大于10^6 关于高精度取余,就需要用到同余定理

2014-11-05 15:34:57 957

原创 poj 2891 Strange Way to Express Integers (解模线性方程组)

题意:有一个数x,给定k组ai和ri,使得x%ai=ri 求x最小为多少分析:求解模线性方程组  x = a1(mod m1)  x = a2(mod m2)  x = a3(mod m3)    先求解方程组前两项。 x=m1*k1+a1=m2*k2+a2 -> m1*k1+m2*(-k2)=a2-a1

2014-11-05 15:16:05 938

原创 poj 2115 C Looooops (解模线性方程)

题意:对于C语言的循环语句for(i=A ; i!=B ;i +=C), 问在k位存储系统中循环几次才会结束。若在有限次内结束,则输出循环次数,否则输出死循环。注:利用了 k位存储系统的数据特性进行循环(会溢出)

2014-11-05 14:48:47 1051

原创 算法总结之求解模线性方程组

1)求解模线性方程 ax = b(mod n)  方程ax = b(mod n) -> ax = b + ny ->ax - ny = b  -> ax + n (-y) =b 其中a,n,b已知。 可用扩展欧几里得来求解该方程的一组特解。  这里给出下列几个定理用来求解方程:  1.当且仅当d|b时,方程ax = b(mod n)有解。d=gcd(a,n)  2.ax = b

2014-11-04 15:41:33 3555

原创 poj 1845 Sumdiv (同余定理,快速幂取余)

题意:求A^B的所有因子的和对9901取余后的值如:2^3=8,8的因子有 1,2,4,8,所有和为15,取余后也是15应用定理主要有三个:(1)整数的唯一分解定理: 任意正整数都有且只有一种方式写出其素因子的乘积表达式。 A=(p1^k1)*(p2^k2)*(p3^k3)*....*(pn^kn) 其中pi均为素数

2014-11-04 08:44:37 1303

原创 hdu 5087 Revenge of LIS II ( LIS ,第二长子序列)

题意:求第二大的最长升序子序列分析:这里的第二大指的是,所有的递增子序列的长度(包括相等的),从大到小排序后,排在第二的长度BestCoder Round #16 上的第二题,注意 1 1 2 这组数据,答案应为2

2014-11-03 15:14:40 852

原创 poj 2299 Ultra-QuickSort (归并排序,逆序数)

题意:给出长度为n的序列,每次只能交换相邻的两个元素问至少要交换几次才使得该序列为递增序列分析:冒泡排序每次只能交换相邻两个元素,也就是求用冒泡排序使其为递增序列的交换次数,每交换一次记录一次就好但是这题数据较大,冒泡排序效率比较低,会超时的这里就可以利用归并排序了

2014-11-01 17:11:21 1202

原创 归并排序

归并(Merge)排序是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个有序的子序列,再把有序的子序列合并为整体有序序列。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。

2014-11-01 16:21:30 703

原创 poj 3267 The Cow Lexicon (dp)

题意:给定一个主串,和单词序列,问最少在主串删除多少字母,可以使其匹配到单词序列,如browndcodwcowmilkwhiteblackbrownfarmer删除主串中的两个d,brown和cow就与整个主串匹配了

2014-11-01 15:10:46 865

空空如也

空空如也

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

TA关注的人

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