首页 > 最短路
头像 奶茶七分糖
发表于 2021-06-05 00:56:01
首先可以发现,如果有a,b,c三个点,且a向b和c连边,b向c连边,那么此时a直接走到c一定比以b作为中间结点更优 开始将维护数组v[i],v[i]里面存了所有二进制第i位为1的数的编号那么可以构造一个DAG,比如刚开始的时候枚举a[1]的所有的1位,然后直接把v[i]里面的所有点的最短路更新为1到 展开全文
头像 熠丶
发表于 2021-06-05 21:39:47
做法: 把二进制中的每一位看作是一个点,改位为1就建立长度为的边跑dij即可 代码 // Problem: 最短路 // Contest: NowCoder // URL: https://ac.nowcoder.com/acm/contest/11233/D // Memory Limit: 52 展开全文