随笔分类 - g:Data structure & algorithm
摘要:题目:http://www.nowcoder.com/practice/d0267f7f55b3412ba93bd35cfa8e8035C++ 1 /** 2 * struct ListNode { 3 * int val; 4 * struct ListNode *n...
阅读全文
摘要:题目:http://www.nowcoder.com/practice/4060ac7e3e404ad1a894ef3e17650423C++ 1 class Solution { 2 public: 3 void replaceSpace(char *str,int len) { 4 ...
阅读全文
摘要:题目:http://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62eC++ 1 class Solution { 2 public: 3 bool Find(vector > array,int target) { 4 ...
阅读全文
摘要:C++使用hash map存储每个子串出现的次数 1 #include 2 #include 3 #include 4 using namespace std; 5 6 pair fun(const string& str) { 7 int len = str.length(); 8...
阅读全文
摘要:实现一个可以处理加减乘数运算的中缀表达式转换后缀表达式的程序:一个输入中缀表达式inOrder一个输出池pool一个缓存栈stack从前至后逐字读取inOrder首先看一下不包含括号的:(1)操作数:直接输出到pool(2)操作符:判断当前操作符与stack[top]操作符的优先级 当前操作符优先...
阅读全文
摘要:1、介绍并查集是一种树型数据结构,用于处理一些不相交集合的合并问题。并查集主要操作有: (1)合并两个不相交集合; (2)判断两个元素是否属于同一个集合; (3)路径压缩;2、常用操作用father[i]表示元素i的父亲结点,例如:用某个元素所在树的根节点表示该元素所在集合;判断两个元素是否属...
阅读全文
摘要:1、冒泡排序(BubbleSort)介绍:重复的遍历数列,一次比较两个元素,如果他们顺序错误就进行交换。2016年1月22日总结:冒泡排序就是比较相邻的两个元素,保证每次遍历最后的元素最大。排序过程需要用到:int i,j;1 def bubble_sort(arry):2 n = len(...
阅读全文
摘要:1、目标通过本文,希望可以达到以下目标,当遇到任意问题时,可以: 1、很快建立状态空间; 2、提出一个合理算法; 3、简单估计时空性能;2、搜索分类2.1、盲目搜索 按照预定的控制策略进行搜索,在搜索过程中获得的中间信息不用来改进控制策略; 常见算法: 1、广度优先搜索(Breadth ...
阅读全文
摘要:Problem :1014 ( Uniform Generator )Judge Status :AcceptedRunId : 7742145Language : CAuthor :qq1203456195Code Render Status :Rendered By HDOJ C Code Re...
阅读全文
摘要:Problem :1012 ( u Calculate e )Judge Status :AcceptedRunId : 7741966Language : CAuthor :qq1203456195Code Render Status :Rendered By HDOJ C Code Render Version 0.01 Beta 1 #include<stdio.h> 2 void main() 3 { 4 int n=0; 5 double e=1,t=1;//t记录阶乘 6 char str[65]; 7 printf("n e\n"); 8 ...
阅读全文
摘要:CMPH-CMinimalPerfectHashingLibraryC最小完美哈希库翻译:ZH奶酪博客地址:http://www.cnblogs.com/CheeseZH动机:一个完美的hash函数可以讲一个包含n个键的静态集合映射到m个整数而不出现冲突,此时m大于等于n。如果m等于n,这个函数就可以称作最小;最小完美哈希函数被广泛的应用在高效存储以及从静态集中快速检索条目,比如自然语言中的词语,程序或者交互系统中的预定义词语,网络搜索引擎中的URLs,或者数据挖掘技术中的条目集合。因此,在信息检索系统、数据库系统、语言翻译系统、电商系统、编译器、操作系统以及其他系统中都有最小完美哈希函数的应
阅读全文
摘要:题目大意:8888年,地球被PPF王国统治了。由于人口增长,PPF需要为新生儿找寻更多的陆地。最后,PPF决定攻击通知Mars火星的Kscinow。问题来了,怎样让士兵到火星上去呢?PPF召集士兵征询建议。最后决定从哈利波特那里买些魔法扫帚,让士兵们飞上去~现在那些士兵正在学习使用魔法扫帚。我们假设每个战士都有一个等级表示他的级别。高等级的战士可以指导低等级的,但是反过来不可以。一个战士最多有一名指导者,也可以没有指导者。类似的,一个战士最多可以指导一名学习者,也可以不指导任何人。指导者和学习者可以共用同一把扫帚。所有的战士必须在飞往火星之前准备好。扫把很贵,怎样才能使所需要的扫把数量最少?例
阅读全文
摘要:题目大意:有一个等式,a*x1^2+b*x2^2+c*x3^2+d*x4^2=0,a、b、c、d是[-50,50]之间的非零整数,有一组解析(x1,x2,x3,x4),其中xi是[-100,100]之间的非零整数,求有多少组解满足上式;输入:多组测试用例,每组测试用例包含4个数:a,b,c,d,他们之间用一个或多个空格隔开,EOF结尾;输出:每组测试用例解的个数;==========基本思路=========4个循环嵌套,回溯;但是这样的复杂度是n^4,在本题中就是10000 0000数量级的~==========改进思路=========把两项移到右边,就变成了左边两项与右边两项相等的式子;
阅读全文
摘要:Problem :1425 ( sort )Judge Status :AcceptedRunId : 7412949Language : CAuthor :qq1203456195Code Render Status :Rendered By HDOJ C Code Render Version 0.01 Beta#include <stdio.h>#include <string.h>#include <stdlib.h>#define N 1000100#define M 500000int arr[1000100];int main(){ int m
阅读全文
摘要:机试快过去一个月了,现在把代码整理一下,做个纪念吧。1.忘记是什么题目了,简单的迭代,类似“兔子的繁殖”、“斐波那契数列”之类的~ 1 #include 2 3 #define N 100000 4 int arr[N]; 5 void Init(); 6 void main() 7 { 8 ...
阅读全文
摘要:1 #include 2 #include 3 4 typedef struct BiNode{ 5 char data; 6 struct BiNode* LChild; 7 struct BiNode* RChild; 8 }BiNode,*BiT...
阅读全文
摘要:拓扑排序(适用于有向无环图):1)选一个入度为0的点p输出;2)从图中删除p点3)将p全部后继点的入度-14)重复1-3,直到全部点都输出题目:1285确定比赛名次 1 /* 2 需要一个存入度的数组indegree[] 3 用邻接矩阵存储图 4 Map[i][j] = 1表示有从i到j的边,及i是j的前驱结点 5 */ 6 #include <iostream> 7 #include <cstdio> 8 #include <cstring> 9 using namespace std;10 11 #define N 50512 int Map[N][N]
阅读全文
摘要:之前一直觉得Prim和Dijkstra很相似,但是没有仔细对比;今天看了下,主要有以下几点:1:Prim是计算最小生成树的算法,比如为N个村庄修路,怎么修花销最少。Dijkstra是计算最短路径的算法,比如从a村庄走到其他任意村庄的距离。2:Prim算法中有一个统计总len的变量,每次都要把到下一点的距离加到len中;Dijkstra算法中却没有,只需要把到下一点的距离加到cls数组中即可;3:Prim算法的更新操作更新的cls是已访问集合到未访问集合中各点的距离;23 for (j=0;j<n;j++)24 {25 if (!visited[j] && map[j][n
阅读全文
摘要:题目:1102Constructing Roads 1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 using namespace std; 5 6 #define M 100 7 #define MAX 9999 8 9 int map[M][M],visited[M],adjset[M];10 int n,p,len;11 12 void ReadMap();13 14 void main()15 {16 int i,j,nlen,nid;17 while (scanf(&
阅读全文
摘要:题目:1233还是畅通工程 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 using namespace std; 6 7 #define M 101 8 typedef struct{ 9 int x,y;10 int len;11 }EDGE;12 13 EDGE edge[M*M];14 int Map[M][M];15 int n,m;16 int set[M];17 18 void ReadMap();19
阅读全文

浙公网安备 33010602011771号