自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

GODSPEED

这世界从来就只有强者的奋斗史,而没有弱者的墓志铭

  • 博客(24)
  • 资源 (1)
  • 收藏
  • 关注

原创 Poj 2559 Largest Rectangle in a Histogram(柱形统计图中的最大矩形面积)

给出一个柱形统计图中,求其中的最大矩形面积做完这道题,搜了一下题解大部分基本都是单调栈......然而做之前并不知道这是什么,其实用递推也可以做这道题,理解起来比较容易。用两个数组l,r记录当前坐标可以向左和向右延伸的最远位置的坐标,然后就是递推了。初始时将l[i],r[i]的值置为i,即自己的坐标。这里拿l[i]举例:从左向右扫描统计图,计算当前位置的l[i]时,如果

2015-06-30 19:48:22 966

原创 uva 1629切蛋糕(dp)

有一个n行m列的网格蛋糕,上面有一些樱桃,求使得每块蛋糕上都有一个樱桃的切割最小长度思路:dp。#include #include #include #include #include #include #include #include #include #include #include#include #include#define eps

2015-06-30 13:16:26 1209 1

原创 uva 10285 最长的滑雪路径(动态规划水题)

求矩阵中最长递减路径的长度#include #include #include #include #include #include #include #include #include #include #include#include #include#define eps 1e-6 #define LL long long usi

2015-06-29 20:14:19 1564

原创 uva 10003Cutting sticks(动态规划水题)

题意:给一根木棍,还有n个切割点,每个切割点的费用为当前切割长度,求最小费用。#include #include #include #include #include #include #include #include #include #include #include#include #include#define eps 1e-6 #def

2015-06-28 19:39:47 482

原创 Poj 1733 Parity Game(离散化+并查集)

