06 2012 档案

摘要:http://poj.org/problem?id=3114/*这道题和3592非常类似,所以做了那道题后再做这道就有感觉了,自己写的而且1Y好开心的样子,哈哈.....题意:战争期间国家之间的通信,给定n个城市,m个城市之间的可传输协议。如果若干个城市强连通则说明他们属于同一个国家股他们之间的通信可立即到达,消耗时间为0,否则就要消耗指定的时间h了。给定k个询问x,y问由x到y的最小耗费时间。思路:首先根据给定m个协议,构建图,然后求强连通分量缩点,将缩点后的图,重新建立,如果属于同一国家他们之间的权值就变为0,不属于同于国家权值仍为h。然后就是spfa求最短路了;*/#include &l 阅读全文
posted @ 2012-06-30 17:04 E_star 阅读(300) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=3592/*题意:给定一个n*m的矩阵,你从左上角出发,规定只能往当前点的右边或者下边走,其中还有一些特殊点*具有特殊的力量可以把你传到特定的一个点(你可以选择传送也可以选择不传送),问从左上角出发到不能走下去,最多能获得的矿石量(每个方格对应着一个数字表示矿石数量)。点#直接跳过思路:首先build1根据题意描述,见图,将二位矩阵转化为一维的点建图,每个点可以向右向下建立有向边,点*还可以向传送点建边。建完后tarjan缩点,然后在根据缩点后的点建图,添加超级源点s,权值为i-j sum[j], 求最长路即可的结果;中间数组开成了44贡献. 阅读全文
posted @ 2012-06-30 10:54 E_star 阅读(287) 评论(0) 推荐(0) 编辑
摘要:以前接触过的算法,现在拾起来还是有些费劲,只能说没有掌握牢固吧:双连通分量:pku 3694Networkhttp://poj.org/problem?id=3694 以前做过的一道题目:http://www.cnblogs.com/E-star/archive/2012/02/15/2353157.html又熟悉了一遍;pku 2942 比较麻烦,先搁着吧:缩点题目:pku 2186Popular Cowshttp://poj.org/problem?id=2186题意:给出n个牛,以及m个羡慕关系,找出最受羡慕的牛,该牛满足其他n-1个牛,都会羡慕它(直接羡慕或者间接羡慕);思路:将强连通 阅读全文
posted @ 2012-06-29 12:06 E_star 阅读(301) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=3422/*题意:给定一个n*n的矩形方格,要求从(1,1)出发,只能往右下角走,(i + 1,j) 或者 (i + n,j)每次走完将格子里面的数累加,并将所走过的格子里面的数置零,问走k能得到的最大的数:*//*网络流的题目建图是关键,这道题目建图很难想啊!首先要拆点。这里将一个点拆分成两个点,建立两条边,一条变得流量为1,权值为 map[i][j],另一条则是流量为无穷,权值为0了。注意这条边是为了保证在走过该店后,map[i][j]为0后,还能继续走因为它有流量且权值为0. 还有就是往右下角走建立流量为无穷权值为0的边。最后要建立的就 阅读全文
posted @ 2012-06-28 16:27 E_star 阅读(210) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=2195题意是:有相同数量的人与房子,每一时刻人都可以花费1$的钱走一步,问让每个人到达一个屋子的最少需要的费用。建立源点与汇点,求有源点到汇点的最小费用最大流;改了一下不需要f[][]的模板。#include <iostream>#include <cstring>#include <cstdio>#include <queue>#include <cstdlib>#define maxn 207using namespace std;const int inf = 9999999 阅读全文
posted @ 2012-06-28 09:18 E_star 阅读(320) 评论(0) 推荐(0) 编辑
摘要:250pt: 题意是给定一个正六边形,在正六边形内划三条不相交的线将其分成四个三角形,求最小的三角形的面积。果断地在推公式的时候把变量当做常量带入,所以致使公式推错。纠结了好久的。划分出来的四个三角形面积都是固定的,推公式计算最小就好了。 s = (sqrt(3)*L*L)/4;500pt:自己没想出来,dp的一道题目;有n个柱子在一条直线方向排列,每个柱子i的高度的取值范围是[1,height[i]],若用一条绳子将每个柱子的最顶端连接起来(共形成n-1段),求所用绳子的最大长度。dp[i][0]表示当前柱子i取最短1,dp[i][1]表示当前柱子i取最长height[i];状态转移方程: 阅读全文
posted @ 2012-06-27 18:46 E_star 阅读(355) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=2516刚接触,所以这道题目整了一天的时间,囧!!题意描述也很难理解:n个店主,要从Dearboy的m个仓库里进k中商品。首先给出n个店主对k种的商品的需求量,然后给出Dearboy的m个仓库中分别存放k中货物的数量。最后给出的是从m个仓库输送k种商品到n个店主的费用。由以上约束条件建立约束图,利用mcmf算法求解。。。#include <iostream>#include <cstring>#include <cstdio>#include <queue>#define maxn 107usi 阅读全文
posted @ 2012-06-25 17:50 E_star 阅读(255) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=1275题意:http://972169909-qq-com.iteye.com/blog/1185527这个解题报告描述的相当详细了。就不多说了;差分约束关键是找出约束条件,然后建图。最后就是套spfa或者bellman_ford的模板就是了;#include <iostream>#include <cstring>#include <cstdio>#include <queue>#define maxn 25using namespace std;struct node{ int v,w; 阅读全文
posted @ 2012-06-24 16:36 E_star 阅读(226) 评论(0) 推荐(0) 编辑
摘要:题意是:fy作为班长,分发糖果给每个孩子,而分发的过程要满足一个约束条件就是 B - A <= C 表示B所得到的糖果不能比A多c个。问fy(n点代表)所能得到的糖果数量与sp(0点代表)所能得到的糖果数目的最大差值。 很明显的差分约束题目根据B - A <= C建立约束图,求最短路得到最大值。不过这里ka queue的实现。用stack来实现才能ac。。。#include <cstdio>#include <cstring>#include <iostream>#define maxn 30007#define maxm 150004using 阅读全文
posted @ 2012-06-23 16:39 E_star 阅读(152) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=2983题意:给定两种约束关系Precise tip is in the form ofP A B X, means defense stationAisXlight-years north of defense stationB.Vague tip is in the form ofV A B, means defense stationAis in the north of defense stationB, at least 1 light-year, but the precise distance is unknown.d[i]表示 阅读全文
posted @ 2012-06-23 11:20 E_star 阅读(188) 评论(0) 推荐(0) 编辑
摘要:最近几天的考试直接把我的生活打乱了,今天一照镜子自己的眼睛简直就是熊猫!这就是平时上课不好好听,不好好利用课上时间的原因。哎,我决定下学期只要上课就好好利用课上时间尽量把所学知识弄懂.不能再睡觉玩手机了,课下时间就专心做ACM。话说最近有一周多都没做过题了,poj的计划依旧是那么慢。说真心话自己心里真的有了些许懒惰,玩的心又收不回来了!考完试了,要收回自己的心了,专心的刷poj计划,抓紧时间补充自己不会不懂的知识,武装自己,迎接今年的网络赛。加油E_star 加油SDUT_ACMer 阅读全文
posted @ 2012-06-21 21:16 E_star 阅读(231) 评论(0) 推荐(0) 编辑
摘要:A题一个博弈论的题目,拿过来果断以为奇数1胜,偶数2胜写完提交直接WA....无语。题意是:给定一个n*m的矩形,两人轮往矩形里放半径为r的盘子,盘子必须连接不能覆盖。求谁先胜?思考,只要第一个人把盘子放在矩形的中心,不论第二个人如何防我只要模仿第二个人怎么放,我肯定能赢。(利用矩形的对称性):所以代码超简单:#include <iostream>#include <cstdio>using namespace std;int main(){ int a,b,r; scanf("%d%d%d",&a,&b,&r); r = 2 阅读全文
posted @ 2012-06-13 09:22 E_star 阅读(241) 评论(0) 推荐(0) 编辑
摘要:spfa:void add(int u,int v,int w){ g[cnt].v = v; g[cnt].w = w; g[cnt].next = pre[u]; pre[u] = cnt++;}bool spfa(int s){ int i; queue<int>q; for (i = 0; i < maxn; ++i) dis[i] = -inf; dis[s] = 0; q.push(s); inq[s] = true; while (!q.empty()) { int u = q.front(); q.... 阅读全文
posted @ 2012-06-12 19:51 E_star 阅读(206) 评论(0) 推荐(0) 编辑
摘要:将其gnome-terminal -t $TITLE -x键如settings treminal launch .....框中即可。。 阅读全文
posted @ 2012-06-12 19:27 E_star 阅读(398) 评论(2) 推荐(0) 编辑
摘要:一个很好的差分约束总结:http://972169909-qq-com.iteye.com/blog/1185527第一:感觉难点在于建图第二:①:对于差分不等式,a - b <= c ,建一条 b 到 a 的权值为 c 的边,求的是最短路,得到的是最大值②:对于不等式 a - b >= c ,建一条 b 到 a 的权值为 c 的边,求的是最长路,得到的是最小值③:存在负环的话是无解④:求不出最短路(dist[ ]没有得到更新)的话是任意解第三:一种建图方法:设x[i]是第i位置(或时刻)的值(跟所求值的属性一样),那么把x[i]看成数列,前n项和为s[n],则x[i] = s[i 阅读全文
posted @ 2012-06-09 10:17 E_star 阅读(273) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=1113题意是给定一个城堡的各个点,然你求出设计一个城墙,包围这个城堡并且保证城墙距离城堡必须大于等于一个给定的距离:首先是利用图报求出最小的包围城堡的凸多边形,然后求出距离,然后再加上一个整圆就OK了,圆的半径就是给定的距离:(整个思路相当于把凸多边形各个边往外移动距离R,此后连接各边的弧组成一个以R为半径的整圆);到此终于把POJ计划的初级阶段刷完了...纪念一下。。#include <cstdio>#include <cstring>#include <iostream>#include <al 阅读全文
posted @ 2012-06-08 17:49 E_star 阅读(275) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=2187给定平面上的一群点求任意两点的最远距离,如果枚举任意两点的话复杂度为o(n^2),在这里肯定超时。可以利用凸包将点的范围缩小到凸包的顶点上再循环枚举任意两点,这里最坏情况也为O(n^2)。不过这里貌似可以过的。另一种方法就是旋转卡壳法了,意思就是寻找任意边的最远点(凸包上的顶点),然后计算该点到两端点的最远距离即可。旋转卡壳法 学习:http://www.cppblog.com/staryjy/archive/2009/11/19/101412.html#include <cstdio>#include <cstri 阅读全文
posted @ 2012-06-08 16:59 E_star 阅读(252) 评论(0) 推荐(0) 编辑
摘要:唉考试周来了,最近一周多都没做题了,感觉怎么生疏了呢!开学时有很好的打算,上课时认真听课,绝不睡觉走神玩手机什么的,课下就专心做ACM,这样考试成绩与ACM就应该会安排的很合理很恰当了!可是自己还是没能做到,课上老师讲的课实在是太无聊了,不得不拿出手机就开玩了,有事还会小憩一会。就这样邋邋遢遢的就过了这一个学期,考试周的来临才让我意识到,计划根本没有很好的实行。上课没有认真,书本上的考试内容一点不懂,只能是考试前几天得临阵磨枪,可这样的学习真的学不到什么东西。就比如我上学期的数字逻辑吧,虽然我考了90多分,但是这门课真心没学到什么东西。还有我好玩的心,总是抑制不住自己。好吧!现在就好好的复.. 阅读全文
posted @ 2012-06-07 20:51 E_star 阅读(195) 评论(2) 推荐(0) 编辑
摘要:怎么说呢,只能说自己还不够熟练,能力还不够,细心成都还不够吧。这样的二分题目在POJ的训练计划里面有类似的题目,自己也是都刷了,可是在调这道题目的时候废了老大的尽了,比赛结束后听polla的一句<t才属于同一类,才知道自己怎么犯了这么二逼的错误呢!唉。。。。自己给弄成>t了。改过后终于出来了。思路:找出最大的t,如果按t分类,可分出1组,按0分类分出n组,二分枚举t然后利用并查集判断分出多少种类。#include <cstdio>#include <cstring>#include <iostream>#define maxn 1007using 阅读全文
posted @ 2012-06-03 12:50 E_star 阅读(207) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=1584题意就是给顶一个多边形的n个点和一个钉子的半径与圆心左坐标:1:判断多边形是否为凸多边形; 2:判断圆心是否在多边形内;3:判断圆的半径是否小于圆心到多边形的最短距离:1:判断多边形是否为凸多边形,只要循环检查多边形任意三点形成的向量的叉积的方向相同即可,这里注意向量叉积方向的判断,右手螺旋定则;只要方向一致就可以了。2:这一步根据黑书上说的有两种方法:(1):环顾法,就是利用点集求角度,叉积求方向,然后求出角度后:angle = 0 表明在在多边形外; angle = pi ||-pi在多边行的边上;angle = 2.0*pi | 阅读全文
posted @ 2012-06-01 08:49 E_star 阅读(318) 评论(2) 推荐(0) 编辑

点击右上角即可分享
微信分享提示