单源最短路建图方式例题整理

news2025/1/17 21:41:08

1129. 热浪(活动 - AcWing)

思路:题目只是加了一个背景,但实际上还是很裸的单源最短路问题。我们有四种写法,bellman_ford算法时间复杂度不如spfa,而且这里对边数没有限定,所以没必要使用bellman_ford。然后我们就时间复杂度进行分析,朴素版dijkstra算法的时间复杂度是O(n^2),本题的点数是2500,n^2=6250000,数量级1e6,可以过;堆优化的dijkstra,时间复杂度O(mkogn),6200log2500=21067(约等),数量级是1e4,也是可以过的;spfa一般时间复杂度是O(m),m=6200,数量级是1e3,最坏O(nm)=15500000,数量级是1e7,也没问题。那么我们本着复习算法将所有的都写一下。

朴素版dijsktra:

#include<bits/stdc++.h>
using namespace std;
const int N=3000,M=7000;
int n,m;
int s,e;
int g[N][N];
int d[N],st[N];
int dijkstra()
{
    memset(d,0x3f,sizeof d);
    d[s]=0;
    for(int i=1;i<=n;i++)
    {
        int t=-1;
        for(int j=1;j<=n;j++)
            if(!st[j]&&(t==-1||d[t]>d[j])) t=j;

        st[t]=1;

        for(int i=1;i<=n;i++)
            if(g[t][i]!=0x3f3f3f3f)
                d[i]=min(d[i],d[t]+g[t][i]);
    }
    if(d[e]!=0x3f3f3f3f) return d[e];
    else return -1;
}
int main()
{
    scanf("%d%d%d%d",&n,&m,&s,&e);
    memset(g,0x3f,sizeof g);
    while(m--)
    {
        int a,b,c;
        scanf("%d%d%d",&a,&b,&c);
        g[a][b]=g[b][a]=min(g[a][b],c);
    }
    cout<<dijkstra();
}

堆优化版dijkstra

#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> pii;
const int N=3000,M=7000*2;
int h[N],e[M],ne[M],w[M],idx;
int st[N],d[N];
int n,m,ts,te;
void add(int a,int b,int c)
{
    w[idx]=c,e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}
int dijkstra()
{
    memset(d,0x3f,sizeof d);
    d[ts]=0;
    priority_queue<pii,vector<pii>,greater<pii>>q;
    q.push({0,ts});
    while(q.size())
    {
        auto t=q.top();
        q.pop();
        int dist=t.first,v=t.second;
        if(st[v]) continue;
        st[v]=1;
        for(int i=h[v];i!=-1;i=ne[i])
        {
            int j=e[i];
            if(d[j]>d[v]+w[i])
            {
                d[j]=d[v]+w[i];
                q.push({d[j],j});
            }
        }
    }
    if(d[te]!=0x3f3f3f3f) return d[te];
    else return -1;
}
int main()
{
    scanf("%d%d%d%d",&n,&m,&ts,&te);
    memset(h,-1,sizeof h);
    for(int i=1;i<=m;i++)
    {
        int a,b,c;                                                                                                                                                                                                           
        scanf("%d%d%d",&a,&b,&c);
        add(a,b,c),add(b,a,c);
    }
    cout<<dijkstra();
}

spfa

#include<bits/stdc++.h>
using namespace std;
const int N=3000,M=7000*2;
int n,m,ts,te;
int h[N],e[M],ne[M],w[M],idx;
int d[N],st[N];
void add(int a,int b,int c)
{
    w[idx]=c,e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}
