摘要: 晚上7点多,从学校东门出来。想走一道没有去过的地方,于是向北走去。出来的原因是想排遣心中的郁闷,人在郁闷的时候会胡思乱想,出来前就在想,路上可能会遇到什么特殊的事情。脚上穿的是跟朋友一起在街对面买的凉鞋,走在路上没有运动鞋穿着舒服;走之前没有喝水,想着那杯开水回去正好晾凉了喝。不经常出门,出来才能体悟到北京的现代化印象,虽然是晚上,街上还是清一色亮晶晶的玻璃高楼。形形色色的高楼大厦看着就赏心悦目,这里比北京西站那边的四不像建筑好看多了。走了很远,人渐渐的变多,道路渐渐变窄,扭头看到街对面的LED大屏广告,3D钢铁侠、超人之钢铁之躯,突然大屏幕刺眼的放光,什么广告没看,脑袋却被那光给逼向了左边, 阅读全文
posted @ 2013-06-19 15:45 墙 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 学习一个新的语言、算法、新的技术,最好是直接上手,或者通过找源码来写个东西出来,这样学习的效率会很高,而且用到的都会学到。做过之后,才会对要学的内容有深刻的理解,这样再进行了理论学习才会有所体悟。之前用GEF做了一个工程,前期学习周期太长,而且没有很好的吸收。后来直接使用了源代码进行构建项目,这样做出来东西后对这个构架才有了一定的认识。 阅读全文
posted @ 2013-05-30 12:00 墙 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 题目描述:原题描述很清楚了,地址是:http://acm.hdu.edu.cn/showproblem.php?pid=1269分析:很简单的模板题,只要看一下是不是强连通图就可以。用一遍tarjan,看在一个集合里的点数是否等于所有点点数N。由于是练习赛,直接拿前面写过的题目poj2186的代码改了改,代码如下:#include<stdio.h>#include<string.h>#define max_n 10005#define max_e 100005int stack[max_n], top; //栈bool visited[max_n]; //该点是否在栈中 阅读全文
posted @ 2012-04-08 13:03 墙 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 题目描述:牛之间有支持关系,这种关系可以传递。A 支持B,B支持C,则A支持C。给出一系列关系,求出有几头牛获得了其他所有牛的支持。地址:http://poj.org/problem?id=2186分析:这道题说来惭愧,由于第一次写tarjan,第一次写缩点,在不是很了解过程的情况下看了大牛的代码,看后明白了,自己写了一遍,写出来的跟大牛的特别像!如果发现哪位大牛的代码跟本代码类似,请不要惊慌,这段代码的确是看了他们的写出来的!以上闲扯。思路:将所有强连通分量缩点,然后对这些点找出出度为0的点,如果这样的点超过两个,则题目没有答案;如果只有一个,则输出这个店所包含的点数,即有多少点缩点后得到的 阅读全文
posted @ 2012-04-08 12:56 墙 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 这道题很简单,就不细说了地址:http://acm.hdu.edu.cn/showproblem.php?pid=1285代码:#include<stdio.h>#define max_n 505int in_deg[max_n];bool live[max_n];int si[max_n], NO;struct e{ int to, next;}edge[max_n * max_n];int head[max_n], index;void add_e(int u, int v){ index++; edge[index].to = v; edge[index].nex... 阅读全文
posted @ 2012-04-08 12:37 墙 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 可以用来做模板的题目。对于约束Vj - Vi <= C, 建立一条边 Vi->Vj,权值为C。而对于 Vj - Vi >=C, 两边同时乘以-1,Vi - Vj <= -C,建立一条边Vj -> Vi,权值为-C。建好图以后,求从起点到终点的最短路径,即为本题的答案。原题目地址:http://poj.org/problem?id=3169下面是用Bellman_ford优化版本来做做短路径的代码://如果出现负环,说明各种约束不能同时成立#include<stdio.h>#define max_n 1005#define INF 0x3fffffffi 阅读全文
posted @ 2012-04-07 18:24 墙 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 这道题是个简单的贪心就可解决的初级题目。题目源地址:http://poj.org/problem?id=1328算法:先对输入的各点做处理,选定各点需要雷达位置的范围[x-sqrt(d^2-y^2), x+sqrt(d^2-y^2)],然后对所有范围的下界从小到大排序,这样可以通过各范围的上界来找出重叠的范围,所又重叠的区域都可以用一个雷达来囊括所有的小岛。代码没什么难度。要注意的就是对于输入的雷达探测半径如果小于0,或者小岛的位置在陆地上(Y<0),都要特殊判断。下面是代码: 1 #include<cstdio> 2 #include<algorithm> 3 阅读全文
posted @ 2012-04-06 21:11 墙 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 题目大意:一个冰箱有16个开关,只有16个开关同时处于打开状态,这个冰箱才可以打开。现给出4x4矩阵,表示16个开关状态,’+’表示开关关闭,’-‘表示开关打开。你可以改变任意一个位置为[i,j]开关的状态,但同时i行j列的所有开关状态同时改变。找出最少操作次数,并输出操作方案。本题操作方案有多种,输出任意一种均可。题目来源:http://poj.org/problem?id=2965输入示范:-+-----------+--输出示范:61 11 31 44 14 34 4解题思路:算法:dfs + 位操作这道题是一道枚举题目,与Poj1753有相似处。由于要输出路径,所以用dfs要比bfs方 阅读全文
posted @ 2012-04-03 19:52 墙 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 这道题目贵在建模,一开始没想明白,经大神指点,是一道比较简单的最大匹配原题地址:http://acm.hdu.edu.cn/showproblem.php?pid=1281;难点在于想明白二分的x集合y集是什么。这道题x,y 分别是棋盘的横纵坐标,这一点是一开始就走入歧途的我没想到的。就拿第一个用例来说:3 3 41 21 32 12 2对于关系(1,2)跟(1,3),只能选择一个关系,因为他们两个在同一个x坐标下,这样的话就可以理解为什么是最大匹配了吧!这一层理解了就没什么难度了,直接套用模板算法:最大匹配(匈牙利算法)代码: 1 //最大匹配,枚举 2 #include<stdio. 阅读全文
posted @ 2012-04-03 17:08 墙 阅读(296) 评论(0) 推荐(0) 编辑