ACdream 1083 人民城管爱人民

拓扑排序,然后从终点开始递推。

#pragma comment(linker, "/STACK:1024000000,1024000000")
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<stack>
#include<iostream>
#include<ctime>
using namespace std;
typedef long long LL;
const double pi=acos(-1.0);
void File()
{
    freopen("D:\\in.txt","r",stdin);
    freopen("D:\\out.txt","w",stdout);
}

const int INF=0x7FFFFFFF;
int T,n,m;
struct Edge {int u,v,w,nx; } e[100010];
int sz,h[10010],r[10010];
struct X { int order,id; } p[10010];
int dis[10010][2];

void add(int a,int b,int c)
{
    e[sz].u=a; e[sz].v=b; e[sz].w=c; e[sz].nx=h[a]; h[a]=sz++;
}

bool cmp(X a,X b){ return a.order>b.order; }

bool top()
{
    queue<int>Q; sz=0;
    for(int i=0;i<n;i++) if(r[i]==0) Q.push(i);

    while(!Q.empty())
    {
        int t=Q.front(); Q.pop(); sz++; p[sz].order=sz; p[sz].id=t;
        for(int i=h[t];i!=-1;i=e[i].nx)
            { r[e[i].v]--; if(r[e[i].v]==0) Q.push(e[i].v); }
    }
}

int main()
{
    scanf("%d",&T); while(T--)
    {
        scanf("%d%d",&n,&m);
        memset(h,-1,sizeof h);
        memset(r,sz=0,sizeof r);
        for(int i=1;i<=m;i++)
        {
            int u,v,w; scanf("%d%d%d",&u,&v,&w);
            add(u,v,w); r[v]++;
        }
        top();

        for(int i=0;i<=n;i++) dis[i][0]=dis[i][1]=INF;

        for(int i=n;i>=1;i--)
        {
            int id=p[i].id;
            if(id==n-1) { dis[id][1]=dis[id][0]=0; continue;}
            for(int j=h[id];j!=-1;j=e[j].nx)
            {
                if(dis[e[j].v][0]==INF) continue;
                dis[id][0]=min(dis[id][0],dis[e[j].v][0]+e[j].w);
            }

            int x1=INF,x2=INF;

            for(int j=h[id];j!=-1;j=e[j].nx)
            {
                if(dis[e[j].v][1]==INF) continue;
                x1=min(x1,dis[e[j].v][1]+e[j].w);
            }

            bool flag=0;
            for(int j=h[id];j!=-1;j=e[j].nx)
            {

                if(dis[e[j].v][0]==INF) continue;
                if(flag==0&&dis[e[j].v][0]+e[j].w==dis[id][0]) { flag=1; continue; }
                x2=min(x2,dis[e[j].v][0]+e[j].w);
            }

            dis[id][1]=max(x1,x2);
        }

        if(dis[0][1]==INF||dis[0][0]==INF) printf("-1\n");
        else printf("%d\n",dis[0][1]);
    }
    return 0;
}
时间: 2024-11-05 04:49:02

ACdream 1083 人民城管爱人民的相关文章

ACdream 1083 有向无环图dp

题目链接:点击打开链接 人民城管爱人民 Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 128000/64000 KB (Java/Others) SubmitStatistic Next Problem Problem Description 一天GG正在和他的后宫之中的一个的MM在外面溜达,MM突然说了一句,"我想吃鸡蛋灌饼"--当他们吃的正high的时候.城管出现了!作为传说中的最强军事力量,卖鸡蛋灌饼的小贩在他们面前也

中国标准城市区域码

ID 国家 省份 省份编码 城市 城市编码 县区 县区编码 邮编 1 中华人民共和国 北京市 110000 北京市市辖区 110100 东城区 110101 100010 2 中华人民共和国 北京市 110000 北京市市辖区 110100 西城区 110102 100032 3 中华人民共和国 北京市 110000 北京市市辖区 110100 崇文区 110103 100061 4 中华人民共和国 北京市 110000 北京市市辖区 110100 宣武区 110104 100054 5 中华人

地区列表