int spfa()
{
    queue<int>q;
    memset(d,0x3f,sizeof d);
    d[ts]=0;
    q.push(ts);
    while(q.size())
    {
        auto t=q.front();
        q.pop();
        st[t]=0;
        for(int i=h[t];i!=-1;i=ne[i])
        {
            int j=e[i];
            if(d[j]>d[t]+w[i])
            {
                d[j]=d[t]+w[i];
                if(!st[j]) 
                {
                    st[j]=1,q.push(j);
                }
            }
        }
    }
    if(d[te]!=0x3f3f3f3f) return d[te];
    else return -1;
}
int main()
{
    scanf("%d%d%d%d",&n,&m,&ts,&te);
    memset(h,-1,sizeof h);
    while(m--)
    {
        int a,b,c;
        scanf("%d%d%d",&a,&b,&c);
        add(a,b,c),add(b,a,c);
    }
    cout<<spfa();
}

1128. 信使(活动 - AcWing)

思路:这道题很容易想到bfs,相当于从一个点开始往外扩散,不过这题有边权,所以不能用bfs来求解。但是求的是所有哨所受到消息的最小时间,我们可以把每个哨所的最小时间求出来,然后求一个max。

然后就是考虑时间复杂度的问题,朴素版O(n^2)=1e4,堆优化O(mlogn)=400,spfa一般O(m)=200 最坏O(nm)=2e4,所以三种算法都可以,这里还是本着复习的想法全部写一遍。

朴素版dijkstra

#include<bits/stdc++.h>
using namespace std;
const int N=120;
int g[N][N],d[N],st[N];
int n,m;
int dijkstra()
{
    memset(d,0x3f,sizeof d);
    d[1]=0;
    for(int c=0;c<n;c++)
    {
        int t=-1;
        for(int i=1;i<=n;i++)
            if(!st[i]&&(t==-1||d[t]>d[i]))t=i;
    
        st[t]=1;
        for(int i=1;i<=n;i++)
        {
            if(!st[i]&&d[i]>d[t]+g[t][i])
            {
                d[i]=d[t]+g[t][i];
            }
        }
    }
    int flag=1,mx=0;
    for(int i=1;i<=n;i++)
    {
        if(d[i]==0x3f3f3f3f)
        {
            flag=0;
            break;
        }
        mx=max(mx,d[i]);
    }
    if(flag) return mx;
    else return -1;
}
int main()
{
    scanf("%d%d",&n,&m);
    memset(g,0x3f,sizeof g);
    for(int i=1;i<=m;i++)
    {
        int a,b,c;
        scanf("%d%d%d",&a,&b,&c);
        g[a][b]=g[b][a]=min(g[a][b],c);
    }
    cout<<dijkstra();
}

 堆优化版dijkstra

#include<bits/stdc++.h>
using namespace std;
const int N=110,M=410;
int h[N],e[M],ne[M],w[M],idx;
int n,m;
int d[N],st[N];
void add(int a,int b,int c)
{
    w[idx]=c,e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}
typedef pair<int,int> pii;
int dijkstra()
{
    memset(d,0x3f,sizeof d);
    d[1]=0;
    priority_queue<pii,vector<pii>,greater<pii>>q;
    q.push({0,1});
    while(q.size())
    {
        auto t=q.top();
        q.pop();
        int dist=t.first,v=t.second;
        if(st[v]) continue;
        st[v]=1;
        for(int i=h[v];i!=-1;i=ne[i])
        {
            int j=e[i];
            if(d[j]>dist+w[i])
            {
                d[j]=dist+w[i];
                q.push({d[j],j});
            }
        }
    }
    int flag=1,mx=0;
    for(int i=1;i<=n;i++)
    {
        if(d[i]==0x3f3f3f3f) 
        {
            flag=0;
            break;
        }
        mx=max(mx,d[i]);
    }
    if(flag) return mx;
    else return -1;
}
int main()
{
    scanf("%d%d",&n,&m);
    memset(h,-1,sizeof h);
    for(int i=1;i<=m;i++)
    {
        int a,b,c;
        scanf("%d%d%d",&a,&b,&c);
        add(a,b,c),add(b,a,c);
    }
    cout<<dijkstra();
}

spfa