题目大意:给出n个数字,m个区间内的数字和的奇偶性,询问从哪句话开始出现错误。1.对于给定区间[l , r]的奇偶性,可以转化为[1. l-1]和[1, r]的奇偶性“关系”,这样就可以用带权并查集来做了,权值为当前结点与根节点的奇偶性关系,每次查询如果l,r根结点相同,那么判断这句话是否正确,如果根节点不同,那么合并。2.由于这道题数据量很大,但是查询只有m(m

2015-06-27 19:30:44 668

原创 poj 1456 Supermarket(并查集维护区间)

题意:有一些货物,每个货物有价值和卖出的截至日期,每天可以卖一个货物,问能卖出的最大价值是多少。思路:算法不难想到,按价值降序排列,对于每一件货物,从deadline那天开始考虑,如果哪天空闲那么将货物在该天卖出。如果直接暴力来做,复杂度为o(n*n),显然不行。可以用并查集来维护当前ddl之前空闲的最近的一天,如果父节点为0说明deadline之前没有空闲的时间,那么该货物就无法

2015-06-26 16:11:55 843

原创 zoj 3261 Connections in Galaxy War(并查集+离线逆向操作)

题目:给出一些点,每个点有权值,然后有一些边,相连。无向的。然后有一些操作query a.表示从a出发的能到达的所有点权值最大的点的编号(相同取编号最小,而且权值要比自己大)destory a,b 表示删除连接a,b的边思路并查集,但是要逆向处理,所以先离线读入,从后向前处理,于是对于destroy操作,等价于连接两个点的操作,然后对于每个询问输出即可#include

2015-06-26 14:13:35 867

原创 hdu 1455 sticks(经典深搜+剪枝技巧)

题意:有一堆的木棒,长度不一,它们是有一些整齐的木棒截断而成的,求最小的木棒原始长度。思路很简单深搜,但是直接深搜的话会tle,首先可以对木棒长度进行排序从大到小,优先使用长度长的木棒,加入当前长度不符合,考虑下一个木棒其次如果长度为零的时候选择木棒失败,那么直接退出,实测加上这一剪枝就可以ac,这一剪枝可以帮助我们尽可能的在靠近树根处剪枝,所以优化效果很明显。然后是如果这次选

2015-06-26 11:42:32 2267 2

原创 hdu 1689 Alien’s Necklace(bfs搜索最小奇数环)

题意,一个无向图,求该无向图中不小于3节点的最小奇数环。思路bfs,但因为要求环上点的数目为奇数,所以不能简单的用一个vis数组记录点是否已访问过,可以改成二维的,vis[u][0]表示点在偶数环中出现过,vis[u][1]表示点在奇数环中出现过#include #include #include #include #include #include #

2015-06-25 21:30:14 901

原创 uvalive 4851 Restaurant(扫描法)

题意:有一个M*M的网格,坐标[0...M-1,0...M-1] 网格里面有两个y坐标相同的宾馆A和B,以及n个餐厅,宾馆AB里面各有一个餐厅,编号1,2,其他餐厅编号3-n,现在你打算新开一家餐厅,需要考察一下可能的位置,一个位置p是“好位置”的条件是:当且仅当对于已有的每个餐厅q,要么p比q离A近,要么p比q离B近,即dist(p,A) #include #include #inc

2015-06-25 15:45:47 787

原创 uva 10765 Doves and Bombs(割顶)

题意:给定一个n个点的连通的无向图,一个点的“鸽子值”定义为将它从图中删去后连通块的个数。求每个点的“鸽子值”。思路dfs检查每个点是否为割顶,并标记除去该点后有多少个连通分量#include #include #include #include #include #include #include #include #include #incl

2015-06-24 14:47:13 1291

原创 uva 11396Claw Decomposotion(二分图判定)

题目大意:给出一个简单无向图,每个点的度为3。判断能否将此图分解成若干爪的形式,使得每条边都只出现在唯一的爪中。(点可以多次出现在爪中)这道题实质上就是问这个图是否为二分图,dfs判定即可#include #include #include #include #include #include #include #include #include

2015-06-24 13:04:01 674

原创 uvalive 4730王国kingdom(并查集+线段树)

题意:有T组测试数据,每组数据的N表示有N个城市,接下来的N行里每行给出每个城市的坐标(0思路:线段树加并查集#include #include #include #include #include #include #include #include #include #include #include#include #include

2015-06-23 21:17:58 856

原创 uvalive 4254 Processor处理器 (二分模拟+贪心)

有n个任务,每个任务有ri,di,wi;代表任务的[ri,di]代表可以做这个任务的时间区间,而wi代表这个任务的工作量;现在有有个处理器,如果它的执行速度是s,则完成第i个任务所需时间wi/s;要求算出处理器执行过程中最大速度的最小值思路很简单二分,但如何模拟是难点,可以模拟处理器每一秒的工作,对于每一秒来说,用优先队列储存当前时间下可以处理的任务,优先处理d小的,如果处理完了,那么

2015-06-21 15:59:04 865

原创 uva11389巴士司机问题(贪心水题)

题目:有n个上午的任务和下午的任务,分配给司机,如果工作总时间超过d,超过的部分要给加班费; 现在让你安排任务,问最小的加班分花费。思路:将下午的工作时间a按降序排序,晚上时间b按升序排序,不难发现只有将这两组按下标一一配对才能是总花费最小(将任意b[i],b[j]调换位置都不如原来的方案更优)

2015-06-21 12:49:38 1198

原创 uva 10891 sum游戏(区间dp)

给定n个数字,A和B可以从这串数字的两端任意选数字,一次只能从一端选取。并且A B都尽力使自己选择的结果为最大的,可以理解成A B每一步走的都是最优的。如果A先选择,则A B差值最大是多少。思路:用d[i][j]表示当前选手先手走能获得的最大总分数,由于总的分数是一定的,那么状态转移方程为d[i][j] = sum(i, j) - min( minleft(i+1, j), m

2015-06-20 01:34:23 1098 1

原创 uva10635 王子和公主(把lcs转化为lis)

有两个长度为p+1和q+1的序列,每个序列中的各个元素互不相同,且都是1~n*n之间的整数,两个序列的第一个元素都是1,求a和b的最长公共子序列的长度。思路很容易想到lcs,但是由于O(pq)的算法肯定会超时,所以不能采用,注意到a和b中的元素互不相同,故可以预处理a中的元素,用trans数组记录a每个元素值对应的位置,然后处理b中的元素,把每个元素转化成该元素在a中的位置,如果没在a中出现那

2015-06-19 23:47:06 1379

原创 uvalive 4356 火势控制系统

在平面上有n个目标点,目标是找出一个圆心在(0,0)点处的扇形,至少覆盖其中的k个点,使得该扇形的面积最小思路先枚举r再枚举角度#include #include #include #include #include #include #include #include #include #include #include#include #inc

2015-06-15 21:34:21 1104

原创 uva 11054 Gerovia的酒交易(贪心+树状数组)

直线上有n个等距的村庄,每个村庄要么买酒,要么卖酒。把k个单位的酒从一个村庄运到相邻村庄需要k个单位的劳动力。问最少需要多少劳动力才能满足所有村庄的需求思路贪心#include #include #include #include #include #include #include #include #include #include #includ

2015-06-15 14:05:08 799

原创 uva 10391复合词compound words(Trie+set)

给定一个词典,要求求出其中所有的复合词,即恰好有两个单词连接而成的词trie存储以该单词为前缀的单词数量,然后对于每个单词,看在字典中的以该单词为前缀的单词“减去”原单词剩下的单词是否在字典中,如果是储存这个答案到ans的set中#include #include #include #include #include #include #include #inc

2015-06-15 12:36:42 693

原创 uva 10125和集 sumset(set)

给定数字集合,找出最大的d,使得a+b+c=d且abc均在数字集合中,集合元素数量不超过1000思路是把等式变换为d-c=a+b,这样只要枚举d,c,验证d-c是否在任意两元素之和所在的集合中,注意abcd不能重复,所以需要一些额外的判重条件#include #include #include #include #include #include #include

2015-06-14 23:39:05 923

原创 uvalive 4727 jump跳跃(dp/约瑟夫问题变形)

题意是: 个数组成一个环,从第k个元素开始删除,每隔k个元素删一个,问最后删除的三个是什么思路:约瑟夫问题变形,倒数第二个第三个求法与最后一个元素求法相同#include #include #include #include #include #include #include #include #include #include #i

2015-06-14 20:36:50 911

原创 uvalive 4394 string painter (序列dp)

两个字符串,s是原串,t是目标串,一次可以把s的任意段所有字母变成同一个字母,问用最少次数将s变成t。

2015-06-14 17:52:03 852

原创 2015百度之星初赛2 1004 魔法因子(暴力+数学)

2015百度之星初赛2 1004 魔法因子 解题报告

2015-06-06 22:24:02 693

百鸡问题详解

c语言实验题中的百鸡问题对理解c语言很有帮助多看无害

2014-04-11

空空如也

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

TA关注的人

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