HDU 4849 —— Wow! Such City!(最短路)
来源:互联网 发布:淘宝春季女装新款 编辑:程序博客网 时间:2024/05/21 06:47
题目:Wow! Such City!
这个题目是给出几个递推式,根据题目的递推式先计算出Z数组。然后根据Z数组得出一个N个点的完全图的所有边的权值信息,然后求出从0号结点到其它点的最短路径Di,然后找到所有Di%M最小的值。
这个题好像没什么需要注意,按照公式一步步计算,然后用堆优化的迪杰斯特拉算法(大白书上有)计算最短路即可。
#include<cstdio>#include<cstring>#include<algorithm>#include<queue>using namespace std;typedef long long LL;const int N = 1000000;LL x[N], y[N], z[N], c[1000][1000];int n, m, ans;void init(){ for(int i=2; i<n*n; i++){ x[i] = (12345 + x[i-1] * 23456 + x[i-2] * 34567 + x[i-1] * x[i-2] * 45678) % 5837501; y[i] = (56789 + y[i-1] * 67890 + y[i-2] * 78901 + y[i-1] * y[i-2] * 89012) % 9860381; }}void make_map(){ for(int i=0; i<n; i++){ for(int j=0; j<n; j++){ c[i][j] = i==j? 0 : z[i*n+j]; } }}struct Node{ int id; LL d; Node(){} Node(int id, LL d):id(id),d(d){} bool operator < (const Node& tmp)const{ return d>tmp.d; }};bool done[1000];int dij(){ int ans = m; memset(done,0,sizeof(done)); priority_queue<Node> Q; done[0] = 1; for(int i=1; i<n; i++) Q.push(Node(i, c[0][i])); while(!Q.empty()){ Node p=Q.top(); Q.pop(); if(done[p.id]) continue; done[p.id] = 1; int tmp = p.d%m; ans = min(ans, tmp); for(int i=0; i<n; i++){ if(!done[i]){ Q.push(Node(i, p.d+c[p.id][i])); } } } return ans;}int main(){ while(~scanf("%d %d %I64d %I64d %I64d %I64d", &n, &m, x, x+1, y, y+1)){ init(); for(int i=0; i<n*n; i++){ z[i] = (x[i] * 90123 + y[i]) % 8475871 + 1; } make_map(); printf("%d\n", dij()); } return 0;}
0 0
- HDU 4849 —— Wow! Such City!(最短路)
- 【HDU】4849 Wow! Such City! 最短路
- HDU 4849 Wow! Such City! 最短路
- HDU-4849 Wow! Such City!,最短路!
- HDU 4849-Wow! Such City!(最短路)
- hdu 4849 Wow! Such City! (最短路spfa)
- hdu 4849 最短路 西安邀请赛 Wow! Such City!
- 模拟 + 最短路 之 hdu 4849 Wow! Such City!
- HDU 4849 Wow! Such City! (Dijkstra, 最短路)
- Wow! Such City!(最短路)
- HDU 4849 Wow! Such City!陕西邀请赛C(最短路)
- HDU 4849 2014西安邀请赛 C题 Wow! Such City! 最短路
- hdu4849 Wow! Such City!(最短路dijkstra)
- hdu 4849 Wow! Such City!
- HDU 4849 Wow! Such City!
- 2014西安全国邀请赛 1003 && HDU 4849 Wow! Such City! (单源最短路Djikstra算法)
- hdu 4850 Wow! Such City!(题意难读的最短路)
- hdu 4849 Wow! Such City!(dijstra)
- 文件操作(复制、删除、修改)
- 当只有一个APK的时候使用robotium进行自动化测试_测试Toast
- git使用流程(简单易懂)
- android获取所有应用信息,判断系统应用或第三方应用,监听应用安装和卸载
- VS2010拖动用户控件卡死解决办法
- HDU 4849 —— Wow! Such City!(最短路)
- 后缀数组 学习指南
- HDU 2767 Proving Equivalences(强连通 Tarjan+缩点)
- POJ3695-Rectangles
- sys.user$ 记录用户密码
- rtems驱动的组织
- Android开发 MeasureSpec介绍
- HDU 1157 Who's in the Middle
- android中ADT和SDK的关系