#include<bits/stdc++.h>
using namespace std;
const int N=110,M=410;
int h[N],e[M],ne[M],w[M],idx;
int d[N],st[N];
int n,m;
void add(int a,int b,int c)
{
    w[idx]=c,e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}
int spfa()
{
    memset(d,0x3f,sizeof d);
    d[1]=0;
    queue<int>q;
    q.push(1);
    while(q.size())
    {
        int t=q.front();
        q.pop();
        st[t]=0;
        for(int i=h[t];i!=-1;i=ne[i])
        {
            int j=e[i];
            if(d[j]>d[t]+w[i])
            {
                d[j]=d[t]+w[i];
                if(!st[j])
                {
                    q.push(j);
                    st[j]=1;
                }
            }
        }
    }
    int flag=1,mx=0;
    for(int i=1;i<=n;i++)
    {
        if(d[i]==0x3f3f3f3f)
        {
            flag=0;
            break;
        }
        mx=max(mx,d[i]);
    }
    if(flag) return mx;
    else return -1;
}
int main()
{
    scanf("%d%d",&n,&m);
    memset(h,-1,sizeof h);
    for(int i=1;i<=m;i++)
    {
        int a,b,c;
        scanf("%d%d%d",&a,&b,&c);
        add(a,b,c),add(b,a,c);
    }
    cout<<spfa();
}

1127. 香甜的黄油(1127. 香甜的黄油 - AcWing题库)

思路:这题的题意翻译一下就是找一个点,从这个点其他所有点的距离和最小。我们来看,如果一个点到其他点的距离和最小,那么到每个点应该取最短距离,对于每个点我们都要这么求一下,然后取最小值。朴素版dijkstra的时间复杂度是O(n^2)=640000,再乘上p个点,那么就是2e8,2e8的时间复杂度或许能够卡过去,但是不保险;堆优化版O(mlogn)约为4209,再乘上p,差不多3e6,肯定可以过;spfa一般来说是O(m),最坏O(nm),那么时间复杂度就在1e6~9e8,实际上应该不会卡到2e8的时间复杂度,所以可以试试,不行就换堆优化版的dijkstra。这里我们把spfa和堆优化版dijkstra都写一下。

堆优化版dijkstra

#include<bits/stdc++.h>
using namespace std;
const int N=810,M=3010;
int h[N],e[M],ne[M],w[M],idx;
int d[N],st[N];
int n,p,m;
int id[N];
void add(int a,int b,int c)
{
    w[idx]=c,e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}
typedef pair<int,int> pii;
int dijkstra(int s)
{
    memset(d,0x3f,sizeof d);
    memset(st,0,sizeof st);
    d[s]=0;
    priority_queue<pii,vector<pii>,greater<pii>>q;
    q.push({0,s});
    while(q.size())
    {
        auto t=q.top();
        q.pop();
        int v=t.second,dist=t.first;
        if(st[v]) continue;
        st[v]=1;
        for(int i=h[v];i!=-1;i=ne[i])
        {
            int j=e[i];
            if(d[j]>dist+w[i])
            {
                d[j]=dist+w[i];
                q.push({d[j],j});
            }
        }
    }
    int ans=0;
    for(int i=1;i<=n;i++)
    {
        int j=id[i];
        if(d[j]==0x3f3f3f3f) return 0x3f3f3f3f;
        ans += d[j];
    }
    return ans;
}
int main()
{
    scanf("%d%d%d",&n,&p,&m);
    for(int i=1;i<=n;i++) scanf("%d",&id[i]);
    memset(h,-1,sizeof h);
    for(int i=1;i<=m;i++)
    {
        int a,b,c;
        scanf("%d%d%d",&a,&b,&c);
        add(a,b,c),add(b,a,c);
    }
    int res=0x3f3f3f3f;
    for(int i=1;i<=p;i++) res=min(res,dijkstra(i));
    cout<<res;
}

spfa

