求出所有,从2走到x所需的花费在对 t = 2*min(d1,2, d2,3) 模运算下,  所有剩余系的最短路即可(把一个点拆成 t 个点, 每个点代表一种剩余系), 知道了所有剩余系就可以凑出答案。

dis[ 2 ][ 0 ] 到 dis[ 2 ][ t - 1 ] 代表的即为对 t 取模的所有剩余系的最短路 。

假设任意路线走回 2 点的话费是 K0  , 那么必定存在一种 K0+ t 花费(在min(d1,2, d2,3) 来回跑一次)的方案, 那么就是用最短路解不等式了,有点线性规划的感觉。

/*hdu6071[最短路+同余优化] 2017多校4*/
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<LL, int> P;
int G[][];
int T, n, a, b, c, d;
LL cnt = ;
LL t, k, dis[][];
void init() {
memset(dis, 0x3f, sizeof(dis));
memset(G, , sizeof(G));
} priority_queue<P, vector<P>, greater<P> >pq;
void dij(int u) {
while (!pq.empty()) pq.pop();
pq.push(P(0LL, u));
while (!pq.empty()) {
LL w = pq.top().first;
int v = pq.top().second;
pq.pop();
if (w > dis[v][w % t]) continue;
for (int i = -; i < ; i += ) {
int nxtp = (((v + i) % ) == ? : (v + i) % );
LL nxtw = w + G[v][nxtp] ;
if (dis[nxtp][nxtw % t] > nxtw) {
dis[nxtp][nxtw % t] = nxtw;
//cnt++;
pq.push(P(nxtw, nxtp));
}
}
}
}
void solve() {
init();
LL ans = 0x3f3f3f3f3f3f3f3f;
scanf("%lld%d%d%d%d", &k, &a, &b, &c, &d);
G[][] = G[][] = a;
G[][] = G[][] = b;
G[][] = G[][] = c;
G[][] = G[][] = d;
t = * min(G[][], G[][]);
//printf("%.2f\n", (double)clock() / CLOCKS_PER_SEC );
dij();
//cout << cnt << endl,cnt=0;
//printf("%.2f\n", (double)clock() / CLOCKS_PER_SEC );
for (int i = ; i < t; i++) {
if (k <= dis[][i]) {
ans = min(dis[][i], ans);
}
else {
ans = min(ans, dis[][i] + ((k - dis[][i] + t - ) / t) * t);
}
}
printf("%lld\n", ans);
}
int main() {
scanf("%d", &T);
while (T--) solve();
return ;
}

hdu6071[最短路+解不等式] 2017多校4的更多相关文章

  1. 2017 多校5 hdu 6093 Rikka with Number

    2017 多校5 Rikka with Number(数学 + 数位dp) 题意: 统计\([L,R]\)内 有多少数字 满足在某个\(d(d>=2)\)进制下是\(d\)的全排列的 \(1 & ...

  2. 2017 多校5 Rikka with String

    2017 多校5 Rikka with String(ac自动机+dp) 题意: Yuta has \(n\) \(01\) strings \(s_i\), and he wants to know ...

  3. 2017 多校4 Wavel Sequence

    2017 多校4 Wavel Sequence 题意: Formally, he defines a sequence \(a_1,a_2,...,a_n\) as ''wavel'' if and ...

  4. 2017 多校4 Security Check

    2017 多校4 Security Check 题意: 有\(A_i\)和\(B_i\)两个长度为\(n\)的队列过安检,当\(|A_i-B_j|>K\)的时候, \(A_i和B_j\)是可以同 ...

  5. 2017 多校3 hdu 6061 RXD and functions

    2017 多校3 hdu 6061 RXD and functions(FFT) 题意: 给一个函数\(f(x)=\sum_{i=0}^{n}c_i \cdot x^{i}\) 求\(g(x) = f ...

  6. 2017 多校2 hdu 6053 TrickGCD

    2017 多校2 hdu 6053 TrickGCD 题目: You are given an array \(A\) , and Zhu wants to know there are how ma ...

  7. 2017 多校1 I Curse Myself

    2017 多校2 I Curse Myself(第k小生成树) 题目: 给一张带权无向连通图,该图的任意一条边最多只会经过一个简单环,定义\(V(k)为第k小生成树的权值和\),求出\(\sum_{k ...

  8. hdu6136[模拟+优先队列] 2017多校8

    有点麻烦.. /*hdu6136[模拟+优先队列] 2017多校8*/ #include <bits/stdc++.h> using namespace std; typedef long ...

  9. hdu6134[莫比乌斯反演] 2017多校8

    /*hdu6134[莫比乌斯反演] 2017多校8*/ #include <bits/stdc++.h> using namespace std; typedef long long LL ...

随机推荐

  1. jquery中ajax请求后台数据成功后既不执行success也不执行error解决方法

    jquery中ajax请求后台数据成功后既不执行success也不执行error,此外系统报错:Uncaught SyntaxError: Unexpected identifier at Objec ...

  2. LR中下载文件的脚本

    #include "web_api.h" Action(){ int iflen; //文件大小 long lfbody; //响应数据内容大小 web_url("xxx ...

  3. JAVA的程序基本结构和数据类型

    //源程序 Hello.java public class Hello { static String str ="Hello World"; public static void ...

  4. Caused by: java.lang.ClassNotFoundException: org.springframework.boot.system.JavaVersion

    Caused by: java.lang.ClassNotFoundException: org.springframework.boot.system.JavaVersion Invalid pro ...

  5. Linux OpenGL 实践篇-13-geometryshader

    几何着色器 几何着色器是位于图元装配和片元着色器之前的一个着色器阶段,是一个可选阶段.它的输入是一个图元的完整的顶点信息,通常来自于顶点着色器,但如果细分计算着色器启用的话,那输入则是细分计算着色器的 ...

  6. codeforces Gym 100338H High Speed Trains (递推,高精度)

    递推就好了,用二项式定理算出所有连边的方案数,减去不合法的方案, 每次选出一个孤立点,那么对应方案数就是上次的答案. 枚举选几个孤立点和选哪些,选到n-1个点的时候相当于都不选,只减1. 要用到高精度 ...

  7. feature map计算大小公式

    http://blog.csdn.net/cheese_pop/article/details/51955915 将整个分成两部分,左边部分,右边部分.右边部分每次其实都是移动stride这么大,左边 ...

  8. python基础面试题整理---从零开始 每天十题(01)

    最近在弄flask的东西,好久没写博客的,感觉少了点什么,感觉被别人落下好多,可能渐渐的养成了写博客的习惯吧.也是自己想学的东西太多了(说白了就是基础太差了,只是know how,不能做到konw w ...

  9. win7旗舰版下配置IIS服务器

    选择上述的插件后,Windows 需要更新一段时间,并重启电脑 测试是否安装成功:http://localhost       注意:默认端口号是 80,不能和tomcat 的 80 端口同时重启 常 ...

  10. Bootstrap历练实例:超小的按钮

    <!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content=& ...