摘要:
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];状态转移方程: 阅读全文
摘要:
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 阅读全文
摘要:
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; 阅读全文
摘要:
题意是: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 阅读全文
摘要:
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]表示 阅读全文
摘要:
最近几天的考试直接把我的生活打乱了,今天一照镜子自己的眼睛简直就是熊猫!这就是平时上课不好好听,不好好利用课上时间的原因。哎,我决定下学期只要上课就好好利用课上时间尽量把所学知识弄懂.不能再睡觉玩手机了,课下时间就专心做ACM。话说最近有一周多都没做过题了,poj的计划依旧是那么慢。说真心话自己心里真的有了些许懒惰,玩的心又收不回来了!考完试了,要收回自己的心了,专心的刷poj计划,抓紧时间补充自己不会不懂的知识,武装自己,迎接今年的网络赛。加油E_star 加油SDUT_ACMer 阅读全文
摘要:
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 阅读全文
摘要:
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.... 阅读全文
摘要:
将其gnome-terminal -t $TITLE -x键如settings treminal launch .....框中即可。。 阅读全文
摘要:
一个很好的差分约束总结: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 阅读全文
摘要:
http://poj.org/problem?id=1113题意是给定一个城堡的各个点,然你求出设计一个城墙,包围这个城堡并且保证城墙距离城堡必须大于等于一个给定的距离:首先是利用图报求出最小的包围城堡的凸多边形,然后求出距离,然后再加上一个整圆就OK了,圆的半径就是给定的距离:(整个思路相当于把凸多边形各个边往外移动距离R,此后连接各边的弧组成一个以R为半径的整圆);到此终于把POJ计划的初级阶段刷完了...纪念一下。。#include <cstdio>#include <cstring>#include <iostream>#include <al 阅读全文
摘要:
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 阅读全文
摘要:
唉考试周来了,最近一周多都没做题了,感觉怎么生疏了呢!开学时有很好的打算,上课时认真听课,绝不睡觉走神玩手机什么的,课下就专心做ACM,这样考试成绩与ACM就应该会安排的很合理很恰当了!可是自己还是没能做到,课上老师讲的课实在是太无聊了,不得不拿出手机就开玩了,有事还会小憩一会。就这样邋邋遢遢的就过了这一个学期,考试周的来临才让我意识到,计划根本没有很好的实行。上课没有认真,书本上的考试内容一点不懂,只能是考试前几天得临阵磨枪,可这样的学习真的学不到什么东西。就比如我上学期的数字逻辑吧,虽然我考了90多分,但是这门课真心没学到什么东西。还有我好玩的心,总是抑制不住自己。好吧!现在就好好的复.. 阅读全文
摘要:
怎么说呢,只能说自己还不够熟练,能力还不够,细心成都还不够吧。这样的二分题目在POJ的训练计划里面有类似的题目,自己也是都刷了,可是在调这道题目的时候废了老大的尽了,比赛结束后听polla的一句<t才属于同一类,才知道自己怎么犯了这么二逼的错误呢!唉。。。。自己给弄成>t了。改过后终于出来了。思路:找出最大的t,如果按t分类,可分出1组,按0分类分出n组,二分枚举t然后利用并查集判断分出多少种类。#include <cstdio>#include <cstring>#include <iostream>#define maxn 1007using 阅读全文
摘要:
http://poj.org/problem?id=1584题意就是给顶一个多边形的n个点和一个钉子的半径与圆心左坐标:1:判断多边形是否为凸多边形; 2:判断圆心是否在多边形内;3:判断圆的半径是否小于圆心到多边形的最短距离:1:判断多边形是否为凸多边形,只要循环检查多边形任意三点形成的向量的叉积的方向相同即可,这里注意向量叉积方向的判断,右手螺旋定则;只要方向一致就可以了。2:这一步根据黑书上说的有两种方法:(1):环顾法,就是利用点集求角度,叉积求方向,然后求出角度后:angle = 0 表明在在多边形外; angle = pi ||-pi在多边行的边上;angle = 2.0*pi | 阅读全文
摘要:
http://poj.org/problem?id=3863题意:一栋大楼有无数层,每个电梯有两个开关,选择向上ui层,向下di层,问一共按n次开关最低能到达第几层,起点为第0层,如果坐在的层数小于di不能往下走。扩展欧几里德:通过这个题对扩展欧几里得又有了新的认识:首先设向上按x次,向下按y次,能到达的最低层数为z.则得到(1) ui*x - di*y = z; (2) x + y = n;联合(1),(2)得:-z + (ui + di)*x = n*di;转化一下得到 a*x + b*y = p 形式的式子,于是就可以利用扩展欧几里得求x的最小正整数值即可。 但是必须注意的是:在利用扩展 阅读全文
摘要:
http://ac.jobdu.com/problem.php?pid=1421第一题:题意就是给定n个点每个点可能带表Female或者Male,以及给出各个节点的关系矩阵,让你求出现AbOr的期望,、AbOr这样定义:1:必须是Male;2:他至少有m个Female朋友;刚开始我一直以为求的是AbOr出现的概率,所以显示按每个节点两种状态(F ,M)爆搜所有可能的情况然后除以总的可能(2^N)样例竟然都过了,提交直接TLE因为本菜没有注意到T = 10000 这样复杂度就成了10^4*2^20了,指定超时。后来想到了循环每个节点,然后检查他的哦鞥有节点只有他的朋友节点大于m 才有可讨论性,假 阅读全文
摘要:
http://poj.org/problem?id=1408题意是给定一个1*1的方格,然后每个边有n个点,然后连线求交织出来的四边的最大面积。首先利用叉积求出所有的交点,(注意边界点单独处理),然后循环遍历所有的四边形求面积。取最大即可。#include <iostream>#include <cstdio>#include <cstring>#define maxn 33using namespace std;const double eps = 1e-8;double a[maxn],b[maxn],c[maxn],d[maxn];struct poi 阅读全文
摘要:
http://poj.org/problem?id=2031题意就是给你n个球的(球心以及半径),然后求最小生成树就欧了,这里的关键部分是对于重复的球的路径长度的处理#include <iostream>#include <cstring>#include <cstdio>#include <cmath>#define maxn 107#define inf 999999999using namespace std;const double eps = 1e-6;struct node{ double x,y,z,r;}p[maxn];doubl 阅读全文
摘要:
http://poj.org/problem?id=1039黑书上的一道题目:题意:有一宽度为1的折线管道,上面顶点为(xi,yi),所对应的下面顶点为(xi,yi-1),假设管道都是不透明的,不反射的,光线从左边入口处的(x0,y0),(x,y0-1)之间射入,向四面八方传播,求解光线最远能传播到哪里(取x坐标)或者是否能穿透整个管道. 如果一根光线自始至终都未擦到任何顶点,那么它肯定不是最优的,因为可以通过平移来使之优化,如果只碰到一个顶点,那也不是最优的,可以通过旋转,使它碰到另一个顶点,并且更优,即最优光线一定擦到一个上顶点和一个下顶点. 这样枚举所有的上下两个转折点形成线段,然后从0 阅读全文