当前位置: 首页 > news >正文

POJ3013 Big Christmas Tree

题目:http://poj.org/problem?id=3013

求每个点到1的最短路。不是最小生成树。

总是WA。看讨论里说INF至少2e10,于是真的A了!

算一下,dis最大可能3276800000,于是开成3276800001,果然可A!还快了16ms(?)!

不过出现了: [Warning] this decimal constant is unsigned only in ISO C90 [enabled by default]什么意思呢?

总之以后设上界的时候还是略算一下。何况自己常用的0x 7 f f f f f f f也并不是十分大。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
const long long INF=3276800001;
int T,n,m,head[50005],xnt,x,y,c[50005],z;
long long ans,dis[50005];
bool in[50005],flag;
struct Edge{
    int next,to,w;
    Edge(int ne=0,int t=0,int o=0):next(ne),to(t),w(o) {}
}edge[100005];
queue<int> q;
void spfa()
{
    while(q.size())q.pop();
    memset(in,0,sizeof in);
    in[1]=1;dis[1]=0;
    q.push(1);
    while(q.size())
    {
        int k=q.front();q.pop();
        in[k]=0;///!
        for(int i=head[k],v;i;i=edge[i].next)
            if(dis[k]+edge[i].w<dis[v=edge[i].to])
            {
                dis[v]=dis[k]+edge[i].w;
                if(!in[v])
                {
                    in[v]=1;////!
                    q.push(v);
                }
            }
    }
}
int main()
{
    scanf("%d",&T);
    while(T--)
    {
        memset(head,0,sizeof head);
        ans=0;xnt=0;flag=0;
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)scanf("%d",&c[i]),dis[i]=INF;
        for(int i=1;i<=m;i++)
        {
            scanf("%d%d%d",&x,&y,&z);
            edge[++xnt]=Edge(head[x],y,z);head[x]=xnt;
            edge[++xnt]=Edge(head[y],x,z);head[y]=xnt;
        }
        spfa();
        for(int i=2;i<=n;i++)
        {
            if(dis[i]==INF)
            {
                flag=1;break;
            }
            ans+=c[i]*dis[i];
        }
        if(flag) printf("No Answer\n");
        else printf("%lld\n",ans);
    }
    return 0;
}

 

转载于:https://www.cnblogs.com/Narh/p/8613562.html

相关文章:

  • 飘逸的python - 实现一个极简的优先队列
  • Linux常用查找命令
  • 留存- angularjs 弹出框 $modal
  • 矩阵相乘,向量相乘,矩阵向量相乘
  • Spring中基于Java的配置@Configuration和@Bean用法
  • 阿里技术面试题全面覆盖?不服,你来补充
  • Atitit mysql 存储过程捕获所有异常,以及日志记录异常信息
  • Android新手引导View
  • [Fri 26 Jun 2015 ~ Thu 2 Jul 2015] Deep Learning in arxiv
  • 删除表A的记录时,Oracle 报错:“ORA-02292:违反完整约束条件(XXX.FKXXX)- 已找到子记录...
  • Redis部署及参数笔记
  • 关于二叉树的遍历梳理(递归、非递归、线索二叉树)
  • JSONObject和JSONArray区别及基本用法
  • Idea中使用git
  • 怎么爆加密过后的前端JS
  • 【Leetcode】101. 对称二叉树
  • Electron入门介绍
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • JavaScript学习总结——原型
  • Java-详解HashMap
  • Java知识点总结(JavaIO-打印流)
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • 排序算法之--选择排序
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 我有几个粽子,和一个故事
  • 学习JavaScript数据结构与算法 — 树
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • #vue3 实现前端下载excel文件模板功能
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (Note)C++中的继承方式
  • (二)hibernate配置管理
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (十六)一篇文章学会Java的常用API
  • (五)IO流之ByteArrayInput/OutputStream
  • (转)LINQ之路
  • .Net Redis的秒杀Dome和异步执行
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .Net 应用中使用dot trace进行性能诊断
  • /usr/bin/env: node: No such file or directory
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(朱雀组)
  • [2010-8-30]
  • [3300万人的聊天室] 作为产品的上游公司该如何?
  • [AutoSar NVM] 存储架构
  • [AutoSar]工程中的cpuload陷阱(三)测试
  • [CareerCup] 13.1 Print Last K Lines 打印最后K行
  • [dfs] 图案计数
  • [HDOJ4911]Inversion
  • [Linux]于Mac在配置Linuxserver安装Nginx+PHP
  • [Open3d]: 知识记录
  • [Paper]Cardiologist-Level Arrhythmia Detection with Convolutional Neural Networks
  • [pasecactf_2019]flask_ssti proc ssti config
  • [Poetize6] IncDec Sequence