博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[USACO07NOV]Cow Relays
阅读量:7236 次
发布时间:2019-06-29

本文共 1515 字,大约阅读时间需要 5 分钟。

离散化+倍增优化Floyed

#include"cstdio"#include"cstring"#include"iostream"#include"algorithm"using namespace std;const int MAXN=205;const int MAXM=1005;int n,T,S,E,cnt,mx,mi=MAXM;int st[MAXM],s[MAXM];int x[MAXN],y[MAXN],ln[MAXN];struct Matrix{    int v[MAXN][MAXN];    int x,y;        void clear(){memset(v,0,sizeof(v));x=y=0;return;}    void Mmul(Matrix a,Matrix b)    {        memset(v,0x3f,sizeof(v));        x=a.x,y=b.y;        int c=a.y;        for(int k=1;k<=c;++k){            for(int i=1;i<=x;++i){                for(int j=1;j<=y;++j){                    v[i][j]=min(v[i][j],a.v[i][k]+b.v[k][j]);                }            }        }return;    }        Matrix Mpw(Matrix a,int b)    {        Matrix x=a;        while(b){            if(b&1) x.Mmul(x,a);            b>>=1;a.Mmul(a,a);        }return x;    }        void write()    {        for(int i=1;i<=x;++i){            for(int j=1;j<=y;++j){                printf("%d ",v[i][j]);            }puts("");        }puts("");        return;    }}F;int main(){    scanf("%d%d%d%d",&n,&T,&S,&E);    for(int i=1;i<=T;++i){        scanf("%d%d%d",&ln[i],&x[i],&y[i]);        st[x[i]]=st[y[i]]=1;        mi=min(mi,min(x[i],y[i]));        mx=max(mx,max(x[i],y[i]));    }for(int i=mi;i<=mx;++i) if(st[i]) s[i]=++s[0];    S=s[S],E=s[E];    memset(F.v,0x3f,sizeof(F.v));    F.x=F.y=s[0];    for(int i=1;i<=T;++i) F.v[s[x[i]]][s[y[i]]]=F.v[s[y[i]]][s[x[i]]]=ln[i];    F=F.Mpw(F,n-1);    printf("%d\n",F.v[S][E]);    return 0;}

转载于:https://www.cnblogs.com/AH2002/p/9997086.html

你可能感兴趣的文章
方法多种,选择随已定
查看>>
SharePoint中CAML使用的一些总结
查看>>
Bundle数据传输
查看>>
[Z]POJ 计算几何入门题目推荐[转PKKJ]
查看>>
【每日一摩斯】-Troubleshooting: High CPU Utilization (164768.1) - 系列5
查看>>
Vue.js:轻量高效的前端组件化方案
查看>>
给MySQL增加mysql-udf-http和mysql-udf-json自定义函数,让MySQL有调用http接口和查询直接回JSON的能力...
查看>>
hibernate 单元測试框架
查看>>
Android:关于声明文件中android:process属性说明
查看>>
elastic-job详解(五):自定义任务参数
查看>>
ubuntu设置分辨率
查看>>
Apache Kylin v3.0.0-alpha 正式发布
查看>>
区块链开发公司 区块链能否走上主义救援之路?
查看>>
机器会取代人类吗?
查看>>
实现Java热部署的几种解决方案
查看>>
Linux基础命令---mkswap
查看>>
LAMOST双星研究方面获进展
查看>>
数据结构探险之线性表篇(上):顺序表
查看>>
第三回 山有木兮木有枝,心说君兮君不知
查看>>
这么说吧,dubbo很简单,其实就是一个远程服务调用的框架
查看>>