圣诞树(dij)

C++用函数来打印圣诞树 打印圣诞树(使用函数) 立即下载

圣诞树

#include <bits/stdc++.h>
#include <set>

using namespace std;

const int MAX_N = 50005;
const int MAX_M = 500005;
const int inf = 0x3f3f3f3f;
struct edge {
    int v, w, next;
} e[MAX_M];

int p[MAX_N];
int eid, n, m;

void mapinit() {
    memset(p, -1, sizeof(p));
    eid = 0;
}

void insert(int u, int v, int w) {  // 插入带权有向边
    e[eid].v = v;
    e[eid].w = w;
    e[eid].next = p[u];
    p[u] = eid++;
}

void insert2(int u, int v, int w) {  // 插入带权双向边
    insert(u, v, w);
    insert(v, u, w);
}

typedef pair<int, int> PII;
set<PII, less<PII> > min_heap;  // 用 set 来伪实现一个小根堆,并具有映射二叉堆的功能。堆中 pair<int, int> 的 second 表示顶点下标,first 表示该顶点的 dist 值
int dist[MAX_N];  // 存储单源最短路的结果
bool vst[MAX_N];  // 标记每个顶点是否在集合 U 中
int cow[MAX_N];
bool dijkstra(int s) {
    // 初始化 dist、小根堆和集合 U
    memset(vst, 0, sizeof(vst));
    memset(dist, 0x3f, sizeof(dist));
    min_heap.insert(make_pair(0, s));
    dist[s] = 0;
    for (int i = 0; i < n; ++i) {
        //cout << " ith = " << i << endl;
        if (min_heap.size() == 0) {  // 如果小根堆中没有可用顶点,说明有顶点无法从源点到达,算法结束
            return false;
        }
        // 获取堆顶元素,并将堆顶元素从堆中删除
        auto iter = min_heap.begin();
        int v = iter->second;
        min_heap.erase(*iter);
        vst[v] = true;

        // 进行和普通 dijkstra 算法类似的松弛操作
        for (int j = p[v]; j != -1; j = e[j].next) {
            int x = e[j].v;
            if (!vst[x] && dist[v] + e[j].w < dist[x]) {
                // 先将对应的 pair 从堆中删除,再将更新后的 pair 插入堆
                min_heap.erase(make_pair(dist[x], x));
                dist[x] = dist[v] + e[j].w;
                min_heap.insert(make_pair(dist[x], x));
            }
        }
    }

    return true;  // 存储单源最短路的结果
}

int main() {
    //freopen("data.in","r",stdin);
    //freopen("data.out","w",stdout);
    ios::sync_with_stdio(false);

    mapinit();//初始化不能忘

    cin >> n >> m;

    for(int i=1; i<=n; i++)
    {
        cin>>cow[i];
    }

    for(int i = 0; i < m; ++i) {
        int u, v, len;
        cin >> u >> v >> len;
        insert2(u, v, len);
    }

    long long sum = 0;
    if( dijkstra(1) ) {
        for(int i = 2; i <= n; i++)
            sum += dist[i] * cow[i];
        cout<<sum<<endl;
    } else {
        cout<<"No Answer\n";
    }

    return 0;
}

 

大模型系统构建的“三驾马车”——Prompt、Context与Harness工程 在LLM应用开发的早期阶段,我们热衷于比拼“提示词”的精妙程度。那时,一个精心构造的思维链CoT就能让模型的表现提升10%以上。随着大模型从“玩具”走向“生产系统”,我们逐渐意识到:单一的 Prompt 只是起点,而非终点。 真正的工业级应用,需要构建一套三层递进的工程体系——Prompt Engineering、Context Engineering 和 Harness Engineering。 阅读详情

相关推荐

JLink 添加国产芯片手把手教程(雅特力 + 华大)