#include<bits/stdc++.h>
using namespace std;
const int N=810,M=3010,inf=0x3f3f3f3f;
int n,p,m;
int h[N],e[M],ne[M],w[M],idx;
int d[N],st[N],id[N];
void add(int a,int b,int c)
{
    w[idx]=c,e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}
int spfa(int s)
{
    memset(d,0x3f,sizeof d);
    d[s]=0;
    queue<int>q;
    q.push(s);
    while(q.size())
    {
        int t=q.front();
        q.pop();
        st[t]=0;
        for(int i=h[t];i!=-1;i=ne[i])
        {
            int j=e[i];
            if(d[j]>d[t]+w[i])
            {
                d[j]=d[t]+w[i];
                if(!st[j])
                {
                    st[j]=1;
                    q.push(j);
                }
            }
        }
    }
    int ans=0;
    for(int i=1;i<=n;i++)
    {
        int j=id[i];
        if(d[j]==inf) return inf;
        ans += d[j];
    }
    return ans;
}
int main()
{
    scanf("%d%d%d",&n,&p,&m);
    for(int i=1;i<=n;i++) scanf("%d",&id[i]);
    memset(h,-1,sizeof h);
    for(int i=1;i<=m;i++)
    {
        int a,b,c;
        scanf("%d%d%d",&a,&b,&c);
        add(a,b,c),add(b,a,c);
    }
    int res=inf;
    for(int i=1;i<=p;i++)
    {
        res=min(res,spfa(i));
    }
    cout<<res;
}

1126. 最小花费(活动 - AcWing)

这道题我们已知起点和终点,但是这里不再是加法,不过实际上还是求最小,那么就可以用最短路来考虑,有两种思路,

我们设起点金额是ds,中间经过一系列折损pi,ds*p1*p2*...*pn=de,de确定是100,ds尽可能的小,那么就要这一系列乘积尽可能的大。虽然这里是最大,但是我们存边可以存成实际的百分数,那么就会越乘越小,所以当一个位置第一被作为最大的挑出来的时候,就是此处最大的位置。 

#include<bits/stdc++.h>
using namespace std;
int n,m,s,e;
double g[2010][2010];
int st[2010];
double d[2010];
double dijkstra()
{
    d[s]=1;
    for(int i=1;i<=n;i++)
    {
        int t=-1;
        for(int j=1;j<=n;j++)
            if(!st[j]&&(t==-1||d[t]<d[j])) t=j;
        
        st[t]=1;
        
        for(int j=1;j<=n;j++)
            d[j]=max(d[j],d[t]*g[t][j]);
    }
    return 100/d[e];
}
int main()
{
    scanf("%d%d",&n,&m);
    memset(g,0,sizeof g);
    for(int i=1;i<=m;i++)
    {
        int a,b,c;
        scanf("%d%d%d",&a,&b,&c);
        double z=(100.0-c)/100;
        g[a][b]=g[b][a]=max(g[a][b],z);
    }
    scanf("%d%d",&s,&e);
    double ans=dijkstra();
    printf("%.8lf",ans);
}

另外还有一个思路就是从B往前找,求出最小的A。这时候边权是大于1的,越乘越大,自然可以找到最小值。

#include<bits/stdc++.h>
using namespace std;
int n,m,s,e;
int g[2010][2010],st[2010];
double d[2010];
double dijkstra()
{
    for(int i=1;i<=n;i++) d[i]=1e100;
    d[e]=100.0;
    for(int i=1;i<=n;i++)
    {
        int t=-1;
        for(int j=1;j<=n;j++)
        {
            if(!st[j]&&(t==-1||d[j]<d[t])) t=j;
        }
        st[t]=1;
        for(int j=1;j<=n;j++)
        {
            if(st[j]||g[t][j]==0x3f3f3f3f) continue;
            double p=(100-g[t][j])/100.0;
            d[j]=min(d[j],d[t]/p);
        }
    }
    return d[s];
}
int main()
{
    scanf("%d%d",&n,&m);
    memset(g,0x3f,sizeof g);
    for(int i=1;i<=m;i++)
    {
        int a,b,c;
        scanf("%d%d%d",&a,&b,&c);
        g[a][b]=g[b][a]=min(g[a][b],c);
    }
    scanf("%d%d",&s,&e);
    double ans=dijkstra();
    printf("%.8lf",ans);
}

