- 博客(14)
- 收藏
- 关注
转载 vector邻接表的建立(用vector的目的是因为不能确定每个点有几条边)
一。用结构体#include<stdio.h> #include<vector> #include<algorithm> #include<iostream>#include<algorithm>using namespace std; struct Edge{ int to; int cos...
2018-05-26 11:48:04 338
转载 迭代器
迭代器实际上是对“遍历容器”这一操作进行了封装。在编程中我们往往会用到各种各样的容器,但由于这些容器的底层实现各不相同,所以对他们进行遍历的方法也是不同的。例如,数组使用指针算数就可以遍历,但链表就要在不同节点直接进行跳转。这是非常不利于代码重用的。例如你有一个简单的查找容器中最小值的函数findMin,如果没有迭代器,那么你就必须定义适用于数组版本的findMin和适用于链表版本的findMin...
2018-05-26 11:12:36 1528
原创 拓扑排序算法
hdu1285 简单拓扑排序将有N个比赛队(1<=N<=500),编号依次为1,2,3,。。。。,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道每场比赛的结果,即P1赢P2,用P1,P2表示,排名时P1在P2之前。现在请你编程序确定排名。 最基本的拓扑概念。算法描述step1 :遍历图中每一个顶点...
2018-05-26 10:24:20 555
原创 q-sequence
HDU 1854一道找规律的题,当然用一些算法做也可以~题目描述这是一个规律题:一个0是合法的,一个1前面必须有两者合法的字符串才是合法的!例如:0010011 其中001是合法的(001相当于一个合法的)001也是合法的(001001相当于两个合法的),最后的1的前面正好有2(当然>2更是合法的)个合法的。所以0010011是合法的(0010011相当于一个合法的)方法其实从前向后数的话,...
2018-05-22 20:28:05 207
转载 二分图及最大匹配问题
https://blog.csdn.net/dark_scope/article/details/8880547https://blog.csdn.net/acmman/article/details/38421239(还未来得及整理)ac代码,模仿但是自己写的#include<iostream>#include<string.h>#include<cstdio&...
2018-05-19 17:16:24 451
转载 转载
三种邻接表存图模板:vector邻接表、数组邻接表、链式前向星vector邻接表:const int maxn=1e5+10;struct Edge{ int u,v,w; Edge(int u=0,int v=0,int w=0){this->u=u,this->v=v,this->w=w;}};vector<Edge> E;vector&...
2018-05-19 15:58:03 185
原创 图的建立,数组法建立邻接表
邻接表的建立函数 void addEdge( int u, int v ) { edge[e].v = v; edge[e].next = head[u]; head[u] = e++; }//因为head[i]中的i就是起点,所以结构体中可以不再记录起点 解释:head保存的是现在以u为起点的边,编号为head[i],遍历结束,最后head中保存的将是以u为起...
2018-05-19 15:53:41 600
原创 HDU 1856 More is better 卡时间的并查集
#include<bits/stdc++.h>using namespace std;int father[10000005];int cal[10000005];void init();int find(int n);int main(){ int n; while(scanf("%d",&n)!=EOF) { int i; in...
2018-05-19 12:03:12 164
原创 数组最长长度
#include<stdio.h>#define N 100000000 //1亿int arr[N];// 在堆上可以 int main(int argc,char**argv){ int b[N];//在程序栈上,要报段错误的,如果N在百万级别以下,还是可以得,也就是在栈上分配空间是有限的 static int a[N];//在堆上,可以 re...
2018-05-19 11:47:04 2136
原创 hdu2569
题目计算可行方案,一共给n段路,每3段颜色不能一样,计算最后有几种可行方案典型递归,下一次一段路的颜色加上是否可行肯定与前面状态最后两端路颜色有关总结:主要看后面两块,假设第n-2块有a种方法,n-1有b种方法。若第n-2和第n-1颜色一样,则a=b(要想清楚如果颜色一样,这两种状态的可行方案就一样了),第n块有3*a种方法。因n-1总共有b种方法,不一样的情况就是总的减去一样的,即b-a,所以第...
2018-05-19 11:37:31 235
转载 堆栈和队列
堆、栈、队列之间的区别是?①堆是在程序运行时,而不是在程序编译时,申请某个大小的内存空间。即动态分配内存,对其访问和对一般内存的访问没有区别。②栈就是一个桶,后放进去的先拿出来,它下面本来有的东西要等它出来之后才能出来。(后进先出)③队列只能在队头做删除操作,在队尾做插入操作.而栈只能在栈顶做插入和删除操作。(先进先出)简单来讲堆是动态内存分配,栈是先进后出,队列是先进先出。...
2018-05-16 19:35:38 285
原创 HDU-1493 QQpet exploratory park(概率+二维dp)
第一次做dp题目扔骰子,给出扔出每个点的概率,求出到达特定点的概率是多少。。这里所有特定点的和并不是100%,每个特定点的计算是将每一次(共十次)经过它的概率都加起来求和。得到100%的情况是将每次经过的每个点的概率求和(例如第一次经过一二三四五六这六个点的所有概率加起来是100)这个二维dp一是要将到的点记录一下,二是要将扔骰子的次数记录一下,都与上一次扔的有关系,是上一次的状态再乘一个概率。...
2018-05-16 15:19:21 333
原创 计算质因子只有2,3,5,7的数的因子有几个
题目一个只有2、3、5或7的质数的数被称为一个不起眼的数。第1、2、3、4、5、6、7、8、9、10、12、14、15、16、18、20、21、24、25、27、……显示前20个不起眼的数字。现在给出一个简单的数字,请编写一个程序来计算这个简单数字的因数个数。例如,4是一个不起眼的,它有3个因数(1,2,4);12有6个因数。我的想法:分别算出来一个数是2,3,5,7的几次方,再将次数相乘,然后发...
2018-05-15 17:21:08 5595
原创 py2.7与3.6
一.print由语句变为函数print(2,3)2:输出(2,3) 3:输出2 3二.可以有中文三.除法2中和c相同,自动取整 1/2=03中不会 1/2=0.5四.八进制 3中只能0o1000=512五.不等于3中只能!=六.b=b'china'这叫一个八位串,在3中作为一种数据类型 s=b.decode() b=s.encode() 字符串和八位串的相互转化...
2018-05-08 19:16:12 189
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人