七夕专场-A题

这个题目意思我给弄错了。真桑心没好好听TK的指导,只要在松弛操作里头记录前驱节点就可以了,还要注意long long,其实我有很多时候测试错了可以猜到要用long long才可以,但是不知道缘故,就单单怎么算,不是很了解。

#include <cstdio>
#include <iostream>
#include <cstring>
#include <queue>
#include <algorithm>
#include <algorithm>
#define LL long long
using namespace std;
const int maxn = 200010;
const int maxm = 200100;
typedef pair<LL,int> pii;
int v[maxm],next[maxm],w[maxm];
int first[maxn];
LL d[maxn];
int e;
int temp[maxn];
int re[maxn];

void init()
{
    e = 0;
    memset(first,-1,sizeof(first));
}

void add_edge(int a,int b,int c)
{
    v[e] = b;next[e] = first[a];w[e] = c;first[a] = e++;
}

void dij(int src)
{
    priority_queue <pii,vector<pii>,greater<pii> > q;
    memset(d,-1,sizeof(d));
    d[src] = 0;
    q.push(make_pair(0,src));
    while(!q.empty()){
        int u = q.top().second;
        q.pop();
        for(int i = first[u];i != -1;i = next[i]){
            if(d[v[i]] == -1 || d[v[i]] > d[u]+w[i]){
                temp[v[i]] = u;
                d[v[i]] = d[u]+w[i];
                q.push(make_pair(d[v[i]],v[i]));
            }
        }
    }
}

int main(){
      int m,n;cin >> m >> n;
      int a ,b,c;
        init();
        for(int i = 0;i < n;i++){
         cin >> a >> b >> c;
            add_edge(a,b,c);
            add_edge(b,a,c);
        }
        dij(1);
        int p = 0,now = m;
        if(d[m] == -1)
        {
            cout << "-1" << endl;
            return 0;
        }

        re[p++] = m;
        while(now != 1)
        {
            now = temp[now];
            re[p++] = now;
        }
        for(int i = p-1;i >0;i--)
        {

            cout << re[i] << " ";
        }
        cout << re[0] << endl;
    return 0;
}

七夕专场-A题

时间: 2024-10-28 23:15:30

七夕专场-A题的相关文章

七夕专场-D题

一个map的超水题. #include <cstdio> #include <iostream> #include <cstring> #include <queue> #include <algorithm> #include <algorithm> #define LL long long using namespace std; const int maxn = 200010; const int maxm = 200100;

七夕专场-F题

LH很聪明.每次这种题目,他想想就有结果了,我得琢磨一阵才恍然大悟.诶,智商不在一个等级啊.其实是用做差,一直用新读入的减去前面2个数之差.sum为0就满足. #include<iostream> using namespace std; int g[10010]; int main() { int t,m; cin >> t; while(t--) { cin >> m; int sum = 0; for(int i = 0;i <m;i++) { cin &g

CSU-ACM暑假集训基础组七夕专场

•Problem A Codeforces 20C       最短路(dij,spfa) •题意:给出一张n个点m条边的无向图 (2 ≤ n ≤ 105, 0 ≤ m ≤ 105),输出从1到n的任意一条最短路径. •解法:dijkstra或者spfa,用pre数组记录到达每个点最短距离的前驱结点. •注意:路径的长度范围是 1 ≤ wi ≤ 106,从1到n的最短路径长度可能超出int范围. •没有路径从1到达n时要输出-1 1 #include <cstdio> 2 #include &

HDU 2549 壮志难酬 (水题,但有个小坑!)

壮志难酬 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 10552    Accepted Submission(s): 3512 Problem Description 话说MCA山上各路豪杰均出山抗敌,去年曾在江湖威名显赫的,江湖人称<万军中取上将首级舍我其谁>的甘露也不甘示弱,"天将降大任于斯人也,必先劳其筋骨,饿其

tyvj1013 找啊找啊找GF

描述 "找啊找啊找GF,找到一个好GF,吃顿饭啊拉拉手,你是我的好GF.再见.""诶,别再见啊..."七夕...七夕...七夕这个日子,对于sqybi这种单身的菜鸟来说是多么的痛苦...虽然他听着这首叫做"找啊找啊找GF"的歌,他还是很痛苦.为了避免这种痛苦,sqybi决定要给自己找点事情干.他去找到了七夕模拟赛的负责人zmc MM,让她给自己一个出题的任务.经过几天的死缠烂打,zmc MM终于同意了.但是,拿到这个任务的sqybi发现,原来出题

洛谷 P1509 找啊找啊找GF(复习二维费用背包)

传送门 题目背景 "找啊找啊找GF,找到一个好GF,吃顿饭啊拉拉手,你是我的好GF.再见." "诶,别再见啊..." 七夕...七夕...七夕这个日子,对于sqybi这种单身的菜鸟来说是多么的痛苦...虽然他听着这首叫做"找啊找啊找GF"的歌,他还是很痛苦.为了避免这种痛苦,sqybi决定要给自己找点事情干.他去找到了七夕模拟赛的负责人zmc MM,让她给自己一个出题的任务.经过几天的死缠烂打,zmc MM终于同意了. 但是,拿到这个任务的sqy

【运营】各大电商七夕活动对比

 七夕要到了,各大电商都开始有所行动了.兴趣使然就研究了下几个电商的七夕活动,列表如下: 电商 类别 活动形式 分析和建议 淘宝 综合类C2C网上购物平台,纯粹的第三方平台模式 1.网站首页banner“食品生鲜会场,8.16-8.20金币狂欢周”,点进去上方可以看到每天的活动项目,右侧有明晰的商品类别导航.其他banner是一些商家的活动,点进去可以领优惠券再使用.2. 含七夕字眼的比如“七夕惠购”.“七夕限量专宠”都是七夕相关商品,有优惠券或折扣.3.App的“超实惠”一栏可以看到“聚划算,

【洛谷P1509】 找啊找啊找GF

题目背景 "找啊找啊找GF,找到一个好GF,吃顿饭啊拉拉手,你是我的好GF.再见." "诶,别再见啊..." 七夕...七夕...七夕这个日子,对于sqybi这种单身的菜鸟来说是多么的痛苦...虽然他听着这首叫做"找啊找啊找GF"的歌,他还是很痛苦.为了避免这种痛苦,sqybi决定要给自己找点事情干.他去找到了七夕模拟赛的负责人zmc MM,让她给自己一个出题的任务.经过几天的死缠烂打,zmc MM终于同意了. 但是,拿到这个任务的sqybi发现

HDU 1756 Cupid&#39;s Arrow 判断点在多边形的内部

Cupid's Arrow Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1163    Accepted Submission(s): 425 Problem Description 传说世上有一支丘比特的箭,凡是被这支箭射到的人,就会深深的爱上射箭的人.世上无数人都曾经梦想得到这支箭.Lele当然也不例外.不过他想,在得到这支箭前,