920. 最优乘车(920. 最优乘车 - AcWing题库)

 这里要获得最少换乘次数,而且公交线路是单程的,看似很麻烦,我们可以这么来处理,我们计算出最少坐车次数,用这个减1就是最少换乘次数。那么这个坐车次数该怎么求呢,我们可以将同一线路中的点之间,按照车到站的顺序连一条边权为1的边。然后去搜到终点的最短路。

#include<bits/stdc++.h>
using namespace std;
int m,n;
int g[600][600];
int d[600];
int id[600];
void bfs()
{
    memset(d,0x3f,sizeof d);
    d[1]=0;
    queue<int>q;
    q.push(1);
    while(q.size())
    {
        auto t=q.front();
        q.pop();
        for(int i=1;i<=n;i++)
            if(g[t][i]&&d[i]>d[t]+1)
            {
                d[i]=d[t]+1;
                q.push(i);
            }
    }
}
int main()
{
    scanf("%d%d",&m,&n);
    string s;
    getline(cin,s);
    while(m--)
    {
        getline(cin,s);
        stringstream ss(s);
        int cnt=0,p;
        while(ss>>p) id[cnt++]=p;
        for(int i=0;i<cnt;i++)
            for(int j=i+1;j<cnt;j++)
                g[id[i]][id[j]]=1;
    }
    bfs();
    if(d[n]==0x3f3f3f3f) printf("NO");
    else printf("%d",d[n]-1);
}

903. 昂贵的聘礼(活动 - AcWing)

 思路:这题乍一看没什么头绪,但是每一个个物品我们有多种获取方式,这里可以联想到dp,由于情况太多,进一步联想到建图。我们先来分析样例,样例中等级没有什么限制那么就先不管。如果一个物品可以替换另一物品那么我们就建一条有向边。

这样物品与物品之间的关系就很清楚了,但是这个图从什么地方开始循环还是不明朗的。而且用原价买这种方式应该也要建一条边,我们的图中并没有体现出来。那么我们可以假定一个虚拟原点。 

那么很显然我们可以从虚拟原点出发,找到一个到1距离最短的路径。

然后就是等级问题,这里合法的对象肯定是在一个合法区间中间,也就是区间左右的等级差是m。另外还要注意一点,酋长的等级不一定最高,所以我们要把酋长作为左端点和作为右端点的情况都考虑到。这里N的范围是100以内,然后我们差不多要进行M次查找,所以这里可以用朴素版dijkstra,时间复杂度差不多是1e6。

