Dijkstra:裸的算法,O(n^2),使用邻接矩阵:算法思想:定义两个集合,一开始集合1只有一个源点,集合2有剩下的点。STEP1:在集合2中找一个到源点距离最近的顶点k:min{d[k]}STEP2:把顶点k加入集合1中,同时修改集合2中的剩余顶点j的d[j]是否经过k之后变短,若变短则修改d...
分类:
其他好文 时间:
2014-07-27 22:21:39
阅读次数:
440
一 基础知识梳理:并查集(Union-find Sets)是一种非常精巧而实用的数据结构,它主要用于处理一些不相交集合的合并问题。一些常见的用途有求连通子图、求最小生成树的 Kruskal 算法和求最近公共祖先(Least Common Ancestors, LCA)等。使用并查集时,首先会存在一组...
分类:
其他好文 时间:
2014-07-27 22:19:59
阅读次数:
323
题目来源:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1549 并查集,求出每个friends集合,然后再计算每个集合friends个数,求出最...
分类:
其他好文 时间:
2014-07-27 22:01:29
阅读次数:
234
1. LBS地理空间索引关于LBS相关项目,一般存储每一个地点的经纬度的坐标, 假设要查询附近的场所,则须要建立索引来提升查询效率。Mongodb专门针对这样的查询建立了地理空间索引。2d和2dsphere索引。2. 创建索引建立places集合,来存放地点,loc字段用来存放地区数据GeoJSON...
分类:
数据库 时间:
2014-07-27 21:26:55
阅读次数:
260
sqlalchemy和flask-sqlalchemy之间的东西不是太清晰。
sqlalchemy文档太他妈多了,日。
今天遇到的实例。
用户进行随机匹配,系统随机返回一个一定筛选条件下的用户。为了用户体验,还得去掉已关注的人。
首先获取满足筛选条件的用户列表:
users = User.query.filter_by(school=form.school.dat...
分类:
数据库 时间:
2014-07-27 11:48:03
阅读次数:
270
解题报告
题目传送门
题意:
每天有12节课,一周上7天,一门课在一周有多天上课。求一周最多上几节课。
思路:
把课程看成一个集合,上课的时间看成一个集合,二分图就出来了。
#include
#include
#include
using namespace std;
int n,day[10][15],mmap[500][500],vis[500],cnt,pre[500];...
分类:
其他好文 时间:
2014-07-27 11:24:42
阅读次数:
227
现在关于Java集合类的文章很多,但是我最近看到一个很有意思图片,基本上把Java集合的总体框架都给展现出来了,很直观。
在这里,集合类分为了Map和Collection两个大的类别。
处于图片左上角的那一块灰色里面的四个类(Dictionary、HashTable、Vector、Stack)都是线程安全的,但是它们都是JDK的老的遗留类,现在基本都不怎么使用了,都有了...
分类:
编程语言 时间:
2014-07-27 11:23:12
阅读次数:
210
解题报告
题目传送门
题意:
n只地鼠,m个洞,老鹰的到达地面的时间s,地鼠的移动速度v,求多少只地鼠会被老鹰吃了。
思路:
地鼠和洞看成两集合,建立二分图。只有当地鼠到洞的时间少于老鹰到地面的时间才连边。
#include
#include
#include
#include
using namespace std;
int n,m,s,v,mmap[500][500],v...
分类:
其他好文 时间:
2014-07-27 11:23:02
阅读次数:
240
UVA 11987 - Almost Union-Find
题目链接
题意:给定一些集合,操作1是合并集合,操作2是把集合中一个元素移动到另一个集合,操作3输出集合的个数和总和
思路:并查集,关键在于操作2,对于并查集,要去除掉一个结点,如果该结点不是根那就好办了,那么就多开n个结点,每个结点初始父亲都是它的i + n,这样在移动的时候,就不用担心他是根结点了剩下就是普通的带权并...
分类:
其他好文 时间:
2014-07-27 11:21:52
阅读次数:
192
解题报告
题目传送门
题意:
求满足条件的最大集合:集合内任何两个人都没有浪漫关系
思路:
跟POJ2771一样的题,变的简单多了。POJ2771解题报告
#include
#include
#include
#include
using namespace std;
int n,mmap[550][550],pre[550],vis[550];
int dfs(int x)...
分类:
其他好文 时间:
2014-07-27 11:21:32
阅读次数:
212