首页 > 编程语言 >算法代码大全

算法代码大全

时间:2023-05-13 23:13:49浏览次数:52  
标签:nxt cnt int 代码 head 算法 maxn void 大全

链式前向星

//初始化
int cnt,head[maxn];
struct Edge{
    int to,w,nxt;
}edge[maxn];
void init(){
    for(int i=0;i<=n;i++) head[i]=-1;
    cnt=0;
}
void add_edge(int u,int v,int w){
    edge[cnt].to=v;
    edge[cnt].w=w;
    edge[cnt].nxt=head[u];
    head[u]=cnt++;
}
//遍历
for(int j=head[i];j!=-1;j=edge[j].nxt)

Dijkstra

struct Edge{
	int v,w,nxt; 
}e[maxn];
int head[maxn],cnt=0;
inline void addEdge(int u,int v,int w) {
    e[++cnt].v=v;
    e[cnt].w=w;
    e[cnt].nxt=head[u];
    head[u]=cnt;
}
int n,m,s,dis[maxn];
struct node{
    int u,d;
    bool operator <(const node& rhs) const{
        return d>rhs.d;
    }
};
inline void Dijkstra() {
    for(register int i=1;i<=n;i++) dis[i]=2147483647;
    dis[s]=0;
    priority_queue<node> Q;
    Q.push((node){s,0});
    while(!Q.empty()){
        node fr=Q.top();
		Q.pop();
        int u=fr.u,d=fr.d;
        if(d!=dis[u]) continue;
        for(register int i=head[u];i;i=e[i].nxt){
            int v=e[i].v,w=e[i].w;
            if(dis[u]+w<dis[v]){
                dis[v]=dis[u]+w;
                Q.push((node){v,dis[v]});
            }
        }
    }
}

Tarjan

vector<int>mp[maxn];
int ans[maxn],vis[maxn],dfn[maxn],low[maxn],color[maxn],s[maxn],n,m,tt,cnt,sig;
void Tarjan(int u){
    vis[u]=1;
    low[u]=dfn[u]=cnt++;
    s[++tt]=u;
    for(int i=0;i<mp[u].size();i++){
        int v=mp[u][i];
        if(vis[v]==0) Tarjan(v);
        if(vis[v]==1) low[u]=min(low[u],low[v]);
    }
    if(dfn[u]==low[u]){
        sig++;
        do{
            low[s[tt]]=sig;
            color[s[tt]]=sig;
            vis[s[tt]]=-1;
        }while(stack[tt--]!=u);
    }
}

未完待续 ~~~

标签:nxt,cnt,int,代码,head,算法,maxn,void,大全
From: https://www.cnblogs.com/shw4188/p/17398458.html

相关文章

  • Mybatis-Plus 代码生成器
    mybatis-plus-generator3.5.1以下版本:代码生成器(旧)mybatis-plus-generator3.5.1及其以上版本:代码生成器(新)本地使用mybatis-plus3.5.1版本进行测试。1.引入依赖<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId&......
  • 链表算法 篇二
    合并K个有序列表packagecom.algorithm202305.linkedlist;importjava.util.List;importjava.util.PriorityQueue;/***合并K个有序链表*合并K个有序链表的逻辑类似于合并两个有序链表,难点在于,如何快速得到K个节点中最小的节点,接到结果链表上*这里我们就要用到优先级......
  • GWO-GRU多变量回归预测,灰狼算法优化门控循环单元的回归预测(Matlab)
    GWO-GRU多变量回归预测,灰狼算法优化门控循环单元的回归预测(Matlab)1.data为数据集。2.MainGWO_GRUNN.m为程序主文件,其他为函数文件无需运行。3.命令窗口输出R2、MAE和MBE。4.灰狼算法优化参数为学习率,隐藏层节点个数,正则化参数。ID:4929695080564332......
  • GWO-BiLSTM多变量回归预测,灰狼算法优化双向长短期记忆网络的回归预测(Matlab)
    GWO-BiLSTM多变量回归预测,灰狼算法优化双向长短期记忆网络的回归预测(Matlab)1.data为数据集。2.MainGWO_BiLSTMNN.m为程序主文件,其他为函数文件无需运行。3.命令窗口输出R2、MAE和MBE,可在下载区获取数据和程序内容。4.灰狼算法优化参数为学习率,隐藏层节点个数,正则化参数。ID:252969......
  • SSA-CNN-GRU麻雀算法优化卷积门控循环单元时间序列预测(Matlab)
    SSA-CNN-GRU麻雀算法优化卷积门控循环单元时间序列预测(Matlab)所有程序经过验证,保证有效运行。可有偿替换数据及其他服务。2.输入数据为单变量时间序列数据,即一维数据;3.运行环境Matlab2020b及以上,data为数据集,运行主程序SSA-CNN-GRUTS,其余为函数文件无需运行,所有程序和数据放在一个......
  • SSA-CNN-LSTM麻雀算法优化卷积长短期记忆神经网络时间序列预测(Matlab)
    SSA-CNN-LSTM麻雀算法优化卷积长短期记忆神经网络时间序列预测(Matlab)所有程序经过验证,保证有效运行。可有偿替换数据及其他服务。2.输入数据为单变量时间序列数据,即一维数据;3.运行环境Matlab2020b及以上,data为数据集,运行主程序SSA-CNN-LSTMTS,其余为函数文件无需运行,所有程序和数据......
  • GWO-LSTM多变量回归预测,灰狼算法优化长短期记忆网络的回归预测(Matlab)
    GWO-LSTM多变量回归预测,灰狼算法优化长短期记忆网络的回归预测(Matlab)1.data为数据集。2.MainGWO_LSTMNN.m为程序主文件,其他为函数文件无需运行。3.命令窗口输出R2、MAE和MBE。4.灰狼算法优化参数为学习率,隐藏层节点个数,正则化参数。注意程序和数据放在一个文件夹,运行环境为Matlab2......
  • 论坛登录与注册vue代码
    <template><div><Dialog:show="dialogConfig.show":title="dialogConfig.title":buttons="dialogConfig.buttons"width="400px":showCancel="false"@cl......
  • 基于最大相关最小冗余(mRMR)的回归数据特征选择算法
    基于最大相关最小冗余(mRMR)的回归数据特征选择算法matlab代码,输出为选择的特征序号ID:7729644528665083......
  • 爬虫案例之网易有道翻译Python代码改写
    网易有道翻译之逆向破解[Python代码改写]网址:https://fanyi.youdao.com/index.html#/***用到的知识点:(1)requests模块和session模块,发起请求什么是session对象?该对象和requests模块用法几乎一致.对于在请求过程中产生了cookie的请求如果该请求是使用session发起的,则co......