自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 Codeforces 767B

http://codeforces.com/problemset/problem/767/B 一个贪心的问题,考虑每一个来的人,那么最好的到达时间就是比这个人早1min,然后判断这个到底的时间所用的等待时间和之前保存的等待时间哪个少就保存哪个,每次判断后,要改变开始服务的时间(因为第一个到达的人可能晚于最早服务时间)。最后,如果最终的服务时间还在截止时间之前的话,那么就选这个时间,去了不用排队

2017-02-24 14:14:29 444

原创 Floyd求所有端点的最短路径

/* 是一个动态规划的思想,具有最优子结构的特点,如果K是最短路径上的一个点,那么他一定会被添加到路径上 从k=1开始,依次增加K的个数,直到遍历完所有的K */ #include using namespace std; int G[100][100]; int n; void floyd() { for(int k=0;k for(int i=0;i for(int j

2016-08-25 17:26:05 204

原创 求割点

DFS求割点,用2个数组来记录搜索的信息,DFN记录为访问的时间,L[ ]记录能回到的最小祖节点 最后比较这两个数组的大小,来判断这个点是不是割点  /* 10 13 1 2 1 4 3 4 2 3 3 10 3 9 6 5 2 5 2 7 2 8 5 8 5 7 7 8 */ #include using namespace std; int DFN[100

2016-08-25 17:20:07 228

转载 Dijkstra+priority_queue

转载自:http://www.cnblogs.com/qijinbiao/archive/2012/10/04/2711780.html 重点是算法的松弛操作,在算法内 一个Node节点的含义:x表示自己,d表示dis[x]  即:点和源点到该点的距离 while(!q.empty())     {         node x=q.top();q.pop();         for(

2016-08-21 21:07:26 311

原创 DFS拓扑排序

根据算法导论的伪代码写的,用的邻接表,思想是:对一个开始DFS,当这个点的所有DFS结束后,把这个点加入到tps[ ]这个数组,就是书上说的那个时间戳 #include #include using namespace std; struct Edge{ int to,val; }; vector e[100]; //Edge e[100]; int vis[100]; int

2016-08-21 19:50:49 500

原创 Bellman_Ford算法

主要思想是用邻接表存储所有的边集,对每边进行n-1次松弛操作(通过一条边是否可以让两个点之间的距离减小)后,在进行一次松弛判断,如果还能继续减小,说明存在负环,Bellford——Ford失败 为什么要进行N-1次松弛操作: 假设起点的边存储在数组的最后一个位置,第一次的循环结束后,只有与原点相邻的那一个点得到了松弛,其他点都松弛失败,第二次被松弛的点可以与其他的N-2个点进行松弛,可松弛的点

2016-08-21 18:22:14 323

原创 算法导论二叉搜索树

两天写完的,没有认认真真的测试,可能有些BUG,自己测试的数据能过,但是我的初始化有些问题,不知道该怎么表示 //二叉搜索树 #include #include using namespace std; struct Node{ Node *p,*lchild,*rchild; int key; Node() { p=NULL; lchild=NULL; rchild=NU

2016-08-18 22:50:22 181

原创 Prim和kruskal

Prim算法是对点集的操作  首先做一个struct Node{ int key;//保存当前点与下一个点的最短距离 int v;//当前点的编号 friend bool operator { return a.key>b.key; }//用来处理优先队列 } Node vx[ MAXN ];//用来保存所有点的元素 priority_queue q; visit [

2016-08-14 22:26:40 136

原创 BFS/DFS的理解和框架

用链接表写的dfs和bfs  只是一个框架 我的理解 BFS是一个用了队列的搜索 用一个while(!q.empty()) 来当做循环条件 在while内部进行判断 判断这个点是不是符合条件 然后加入到队列中 DFS是一个递归的过程 先用一个DFS函数做一个框架 遍历每一个点 若这个点符合条件,就调用另外一个函数DFS_Search()深入进去 在这个DFS_Sea

2016-08-08 11:15:10 1811

原创 UVA 12662 Good Teacher

ACM UVA12662 Good Teacher

2016-05-28 21:40:13 392

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除