POJ
文章平均质量分 71
__简言
如能忘掉渴望 岁月长 衣裳薄
展开
-
PKU--1001(hdu 1063)---[Exponentiation] 字符串模拟
解题思路: 针对数据的特点nWA的请注意。输入数据需要考虑R和n的特殊情况!分情况讨论:R:1,整数2,小数然后对于每一种情况又分有无前导零,后导零。R:000000 000100R:小数点可以在任意位置如:.00000 000.00 00000.原创 2010-11-10 22:54:00 · 1270 阅读 · 0 评论 -
POJ--2983[Is the Information Reliable?] 差分约束
这题是判断图中是否存在环(用最短路或最长路), 开始用spfa, 狂WA,想不通,看了讨论说要添加一个超源点,添加了就AC了。 总结:用spfa算法判断图中是否存在环,要保证从源点开始,能到达各个顶点,这样才能保证差分约束里的各个不等式成立。因为要是源点到达不了某个顶原创 2011-08-01 00:37:30 · 567 阅读 · 0 评论 -
POJ--3159[Candies] 差分约束
题目意思:flymouse是幼稚园班上的班长,一天老师给小朋友们买了一堆的糖果,由flymouse来分发,在班上,flymouse和snoopy是死对头,两人势如水火,不能相容,因此fly希望自己分得的糖果数尽量多于snoopy,而对于其他小朋友而言,则只希望自己得到原创 2011-08-01 00:35:03 · 625 阅读 · 0 评论 -
POJ--1417[True Liars] 并查集+背包
题目大意:一共有p1+p2个人,分成两组,一组p1,一组p2。给出N个条件,格式如下:x y yes表示x和y分到同一组x y no表示x和y分到不同组问分组情况是否唯一,若唯一则输出方案,否则输出no。保证不存在矛盾条件,但是有可能出现x=y的情况。 参原创 2011-07-30 23:16:44 · 1299 阅读 · 0 评论 -
POJ--3280[Cheapest Palindrome] DP
字符串DP dp[i][j]表示在区间i j范围内构成回文的最小花费应为删除一个字符和添加一个字符时等价的,所以考虑最小的一种即可如果当前匹配的两个字符相等,即str[i] == str[j] 那么dp[i][j] = dp[i+1][j-1](显而易见)如果不等原创 2011-07-30 15:10:31 · 613 阅读 · 0 评论 -
POJ--1947[Rebuilding Roads] 树形DP
题意:给你一棵树,让你求最少剪掉多少条边可以剪出一棵边数为p的子树. 思路:(树形DP)(1):f[i][j]:表示以i为根(包含i),共j个节点需要切断的路的数量(2):f[i][j+k]=min(f[i][j+k],f[i.son[t]][k])(t为原创 2011-07-30 14:18:17 · 598 阅读 · 0 评论 -
HDU--3592[World Exhibition] 差分约束
题目要求最大值,那么将不等式都变为 建图时注意题目的附加条件:1到N按顺序排即S[I+1]-S[I]>=0 => S[I]-S[I+1] INPUT化为:s[a]-s[b]s[b]-s[a] 如果有负环,说明无满足要求的排法,输出-1原创 2011-08-01 01:01:10 · 979 阅读 · 1 评论 -
POJ--1322[Chocolate] DP+概率
思路:dp(1):dp[N][M]表示取N个后剩下M个的概率;(2):利用N很大时的收敛性: if(N>1000) N=1000+N%2;状态转移方程:dp[N+1][M+1]=dp[N][M]*(C-M)/C; if(M+1dp[N+1]原创 2011-07-30 14:49:38 · 742 阅读 · 0 评论 -
POJ--1191[棋盘分割] 经典的记忆化搜索
思路:(具体参考《算法艺术与信息学竞赛》)1,先化简均方差公式,可以看出,只需要让每个分割后的矩形的总分的平方和尽量小,即可使均方差最小。2,考虑左上角坐标为(x1,y1),右下角坐标为(x2,y2)的棋盘,设它的总和为s[x1,y1,x2,y2]切割k次以后得到k+1块原创 2011-07-30 14:38:39 · 578 阅读 · 0 评论 -
POJ--2142[The Balance] 扩展欧几里德
题意:Ax+By=C;求一组解x,y使abs(x)+abs(y)最小,若abs(x)+abs(y)相等,则使(A*abs(x)+B*abs(y))最小 解法:在有解的情况下先得到一组解使x为最小正数,然后分别向上和向下枚举直到x,y异号停止,中间不停更新答案。每次x-dx原创 2011-07-30 13:54:56 · 799 阅读 · 0 评论 -
POJ--3521[Geometric Map] 几何图上的最短路
题目大意:给你一幅图,上面有一些“街道”和“标记边”组成。问你某两点之间的最短路径。(“标记边”用来规定“街道”的方向)。 街道:表示两点之间有边相连。标记边:标记边的一端悬空,令一端和一条道路相交(相交一定在中间,不会在道路端点处)。标记规则:假设街道的向量为(a,b);标记边原创 2011-07-29 00:59:33 · 1114 阅读 · 0 评论 -
POJ--1379[Run Away] 模拟退火
Run AwayTime Limit: 3000MSMemory Limit: 65536KTotal Submissions: 1967Accepted: 549<br />DescriptionOne of the traps we will encounter in the原创 2010-11-23 23:40:00 · 1320 阅读 · 0 评论 -
POJ--3580[SuperMemo] Splay_Tree
第一道Splay_Tree.题意:给你一段区间,有M个操作,让你对这段区间进行维护。区间操作:(1):ADD x y D 对一段区间都增加一个值value(2):REVERSE x y 翻转一个区间(3原创 2011-09-08 12:40:51 · 1447 阅读 · 0 评论 -
POJ--3686[The Windy's] 最小费用流或KM
题意:有N个任务和M个机器,给出第i个任务在第j个机器完成的时间map[i][j],每台机器同一时刻只能处理一个任务,机器必须完整地完成一个任务后才能接着完成下一个任务。问N个任务完成时间的平均值最少为多少。关键:设N个任务的执行时间分别为T1,T2…TN,则N个原创 2011-08-07 18:58:31 · 1094 阅读 · 0 评论 -
POJ--3697[USTC campus network] BFS+hash(O(N^2))
题意:给定一个包含N(1 ≤ N ≤ 10,000)个顶点的无向完全图,图中的顶点从1到N依次标号。从这个图中去掉M(0 ≤ M ≤ 1,000,000)条边,求最后与顶点1联通的顶点的数目。思路:由于数据过大,不能开矩阵直接存(会MLE)。所以每次只能判原创 2011-08-07 13:26:31 · 1343 阅读 · 0 评论 -
POJ--1201[Intervals] 基础的差分约束
题目大意:给出N个整数区间[ai,bi],并且给出一个约束ci,( 1= ci个,求出数组Z的最小长度。 分析:对于给定的条件,假设S[j]为数组Z在[0,j]上的包含的元素个数,则我们可以根据条件得到S[bi+1] - S[ai] >= ci ===> S[ai原创 2011-08-01 01:04:41 · 866 阅读 · 0 评论 -
POJ--1275[Cashier Employment] 差分约束
设num[i] 为来应聘的在第i个小时开始工作的人数 r[i] 为第i个小时至少需要的人数 x[i] 为招到的在第i个小时开始工作的人数根据题意有: 0 x[i] + x[i-1] +原创 2011-08-01 00:44:53 · 1016 阅读 · 2 评论 -
POJ--1716[Integer Intervals] 差分约束
题意: 给出N个整数区间[ai,bi],使得序列在区间[ai,bj]的个数>=2个,求出序列的最小长度.此题和1201题类似,不过1201题用Bellman_Ford算法求解会超时,可用SPFA算法求解. 分析: 对于给定的条件,令t[i]表示i是否在原创 2011-07-30 23:54:03 · 652 阅读 · 0 评论 -
POJ--3169[Layout] 基础的差分约束
题意:一堆牛在一条直线上按编号站队,在同一位置可以有多头牛并列站在一起,但编号小的牛所占的位置不能超过编号大的牛所占的位置,这里用d[i]表示编号为i的牛所处的位置,即要满足d[i]-d[i+1] 1>如果是喜欢关系:即需要满足d[b]-d[a]原创 2011-07-30 23:49:05 · 717 阅读 · 0 评论 -
POJ--1286[Necklace of Beads] Polya定理
Polya定理:设G={a1,a2,...,a|G|}是N={1,2,...,N}上的置换群,现用m种颜色对这N个点染色,则不同的染色方案数为S=(mc1+mc2+...+mc|G|)/|G| 旋转:n个点顺时针(或逆时针)旋转i个位置的置换,轮换个数为gcd原创 2011-07-30 13:58:00 · 676 阅读 · 0 评论 -
POJ--2142[The Balance] 扩展欧几里德
题意:Ax+By=C;求一组解x,y使abs(x)+abs(y)最小,若abs(x)+abs(y)相等,则使(A*abs(x)+B*abs(y))最小 解法:在有解的情况下先得到一组解使x为最小正数,然后分别向上和向下枚举直到x,y异号停止,中间不停更新答案。每次x-dx原创 2011-07-30 13:48:43 · 548 阅读 · 0 评论 -
POJ--1364[King] 基础的差分约束
算法:差分约束 设Sum(i)=a1+a2+...+ai任何一个序列aSi + aSi+1 + ... + aSi+ni可以变成 Sum(Si+ni)-Sum(Si-1)然后如果是>号就两边乘-1,>号就变最后就是把然后就化成标准的差分约束了原创 2011-08-01 00:48:58 · 607 阅读 · 0 评论 -
POJ--3815[The Ninja Way] 差分约束
题意:给你一排树,问你最低到最高的最大距离多少?(1)(行走方式:h1->h2->````hn)其中h1到hn严格递增。(2)相邻(高度相邻)两树的距离要 思路:差分约束 构图:(1):相邻(高度相邻)两树的距离要for(i=1;i<N;i++)原创 2011-07-30 23:36:02 · 1118 阅读 · 0 评论 -
POJ--1191[棋盘分割] 记忆化搜索
思路:(具体参考《算法艺术与信息学竞赛》)1,先化简均方差公式,可以看出,只需要让每个分割后的矩形的总分的平方和尽量小,即可使均方差最小。2,考虑左上角坐标为(x1,y1),右下角坐标为(x2,y2)的棋盘,设它的总和为s[x1,y1,x2,y2]切割k次以后得到k+1块原创 2011-07-30 14:36:03 · 618 阅读 · 0 评论 -
POJ--3567[Cactus Reloaded] 求仙人掌树的直径
题目大意:给一棵仙人掌(就是所有的边都在至多一个环中的图),求仙人掌的直径,也就是最短路径最长的一对点的最短路径。思路: /*无向图的连通性*//*思路:(1):一遍dfs,遇到割点执行Judge()(2):遇到割点时栈(存边)里面的图形只可能是1.长度为1的线段;2.一个圆环。原创 2011-07-24 12:05:56 · 2416 阅读 · 1 评论 -
POJ--2749[Building roads] 2-SAT第五题,2—SAT+二分判定
题目描述:有n个农场,每个农场有坐标x,y。有两个集合点s1和s2(也有坐标),每个农场必须连接其中的一个(有且仅有一个)。然后有A个条件,每个条件a,b表示a农场不能和b农场连接在一个集合点。然后再有B个条件,每个条件a,b表示a农场必须和b农场连接在一个集合点。问你,在各种合原创 2011-07-23 23:43:52 · 560 阅读 · 0 评论 -
POJ--3683[Priest John's Busiest Day] 2-SAT第四题
题目描述:有n个婚礼,每个婚礼有起始时间si,结束时间ti,还有一个主持时间ti,ti必须安排在婚礼的开始或者结束,主持由祭祀来做,但是只有一个祭祀,所以各个婚礼的主持时间不能重复,问你有没有可能正常的安排主持时间,不能输出no,能的话要输出具体的答案:即每个婚礼的主持时间段是什原创 2011-07-23 23:41:33 · 620 阅读 · 0 评论 -
HDU--1077[Catching Fish] 枚举圆心
题目大意:给出一些点坐标,问有一个半径为1的圆,一次最多能圈多小个点。 思路分析:(1):一开始想用随机算法(模拟退火)把它水过去得。可是。。。。“火候”一直把握不好,不是WA就是TLE。。。可能这题数据卡的紧,不能用这个方法吧。。。。(2):第二种思路就是---枚举。应该很容易原创 2011-07-23 22:58:34 · 761 阅读 · 0 评论 -
POJ--1847[Tram] 最小费用流
题意:给你N个点,告诉你每个点u可以到达的点v,但是可以到达的点又分两类:一类可以直接到达;另一类要经过一次“转换”后可以到达。现在问你点A到点B至少要“转换”几次能到达。如果A不能到B则输出“-1”,否则输出要“转换”的最少次数。 思路:最小费用最大流建图:(1):每个点向他可原创 2011-07-23 22:52:31 · 573 阅读 · 0 评论 -
POJ--1113[Wall] 凸包周长+圆的周长
题目大意:给你N个点的坐标和一个距离限制L,让你求出1.包含所有点,2.且不能小于L;的最小周长。 思路分析:其实就是凸包周长+圆的周长。。。。(直接套模版)。。。1A.。。。 感想:做几何题模版很重要。。。。(平时多收集)。。。不过最重要的是自己理解。。。。 CODE:/*计原创 2011-07-23 21:52:31 · 614 阅读 · 0 评论 -
POJ--2060[Taxi Cab Scheme] 最小路径覆盖
题目大意:给你M个出租车请求,告诉你每个请求的出发时间s,起点坐标(x1,y1),终点坐标(x2,y2)。要你求出完成所有请求所需要的最少出租车辆数。(其中若一辆出租车完成请求u后,从u的终点赶到请求v的起点后的时间小于请求v的起始时间。那么这辆出租车还可以去完成请求v)。 思路原创 2011-07-23 21:46:37 · 562 阅读 · 0 评论 -
POJ--2823[Sliding Window] 线段树或优先队列
题意:说得很明白,这里就不说了。。。 思路:(1):一开始感觉是到很裸的线段树(节点存区间极值),所以就敲了下代码,1A.....(2):不过看了下discuss,后面写着能用优先队列实现,不过我不太会,参考了网上的方法也A了。 感想:STL很强大。。。。。 CODE(1):线段原创 2011-07-23 21:29:37 · 770 阅读 · 0 评论 -
POJ--3678[Katu Puzzle] 第三道2-SAT
题目大意:一些点,点的取值可以是0或者1,没有告诉你具体取值。一些边,有权值,有运算方式(并,或,异或),要求和这条边相连的两个点经过边上的运算后的结果是边的权值。问你有没有可能把每个点赋值满足所有边的要求。 思路分析:每个点只有0,1两种值,并且和边对面的点有约束条件,所以可以原创 2011-07-23 23:38:58 · 488 阅读 · 0 评论 -
POJ--3735[Training little cats] 矩阵建模+快速幂
感想:刚拿到这题时说实话完全没思路,虽然知道要用矩阵快速幂(看m的范围就能确定m≤1,000,000,000),但实在不知道如何构造矩阵,于是便参考了网上某大牛的分析思路,按照他的思路,终于A掉了......不容易啊.... 感觉那大牛讲解的很好,自己就不讲了(是讲不清==!),原创 2011-07-23 21:21:25 · 764 阅读 · 0 评论 -
POJ--2186[Popular Cows]强连通分支+缩点
思路分析:(1)首先用Tarjan求出连通分支的个数,然后依次求各个连通分支的出度是否为0,如果仅有一个连通分支出度为0则这个联通分支内的点的个数就是答案;(2)如果有多于一个的联通分支的出度为0,则说明此有向图肯定不连通。因此直接输出0。(因为缩点后,有向图变成一棵树,若连通则原创 2011-07-23 23:27:39 · 554 阅读 · 0 评论 -
POJ--2286[The Rotation Game] IDA*
剪枝:每次不要往反方向搜。注意:长度相同要输出字典序最小的操作PS.一开始是用状态压缩+BFS的,结果无情的TLE了、、、 估价函数:int h(int st[])//估价函数{ int i,num[4]={0}; for(i=0;i<8;i++) num[s原创 2011-07-27 03:44:28 · 654 阅读 · 0 评论 -
POJ--1639[Picnic Planning] K限度最小生成树
算法流程:1.将该点(以下用v0表示)从图中删除,将得到m个连通分量。2.对每个连通分量求最小生成树,假设m个。3.从每个连通分量中找与v0关联的权值最小的边,与v0相连接,这样将得到v0的最小m度生成树4.如果 k 5.如果 k >=m ,那么考虑构建 m+1度 最小生成树原创 2011-07-27 03:36:03 · 882 阅读 · 0 评论 -
POJ--3921[Destroying the bus stations] 最小费用流+拆点
题目大意:一个有向图有N(NPS.不存在一条边直接连1-N。 思路:最小费用流+拆点 构图:(1):把[2..N-1]个点拆成i->i+N连一条容量为1费用为0的边;//保证每个点被破坏一次(2):把1和N拆点,连一条;//保证不会破坏(3):如果存在一条边(u->v)怎连一条u原创 2011-07-26 01:02:48 · 1294 阅读 · 0 评论 -
POJ--3592[Instantaneous Transference] 缩点+求最长路
思路:(1):构完图缩点然后求最长路(2):注意*号的位置可以选择不跳(3):数据里没有*号跳到#号的情况PS.说实话这题不难,思路和poj3160一样、、 CODE:/*缩点+求最长路*//*注意:*号的位置可以选择不跳*//*AC代码:16ms*/#include原创 2011-07-24 17:35:08 · 697 阅读 · 0 评论 -
POJ--3160[Father Christmas flymouse] 缩点+SFPA求最长路
思路:(1):先对原图进行缩点,即把每个强连通分量缩成一个点,其权值为联通分量里面所有点的权值之和。(2):缩点后重新构图,并把每条又向边上加上权值:sInsert(Belong[u],Belong[v],num[Belong[v]]);(3):然后再重每个入度为零的点s(缩点后原创 2011-07-24 17:33:15 · 695 阅读 · 0 评论