1087. Dijkstra + DFS:解决四标尺

其中:第四标尺路径条数也可用num[]数组,放在Dijkstra中

 

字母字符串和整型编号的映射

第一种方法:哈希变化。(用的太少,比特币挖矿)

第二种方法:map容器;

 

1072. Gas Station (30)-PAT甲级真题(Dijkstra)

 

原题:https://www.patest.cn/contests/pat-a-practise/1072

每次遍历d[],求所有最短路径中最小的;

 

C++中string与int,double转化

 

注意:保留为浮点数时会有误差,貌似都只能六位有效数字(包括整数)

第一种方法:头文件#include<sstream>,c++98,如果需要转化为long long,返回值前面加上long long即可;与double等浮点数进行转换的时候直接改类型即可。

[cpp]
int stringToint(const string &S)//利用stringstream完成string到int的转换
{
stringstream ss;
int result;
ss << S; ss >> result; //string可以为单个字符
return result;
}
string intTostring(const int &a)//利用stringstream完成int到string的转换
{
stringstream ss;
string str;
ss<<a; ss>>str;
return str;
}[/cpp]

第二种方法:c++11[hermit auto=”1″ loop=”0″ unexpand=”0″

①string to others:String中函数stoi(Convert string to integer),stoll(Convert string to long long),Stod(Convert string to double),stof(Convert string to float)

②others to string:to_string(int val)

 

关联规则:FPgrowth算法

一.FP-growth算法原理:
其也是基于Apriori思想提出来的一共算法,但是其采用了一种高级的数据结构减少扫描次数,大大加快了算法速度。FP-growth算法只需要对数据库进行两次扫描,而Apriori算法对于每个潜在的频繁项集都会扫描数据集判定给定模式是否频繁,因此FP-growth算法的速度要比Apriori算法快。

二.算法流程:(样例
1.构建FP树
在构建FP树时我们需要对原始数据扫描两遍:
第一遍对所有元素项的出现次数进行计数,去掉不满足最小支持度的元素项
第二遍扫描中只需要考虑那些频繁元素,读入每个项集将其添加到一条已经存在的路径中,若该路径不存在则创建一条新路径。
2.从FP树中挖掘出频繁项集
从FP树中抽取频繁项集的三个步骤:
从FP树中获得条件模式基(以所查找元素项为结尾的路径集合,每一条路径都是一条前缀路径。 )
利用条件模式基,构建一颗条件FP树
迭代重复步骤(1),(2),直到树包含一个元素项为止