ID 国家 省份 省份编码 城市 城市编码 县区 县区编码 邮编1 中华人民共和国 北京市 110000 北京市市辖区 110100 东城区 110101 1000102 中华人民共和国 北京市 110000 北京市市辖区 110100 西城区 110102 1000323 中华人民共和国 北京市 110000 北京市市辖区 110100 崇文区 110103 1000614 中华人民共和国 北京市 110000 北京市市辖区 110100 宣武区 110104 1000545 中华人民共和国 

acdream 1716(贪心)

题意: Problem Description 在ACdream王国中,有一条母亲河,这条母亲河为王国人民提供了各种生活用水.在河边共住着n户人家,每户人家的位置为x[i].由于经济发展需要,ACdream决定在这条母亲河上建立一个水力发电站,经过勘测,这个水力发电站只可以建立在区间[a,b]的某一个地方x0.为了减少大家受到来此发电站的影响,希望min{|x[i]-x0| |0<=i<=n-1}最大,即使得距离发电站最近的人家与发电站的距离最大.若有多组答案,输出坐标较小的即可. Input

从“水下八关”的传说说起(人民邮电报专栏《乐游记》之17)

越不容易开启的隐藏关卡,越容易成为剧情的特殊分支,直接影响到游戏的结局,而这激发了玩家高亢的游戏热情,同时让游戏经久不衰. 文/张书乐 二周目.隐藏角色.隐藏关卡等等探宝式的游戏玩法,让游戏具有了更强的续航力.任何事物都有一个起源,而在我看来,这一切都源于与<魂斗罗>有关的"水下八关"传说,这个传说和中国游戏玩家关系很大. 在没有社交网络的时代,<魂斗罗>游戏非常流行.而在游戏第六关有一个bug(程序漏洞),会使敌兵的图形显示不正常,变成类似青蛙嘴的模样.在中国

Python3爬取今日头条有关《人民的名义》文章

Python3爬取今日头条有关<人民的名义>文章 最近一直在看Python的基础语法知识,五一假期手痒痒想练练,正好<人民的名义>刚结束,于是决定扒一下头条上面的人名的名义文章,试试技术同时可以集中看一下大家的脑洞也是极好的. 首先,我们先打开头条的网页版,在右上角搜索框输入关键词,通过chrome调试工具,我们定位到头条的search栏调用的的API为: http://www.toutiao.com/search_content/?offset=0&format=json

【机器学习实践五】机器学习眼中的《人民的名义》

一.背景 最近热播的反腐神剧"人民的名义"掀起来一波社会舆论的高潮,这部电视剧之所能得到广泛的关注,除了老戏骨们精湛的演技,整部剧出色的剧本也起到了关键的作用.笔者在平日追剧之余,也尝试通过机器学习算法对人民的名义的部分剧集文本内容进行了文本分析,希望从数据的角度得到一些输入. 本文使用阿里云机器学习PAI,主要针对以下几个方面进行了实验: 分词以及词频统计 每一章的关键词提取 每一章的文本摘要 每一章文本之间的相似度分析 实验流程以及数据可以在阿里云机器学习PAI的社区直接使用,只要

第十二届全国人民代表大会《政府工作报告》全文

第十二届全国人民代表大会<政府工作报告>全文 第十二届全国人民代表大会<政府工作报告>全文 温jia宝 2013年3月5日 温jia宝: 现在,我代表国务院,向大会报告过去五年的政府工作,并对今年工作提出建议,请各位代表审议,并请全国政协委员提出意见.[09:05] 过去五年工作回顾[09:06] 第十一届全国人民代表大会第一次会议以来的五年,是我国发展进程中极不平凡的五年.我们有效应对国际金融危机的严重冲击,保持经济平稳较快发展,国内生产总值从26.6万亿元增加到51.9万亿元,

中华人民共和国刑法

中华人民共和国刑法(2011年2月25日最新修正版刑法) [发布文号]中华人民共和国主席令第83号 [发布日期]1997-03-14 [生效日期]1997-10-01 目录 第一编总则 第一章刑法的任务.基本原则和适用范围 第二章犯罪 第一节犯罪和刑事责任 第二节犯罪的预备.未遂和中止 第三节共同犯罪 第四节单位犯罪 第三章刑罚 第一节刑罚的种类 第二节管制 第三节拘役 第四节有期徒刑.无期徒刑 第五节死刑 第六节罚金 第七节剥夺政治权利 第八节没收财产 第四章刑罚的具体运用 第一节量刑 第二节