#include<bits/stdc++.h>
using namespace std;
int p[120],level[120],g[120][120];
int m,n;
int d[120],st[120];
int dijkstra(int down,int up)
{
    memset(d,0x3f,sizeof d);
    memset(st,0,sizeof st);
    d[0]=0;
    for(int i=1;i<=n;i++)
    {
        int t=-1;
        for(int j=0;j<=n;j++)
        {
            if(!st[j]&&(t==-1||d[t]>d[j])) t=j;
        }
        st[t]=1;
        for(int j=1;j<=n;j++)
        {
            if(g[t][j]&&down<=level[j]&&level[j]<=up)
                d[j]=min(d[j],d[t]+g[t][j]);
        }
    }
    return d[1];
}
int main()
{
    scanf("%d%d",&m,&n);
    for(int i=1;i<=n;i++)
    {
        int c;
        scanf("%d%d%d",&p[i],&level[i],&c);
        g[0][i]=p[i];
        for(int j=1;j<=c;j++)
        {
            int in,d;
            scanf("%d%d",&in,&d);
            g[in][i]=d;
        }
    }
    int res=0x3f3f3f3f;
    for(int i=level[1]-m;i<=level[1];i++) res=min(res,dijkstra(i,i+m));
    cout<<res;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1450112.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

爱上JVM——常见问题:JVM组成(一)

1 JVM组成 1.1 JVM由那些部分组成&#xff0c;运行流程是什么&#xff1f; 难易程度&#xff1a;☆☆☆ 出现频率&#xff1a;☆☆☆☆ JVM是什么 Java Virtual Machine Java程序的运行环境&#xff08;java二进制字节码的运行环境&#xff09; 好处&#xff1a; 一次编写&…

【AIGC】Stable Diffusion的模型入门

下载好相关模型文件后&#xff0c;直接放入Stable Diffusion相关目录即可使用&#xff0c;Stable Diffusion 模型就是我们日常所说的大模型&#xff0c;下载后放入**\webui\models\Stable-diffusion**目录&#xff0c;界面上就会展示相应的模型选项&#xff0c;如下图所示。作者…

【JAVA-Day81】 线程休眠: Java 中暂停线程执行的方法 ⏸️

线程休眠&#xff1a; Java 中暂停线程执行的方法 ⏸️&#x1f4a4; 线程休眠&#xff1a; Java 中暂停线程执行的方法 ⏸️&#x1f4a4;摘要 &#x1f4dd;引言 &#x1f680;正文 &#x1f4da;一、什么是线程休眠 ⏸️二、线程什么情况下会休眠 ❓三、模拟线程休眠 &#…

jenkins-maven环境的安装

jenkins-maven环境的安装

leetcode 160 相交链表

题目 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意&#xff0c;函数返回结…

Gemini 1.5 Pro揭秘:Google DeepMind新一代AI模型如何突破千万级别词汇限制?

Gemini 1.5 Pro 发布&#xff01; 这款模型凭借其超长的上下文处理能力脱颖而出&#xff0c;支持10M tokens。 它的多模态特性意味着&#xff0c;无论面对多么庞大复杂的内容&#xff0c;Gemini 1.5 Pro都能游刃有余地应对。 在AI的世界里&#xff0c;上下文的理解如同记忆的…

【类与对象(1)】类的引入、访问及封装、定义、作用域、实例化、类大小的计算、this指针

1.类的引入 C兼容了C语言结构体的用法&#xff0c;但是同时又升级成了类。结构体中只能定义变量&#xff0c;类中不仅可以定义变量&#xff0c;还可以定义函数。 例如&#xff0c;数据结构中实现栈&#xff0c;结构体stack中只定义了变量&#xff0c;要实现的函数在结构体外定…

npm使用国内淘宝镜像(最新地址)

目录 前言 一、命令配置 二、使用cnpm安装 三、常见包地址 四、总结 往期回顾 前言 我们前端程序员在使用国外的镜像源速度很慢并且容易下载失败&#xff0c;有时候需要尝试多次才有可能下载成功&#xff0c;很麻烦&#xff0c;但是可以切换为国内镜像源&#xff0c;下…

Node.js开发-express框架

express框架 1) 介绍2) express 路由3) express 响应设置4) express 其他响应5) express中间件6) 静态资源中间件7) 获取请求体数据 body-parser8) Router 路由模块化9) EJS 模板引擎 1) 介绍 express 是一个基于 Node.js 平台的极简、灵活的 WEB 应用开发框架&#xff0c;官方…

MySQL学习记录——팔 函数

文章目录 1、日期函数2、字符串函数3、数学函数4、其它函数 1、日期函数 //获取日期 select current_date(); //获取时间 select current_time(); //获取时间戳, 格式为日期时间 select current_timestamp(); //获取当前时间, 格式为日期时间 select now(); //获取参数的日期部…

单html页面使用Vue3和Element-Plus