拷贝厂商算法文件夹 + 配置 JLinkDevices.xml。雅特力直接复制官方配置,华大按需添加芯片节点,操作一次,永久生效,以后调试 AT32、HC32 再也不用愁找不到型号。这套方法适配全版本 JLink,也是国产 MCU 替代项目的必备技能,看完照着做,新手也能轻松搞定。百度网盘资料分享:通过网盘分享的文件:jink驱动(包括新增芯片型号)链接: https://pan.baidu.com/s/14SLgrPfyof1lglD6VQguAw?pwd=cfuq 提取码: cfuq。

weixin_48867130的博客 713

骑车比赛(dij)

骑车比赛 #include &lt;bits/stdc++.h&gt; #include &lt;set&gt; using namespace std; const int MAX_N = 10000; const int MAX_M = 100000; const int inf = 0x3f3f3f3f; struct edge { int v, w, next; } e[M...

ccshijtgc的专栏 278

Oracle EBS MRP 模块测试记录

MRP 模块测试记录        构思:创建Shirt成品物料,它由Cloth和Button组成。1*Shirt=1*Cloth+8*Button。        首先创建这三个物料(复制模板创建),并分配给T02。        创建BOM,将这三个物料关联起来。        分别创建资源(人工和设备)制造Cloth和Button。        分别创建两个部门(HumanDep和Mach

NetSuite 张老师 8166

C/C++游戏开发(easyx框架)及时类——极速赛车

本游戏用到了图形界面库graphics.h,图形界面库下载安装: 下载链接:https://easyx.cn/download 游戏截图: 加载游戏资源图片 右键打开项目属性,添加 -> 现有项,添加资源图片进项目·。 资源图片链接:https://pan.baidu.com/s/1DxvqSOzE3Elz3KKLbMOUUA?pwd=hd1o 提取码:hd1o IMAGE road, grass, car; void initgamePicture() { loadimage(&gra

ymxyld的博客 5563

星网锐捷语音网关密码重置恢复出厂设置

星网锐捷语音网关---密码重置 第一种星网锐捷SVX网关恢复出厂设置的方法 eth1口 任意口插网线,连接电脑并设置电脑固定ip为: 一, 二 网页输入: 192.168.88.86 admin 默认密码 admin 登陆。 忘记密码 可通过以下方法重置: 三: 通过crt或者 shell工具 ,连接 root@192.168.88.86 连续输入两次 passwd a12345678 reboot重启后。通过账号 密码 a12345678 即可登陆系...

cibazhanji2176的博客 1万+

UG NX 12.0零基础实战:从草图绘制到三维建模全流程解析

本文详细解析UG NX 12.0从草图绘制到三维建模的全流程,适合零基础用户快速掌握这款工业设计软件。内容涵盖界面设置、基础操作、草图技巧、拉伸旋转建模、布尔运算等核心功能,并通过机械零件实战案例演示完整设计流程,帮助读者系统学习UG NX 12.0的工业设计应用。

weixin_29261711的博客 1176

超级圣诞树

超级圣诞树

m0_61497245的博客 452

Flash芯片的VCC上电到可操作时间过长

Flash的VCC上电到操作时间(tVSL)通常有最大值限制,如果超过这个时间,核心风险是状态机不同步和指令锁存错误。比如芯片内部振荡器可能已经尝试启动又休眠了,但主控却在这之后才发送指令,导致完全 misinterpreted。Flash芯片的(从电源上电到可以正常进行读写操作的时间)如果过长,会产生一系列负面影响简单来说,这个时间过长意味着电源上升速度太慢,违反了芯片的要求。

qq_61918649的博客 723

计蒜客圣诞树

问题描述圣诞节快到了,蒜头君准备做一棵大圣诞树。 这棵树被表示成一组被编号的结点和一些边的集合,树的结点从 1 到 n 编号,树的根永远是 1。每个结点都有一个自身特有的数值,称为它的权重,各个结点的权重可能不同。对于一棵做完的树来说,每条边都有一个价值 ve,若设这条边 e 连接结点 i 和结点 j,且 i 为 j的父结点(根是最老的祖先),则该边的价值ve=sj*we,sj表示结点 j 的所有...

李小原的博客 911

ChromeOS安装教程

ChromeOS,是基于Linux内核研发的ChromiumOS开源系统的闭源系统,最大的特色就是内置了Chrome浏览器,早期主要以Web云端应用程序为主,后来逐渐引入了Android子系统和Linux子系统。本文主要简述摸索的家用笔记本安装ChromeOS安装方法,供各位玩机朋友参考。

weixin_45751495的博客 8117

YOLOv11改进 | Neck篇 | 双向特征金字塔网络BiFPN助力YOLOv11有效涨点

本文给大家带来的改进机制是BiFPN双向特征金字塔网络,其是一种特征融合层的结构,也就是我们本文改进YOLOv11模型中的Neck部分,它的主要思想是通过多层级的特征金字塔和双向信息传递来提高精度。本文给大家带来的结构可以让大家自行调节网络结构大小,同时能够达到一定的轻量化效果,为什么发BiFPN呢因为它算是YOLO系列改进中的常青树了,大家可以借鉴它的双向特征思想来创新自己的Neck结构本文的BiFPN通过yaml文件配置可以让大家自行调配其结构。

Snu77的博客 9104

圣诞节学算法---线段树

临近圣诞节,别忘了内卷,今天我们就来学一下圣诞树的近亲---线段树 线段树,是一种维护区间和的树形结构,能在O(logn)进行区间修改

NOI RP++ 654

SerDes电路的PCB仿真设计规则及策略

SerDes的PCB设计中,重点工作是使用3D 电磁 (EM) 场求解器,进行过孔结构优化,包括 BGA的扇入和扇出区域以及布线的过孔区域,并且,利用连接器供应商提供加密的 3D 模型,进行连接器和 PCB 的级联仿真,最终获取系统级的通道性能参数,如插入损耗、回波损耗、串扰和模式转换、阻抗曲线等,如果发现任何缺陷,再进行进一步优化,这一过程中,推荐进行拆分仿真,以提高设计效率。

一只豌豆象的博客 2193

计蒜客习题:圣诞树

问题描述 圣诞节快到了,蒜头君准备做一棵大圣诞树。 这棵树被表示成一组被编号的结点和一些边的集合,树的结点从 1 到 n 编号,树的根永远是 1。每个结点都有一个自身特有的数值,称为它的权重,各个结点的权重可能不同。对于一棵做完的树来说,每条边都有一个价值 ve,若设这条边 e 连接结点 i 和结点 j,且 i 为 j的父结点(根是最老的祖先),则该边的价值ve=sj*we,sj表示结...

LiuKairui的博客 1320

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

dij算法堆优化_Dijkstra算法与其最小堆优化

(仿佛回到了当年打比赛的时候呢POJ 3013(Big Christmas Tree)题目大意:由一堆顶点和边构造出一棵圣诞树,1号顶点固定为树根,顶点和边各自有权重值(均为正数)。构造圣诞树的边的开销是边权乘以子树中所有顶点的权重之和,总开销则是所有边的开销之和。求圣诞树的最小开销。稍微变换一下,容易得知构造圣诞树的最小开销是:Σ ( 某顶点到1号顶点的最小距离 * 该顶点的权重值 )故这道题是...

weixin_39983384的博客 580

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

poj 3013 Big Christmas Tree (dij+优先队列优化 求最短路)

模板 题意:给你一个图,1总是为根,每个边有单位价值,每个点有权重。 每条边的价值 = sum(后继节点权重)*边的单位价值。 求树的最小价值,即构成一棵树的n-1条边的最小价值。 算法: 1、因为每个边的价值都要乘以后来访问的节点的权重,而走到后来访问的点必经过这条边。 实际上总价值就是  到每个点的最短路径*这个点的权重。 2、但是这个题 数据量真的太大了,50000个点

虽然冲动永远比坚持容易~ 1208

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

计蒜客—圣诞树

解题说明:稍等AC代码:#include&lt;iostream&gt; #include&lt;vector&gt; #include&lt;cstring&gt; #include&lt;algorithm&gt; #include&lt;set&gt; using namespace std; typedef long long ll; const int inf=0x3f3f3f3f; i...

zxker 1093

计蒜客 最短路习题 圣诞树

许久未更新,今天做到一道有意思的题目,先上图,然后细说                             这道题大体意思是给定一张无向图,其边权为正,要你求出总代价最小的生成树,生成树上 每条边  v(e)的代价为 w(e)*s(j),w(e)为边(i,j)的权值,s(j)是 对于 j 节点所在子树的节点 数总和。   题解:   该题看起来是最...

DoNotC的博客 580

【最短路径问题】计蒜客:圣诞树

以每个节点为起点,求到根节点的最短路,所有 最短路*权值 加起来即为结果。解释如图实现用迪杰斯特拉 算法代码:登录后复制 #include<iostream> #include<vector> #include<cstring> using namespace std; int w...

weixin_40821920的博客 72

poj-3013-Big Christmas Tree-求最短路

题目的意思是让那你建立一颗圣诞树。 圣诞树以1为头结点。 圣诞树每条边的花费为当前边的权值乘以当前边的子树的节点的权值和。 那么就相当于求每个节点乘以节点到根节点的最短路的和。 #include #include #include #include #include #include #include #include #include #include using namespace

青竹梦 1422

POJ 3013 Big Christmas Tree 最短路

求图上根为1的生成树使得各边权*子树点权和最小。 ans=∑(u,v)wu,v×sumvans=\sum_{(u,v)} w_{u,v}\times sum_v 光看这个式子并没有卵用。专门迷惑人的233。 考虑每个点对答案的贡献,即该点的点权*其祖先边权和。 即上式等价于 ans=∑ufu×dis1,uans=\sum_{u} f_u\times dis_{1,u} 要使总答案最小,即

とある黄鱼のOIブログ 836

区间dp做题记录

文章目录CF1509C The Sports FestivalCF1666J Job Lookup[USACO04OPEN] Turning in Homework G[CERC2014] Outer space invaders[USACO17JAN] Subsequence Reversal P「春季测试 2023」圣诞树括号序列再战猪猪侠「THUSC 2016」成绩单[CQOI2007] 涂色「ZJOI2016」线段树「THUPC 2021」小 E 爱消除代码源CSP-S 模拟赛 DAY 20 T2

weixin_55851276的博客 1222

VOJ 圣诞树 题解 最短路径 dijkstra算法

图论 最短路径 dijkstra算法 VOJ题解 C++代码 附详细注释

一只摸鱼的bbc 930

C++混乱编程?“可可爱爱”的圣诞树代码

用爱心形状的混乱代码输出一颗圣诞树,这究竟是怎么做到的?这一切的背后究竟是程序的泯灭还是代码的沦丧?欢迎收看来自深渊六层的代码。

qq_42761323的博客 8184

C++圣诞树代码

C++圣诞树代码 效果图 代码 #include<stdio.h> #include<math.h> #include<stdlib.h> using namespace std; #define PI 3.14159265359 float sx, sy; float sdCircle(float px, float py, float r) { float dx = px - sx, dy = py - sy; return sqrtf(dx * dx +

Sugger_99的博客 1万+

C/C++打印圣诞树||秀翻全场!

我们先思考一个问题,如何用C程序输出不同颜色的字体?一般来说,只靠应用程序本身很难达到这个目的,因为运行窗口的管理属于操作系统资源,而应用程序想要使用这些资源就必须通过操作系统提供的接口来实现。为了解决这类问题,微软提供了丰富的Windows API(Application Programming Interface),这些API并不会直接在应用程序中展开,而是以动态链接的形式存在着,在应用程序需要API实现某些功能的时候,才调用相应的动态链接库。

爱编程的鱼的博客 9296
上一篇: 骑车比赛(dij)
下一篇: 迷阵突围(dij)
ccshijtgc
博客等级 码龄20年 13粉丝 181原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值