c++
文章平均质量分 65
Pekary
Read the tea leaves.
展开
-
将string 转化为 char *str
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 string 是c++标准库里面其中一个,封装了对字符串的操作 把string转换为char* 有3中方法: 1。data 如: string str="abc"; char转载 2014-04-07 22:52:49 · 823 阅读 · 0 评论 -
差分约束系统
差分约束系统定义(引自维基百科):如果一个系统由n个变量和m个约束条件组成,其中每个约束条件形如xj-xi 例如,有如下不等式组:原创 2015-10-29 13:51:22 · 1027 阅读 · 0 评论 -
hdu 3635 Dragon Balls
题意:起始时每个球都放在原创 2014-08-18 15:13:41 · 515 阅读 · 0 评论 -
hdu 2553
N皇后问题。 深搜。 #include #include int x[16],y[16]; int n, num; bool isPlace(int a){ for(int i = 1; i < a; i++) if(fabs(a - i) == fabs(x[a] - x[i]) || x[a] == x[i]) return f原创 2014-08-12 14:55:47 · 472 阅读 · 0 评论 -
hdu 2610
深搜 #include int n, p, len, cnt; bool flag; int num[1024]; struct{ int n, pos; }tmp[1024]; bool isRepet(int s, int e){ for(int i = s + 1; i if(num[i] == num[原创 2014-08-11 14:45:49 · 509 阅读 · 0 评论 -
poj 1459 Power Network SAP
SAP的模板题,主要是输入有点难处理,看有人用sscanf函数处理的,我是直接对字符串进行处理的。 对于SAP:其实核心思想就是高度函数,把它搞懂SAP其实和EK算法本质上是一样的。 还有一个重要的是GAP优化,即当高度出现断层时算法结束。 #include #include const int N = 128; const int INF = 0x3f3f3f3f; struc原创 2015-11-18 17:17:55 · 371 阅读 · 0 评论 -
hdu5536Chip Factory 字典树与异或 2015ACM/ICPC亚洲区长春站现场赛
等等来写题解,先贴代码。 #include #include #include using namespace std; const int N = 1024; int a[N]; int twochild[2]; struct Trie { int next[2]; int flag[2]; int cnt; void init() {原创 2015-11-01 17:27:46 · 1681 阅读 · 0 评论 -
hdu 5510 Bazinga 2015ACM/ICPC亚洲区沈阳站现场赛
做的重现赛。 主要思路:如果A是B的子串,且B是C的子串,显然有A是C的子串,所以没有必要去两个都判断。预处理一下相邻串之间的关系就可以过了,和去重的思路非常像。 如果只单纯判断是否为子串,strstr效率比KMP高。 #include #include using namespace std; char in[512][2005]; int n; int ski原创 2015-11-01 10:00:11 · 662 阅读 · 0 评论 -
hdu5521 Meeting 最短路 2015ACM/ICPC亚洲区沈阳站现场赛
题意:共有N个点,每si个点为一个集合,集合内部任意两点的路程所需时间为ti, 两个人分别住在点1和点N,问两人从自己住的地方,找一个点相遇,要求两人用最短的时间相遇。 思路:看到这个题有点蒙,因为si中任意两点都有边,如果要表示的话相当于要建好多个完全图,而数据范围一看,肯定的爆内存。后来看到了别人写的代码,发现并不需要建立完全图,对于每个集合,我们都给它新加一个顶点,建立集合内顶点到新加顶点原创 2015-11-08 22:56:34 · 671 阅读 · 0 评论 -
poj 1562 深搜
深搜入门了。 #include #include int dir[8][2] = {{0,1},{0,-1},{1,0},{-1,0},{1,-1},{-1,1},{1,1},{-1,-1}}; bool isVis[105][105]; char oil[105][105]; int m, n; void dfs(int x, int y){ isVis[x][y] = t原创 2014-07-31 16:48:50 · 590 阅读 · 0 评论 -
hdu 1016
题意:要求每两个相邻的数的和都是原创 2014-08-12 13:43:50 · 471 阅读 · 0 评论 -
(2)排序之堆排序
首先介绍一下堆的概念: 堆通常是一个可以被看做一棵树的数组对象。在队列中,调度程序反复提取队列中第一个作业并运行,因而实际情况中某些时间较短的任务将等待很长时间才能结束,或者某些不短小,但具有重要性的作业,同样应当具有优先权。堆即为解决此类问题设计的一种数据结构。原创 2014-09-18 17:26:12 · 555 阅读 · 0 评论 -
dijkstra算法及一些最短路的注意事项
学习dijkstra已经一周了,学完之后没有原创 2014-09-06 17:27:22 · 1089 阅读 · 0 评论 -
并查集(Union-Find)
本文主要介绍解决动态连通性一类问题的一种算法,使用到了一种叫做并查集的数据结构,称为Union-Find。 更多的信息可以参考Algorithms 一书的Section 1.5,实际上本文也就是基于它的一篇读后感吧。 原文中更多的是给出一些结论,我尝试给出一些思路上的过程,即为什么要使用这个方法,而不是别的什么方法。我觉得这个可能更加有意义一些,相比于记下一些结论。转载 2014-08-14 15:25:05 · 528 阅读 · 0 评论 -
Floyd求最小环 hdu1599 find the mincost route
裸的最小环。 用Floyd实现非常简单。 代码如下: #include #include const int N = 128; const int INF = 0x3f3f3f3f; int n, m; int g[N][N]; int dis[N][N]; int floyd () { memset(dis, INF, sizeof(dis)); int minCir原创 2015-11-04 21:24:02 · 326 阅读 · 0 评论 -
poj 2186 Popular Cows Kosaraju求强连通分量
题意:有一群牛,每对牛之间可以有崇拜关系,同时,崇拜关系满足传递性。问被除自己以外的所有牛崇拜的牛有多少头? 第一次做强连通分量的题。这道题想想其实很简单。 思路:先按题意建图,显然,每个强联通分量中的牛都是相互崇拜的,所以我们把所有强连通分量找出来,然后把它们都看成一个点。两个强连通分量之间如果存在边,则必存在边(V1,V2)∈E,其中V1∈强连通分量1, V2∈强连通分量2。点有了原创 2015-11-04 21:34:43 · 432 阅读 · 0 评论 -
poj3114 Countries in War 强连通分量+dijkstra或者DAG最短路
思路:先求出各个强联通分量,缩点,由于国家内部通信的不需要时间的,一个国内的某个城市和另一个国家内的某个城市通信等价与两个国家之间通信。 之后就是一套最短路的东西了,由于缩点之后是DAG,所以可以用DAG的最短路来求,但事实证明这个没有堆优化的dijkstra快。 #include #include #include using namespace std; const i原创 2015-11-10 16:34:10 · 358 阅读 · 0 评论 -
hdu 1325 is it a tree?
有人这道题在poj上可以很容易过,而hdu却过不了原创 2014-08-19 11:32:32 · 523 阅读 · 0 评论 -
hdu 1394 最小逆序数
#include #include #define N 5005 #define mid(a,b) ((a+b)>>1) using namespace std; struct{ int l, r; int v; }segTree[N*4]; void build(int root, int left, int right){原创 2014-08-16 10:10:33 · 495 阅读 · 0 评论 -
(1)排序之归并排序
这些天花了些时间学习排序算法。原创 2014-09-14 17:05:45 · 548 阅读 · 0 评论