一、快速入门 使用CDN方式引入Vue3使用CDN方式引入Element-Plus的样式文件和组件库 案例 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, ini…

Linux学习(二)Makefile与GCC

程序运行步骤&#xff0c;预处理->预编译->编译->链接 1.预处理 gcc -E 文件名&#xff0c;生成的文件不会存储&#xff0c;可以重定向 > 到另一个文件中 2.编译 gcc -c *.c -o *.o 编译生成的文件为.o 可以将它编译为汇编 gcc -S 文件名 3.链接 gcc *.o *.…

投资银行在网络安全生态中的作用

文章目录 一、投资银行的含义(一)并购买方。(二)并购卖方。(三)IPO辅助。(四)投资银行业务的另一方面是帮助这些交易融资。二、从投资银行角度看网络安全产业(一)行业的短期前景三、复杂的网络安全并购(一)行业知识对投资银行业务很重要(二)在网络安全领域,技术…

《区块链公链数据分析简易速速上手小册》第8章:实战案例研究(2024 最新版)

文章目录 8.1 案例分析&#xff1a;投资决策支持8.1.1 基础知识8.1.2 重点案例&#xff1a;股票市场趋势预测准备工作实现步骤步骤1: 加载和准备数据步骤2: 特征工程步骤3: 训练模型步骤4: 评估模型 结论 8.1.3 拓展案例 1&#xff1a;基于情感分析的投资策略准备工作实现步骤步…

【Python】通过conda安装Python的IDE

背景 系统&#xff1a;win11 软件&#xff1a;anaconda Navigator 问题现象&#xff1a;①使用Navigator安装jupyter notebook以及Spyder IDE 一直转圈。②然后进入anaconda prompt执行conda install jupyter notebook一直卡在Solving environment/-\。 类似问题&#xff1a; …

专业140+总分420+东北大学841通信专业基础考研经验东大电子信息与通信工程,真题,大纲,参考书。

今年考研顺利上岸&#xff0c;被东北大学通信工程录取&#xff0c;其中专业课841通信专业基础140&#xff0c;数二140&#xff0c;总分420&#xff0c;整体每门课都还是比较均衡&#xff0c;刚开始考研前也和大家一样&#xff0c;焦虑&#xff0c;紧张&#xff0c;面对考研怕失…

软件测试【三】Python中的数据类型

一、Python中的数据类型: python中的list列表定义 在Python中&#xff0c;list是一种有序的数据类型&#xff0c;可以存储任意类型的对象&#xff0c;包括数字、字符串、布尔值、函数等。 定义一个list列表可以使用中括号[]来表示&#xff0c;其中每个元素之间用逗号隔开。以…

VitePress-16- 配置- head 的配置网页icon与插入一个script标签

作用说明 head 配置项&#xff0c;可以在页面 HTML 的 <head> 标签中呈现的其他元素。 用户添加的标签在结束 head 标签之前呈现&#xff0c;在 VitePress 标签之后。说白了&#xff0c;就是自定义一些 head 标签中的元素&#xff0c;例如 &#xff1a;页面的icon等。 由…

【分享】图解ADS+JLINK调试ARM

文章是对LPC2148而写的&#xff0c;但是对三星的44B0芯片同样适用&#xff0c;只需要在选择时将相应的CPU选择的S3C44B0就可以了。 JLINK在ADS下调试心得 前两天一个客户用jlink在ADS下调试LPC2148总报错&#xff0c;这个错误我之前在调试LPC2200的时候也碰到过&#xff0c;后…

基于JAVA,SpringBoot和Vue二手房屋销售系统设计

摘要&#xff1a; 本研究旨在设计并实现一个基于JAVA, SpringBoot和Vue技术的二手房屋销售系统。该系统采用当前流行的前后端分离架构&#xff0c;后端使用SpringBoot框架快速搭建RESTful API&#xff0c;提供稳定且高效的服务端应用&#xff1b;前端则通过Vue.js框架构建动态…