Wow! Such City!

   题意:题面很难理解,幸亏给出了提示,敲了一发板子过了。给出x数组y数组和z数组的求法,并给出x、y的前几项,然后直接利用所给条件构造出z数组再构造出C数组即可,Cij表示i点到j点的路长,然后再跑个dij就可以求出0点到其他点的最短路,然后将这些最短路对M取余求所有取余值的最小值。需要注意的是Cij=Z(i*n+j),也就是X、Y、Z数组都要开到(n-1)*n+n。理解了其实也就是水题了,题意这样东扯西扯真是迷。。
const int N=1e6+1000;
ll w[1001][1001],d[1001];
ll z[N],x[N],y[N];
int v[N],vis[N];
int n,m;
void init()
{
int fuck=(n-1)*n+n;
for(int i=2; i<fuck; 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;
}
for(int i=0;i<fuck;i++) z[i]=(x[i]*90123+y[i])%8475871+1;
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
w[i][j]=i==j?0:z[i*n+j];
// for(int i=0; i<fuck ; i++)
// printf("%8d",i);
// puts("");
// for(int i=0; i<fuck ; i++)
// printf("%8I64d",x[i]);
// puts("");
// for(int i=0; i<fuck ; i++)
// printf("%8I64d",y[i]);
// puts("");
// for(int i=0; i<fuck ; i++)
// printf("%8I64d",z[i]);
// puts("\n");
// for(int i=0; i<n; i++)
// {
// for(int j=0; j<n; j++)
// printf("%8I64d",w[i][j]);
// puts("");
// }
// puts("");
}
void dij()
{
memset(v,0,sizeof(v));
memset(vis,0,sizeof(vis));
int ans=INF;
for(int i=0; i<n; i++) d[i]=i==0?0:INF;
for(int i=0; i<n; i++)
{
int x,mm=INF;
for(int j=0; j<n; j++)
if(!vis[j]&&mm>=d[j])
mm=d[x=j];
vis[x]=1;
for(int j=0; j<n; j++)
d[j]=min(d[j],d[x]+w[x][j]);
}
// puts("");
// for(int i=1; i<n; i++)
// {
// printf("%8I64d",d[i]);
// int tmp=d[i]%m;
// v[tmp]++;
// }
// puts("");
for(int i=1; i<n; i++)
{
int tmp=d[i]%m;
ans=min(ans,tmp);
}
printf("%d\n",ans);
}
int main()
{
while(~scanf("%d%d%I64d%I64d%I64d%I64d",&n,&m,&x[0],&x[1],&y[0],&y[1]))
{
init();//生成Z数组,W数组
dij();
}
return 0;
}

HDU-4849 Wow! Such City!,最短路!的更多相关文章

  1. HDU 4849 Wow! Such City!陕西邀请赛C(最短路)

    HDU 4849 Wow! Such City! 题目链接 题意:依照题目中的公式构造出临接矩阵后.求出1到2 - n最短路%M的最小值 思路:就依据题目中方法构造矩阵,然后写一个dijkstra,利 ...

  2. HDU 4849 - Wow! Such City!

    Time Limit: 15000/8000 MS (Java/Others) Memory Limit: 102400/102400 K (Java/Others)   Input There ar ...

  3. hdu4849 Wow! Such City!(最短路dijkstra)

    转载请注明出处:http://blog.csdn.net/u012860063? viewmode=contents 题目链接:pid=4849">http://acm.hdu.edu ...

  4. hdu 4850 Wow! Such String! 欧拉回路

    作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4080264.html 题目链接:hdu 4850 Wow! Such String! 欧拉回 ...

  5. hdu 4893 Wow! Such Sequence!(线段树)

    题目链接:hdu 4983 Wow! Such Sequence! 题目大意:就是三种操作 1 k d, 改动k的为值添加d 2 l r, 查询l到r的区间和 3 l r. 间l到r区间上的所以数变成 ...

  6. Hdu 5352 MZL's City (多重匹配)

    题目链接: Hdu 5352 MZL's City 题目描述: 有n各节点,m个操作.刚开始的时候节点都是相互独立的,一共有三种操作: 1:把所有和x在一个连通块内的未重建过的点全部重建. 2:建立一 ...

  7. HDU 4850 Wow! Such String!(欧拉道路)

    HDU 4850 Wow! Such String! 题目链接 题意:求50W内的字符串.要求长度大于等于4的子串,仅仅出现一次 思路:须要推理.考虑4个字母的字符串,一共同拥有26^4种,这些由这些 ...

  8. hdu 4849 最短路 西安邀请赛 Wow! Such City!

    http://acm.hdu.edu.cn/showproblem.php?pid=4849 会有非常多奇怪的Wa的题.当初在西安就不知道为什么wa,昨晚做了,由于一些Sb错误也wa了非常久.这会儿怎 ...

  9. HDU-4849 Wow! Such City! (单源最短路)

    Problem Description Doge, tired of being a popular image on internet, is considering moving to anoth ...

随机推荐

  1. Emacs Org-mode中英文字体设置

    Emacs Org-mode中英文字体设置 Table of Contents 1. 缺省字体存在的问题 2. 解决方法 2.1. 环境说明 2.2. 思路和方法 2.3. emacs设置代码 2.4 ...

  2. QT如何设置应用程序的图标

    QT如何设置应用程序的图标 准备:.ico格式的图片,可以选择任意其他图片格式的一张图片用格式工厂转换成.ico图片     例如选用的图片是Application.ico 把图片放到工程目录下 在工 ...

  3. URAL 1519 Formula 1 (插头DP,常规)

    题意:给一个n*m的矩阵,格子中是'*'则是障碍格子,不允许进入,其他格子都是必走的格子,所走格子形成一条哈密顿回路,问有多少种走法? 思路: 本来是很基础的题,顿时不知道进入了哪个坑.这篇插头DP的 ...

  4. 洛谷 P2947 [USACO09MAR]仰望Look Up

    题目描述 Farmer John's N (1 <= N <= 100,000) cows, conveniently numbered 1..N, are once again stan ...

  5. 怎样配置JDK开发环境

    (1)我们需要配置三个环境变量,分别是JAVA_HOME,CLASSPATH,Path (2)变量名输入:JAVA_HOME,变量值输入:D:\Java\jdk1.8.0_05点击确定. 需要特别注意 ...

  6. Mac终端给命令设置别名alias的办法

    在Mac里使用curl https://www.google.com,运行后得不到期望看到的google首页的HTML source code. vi ~/.bashrc, 输入下面两行内容. 以后每 ...

  7. SQL——SQL语言全部关键字详解

    http://blog.csdn.net/quinnnorris/article/details/71056445 数据库中我们做常用的就是SQL基本查询语言,甚至有些人认为数据库就是SQL,SQL就 ...

  8. "Mac OS X"录屏幕视频并转成gif

    第一步: 使用软件QuickTime Player录屏幕视频,创建方式选择新建屏幕录制: 选择区域录制,录好保存后,就需要转gif,需要另外一个软件. 第二步: 使用GIFBrewery软件创建gif ...

  9. Robotium实践之路源码创建测试项目

    1.JDK安装及环境配置 2.Eclipse安装 3.ADT插件安装 4.模拟器安装 5.准备源码 6.引进源码置项目中 .文件 .导入 .选择现有项目置工作空间中 .浏览 .选择项目,选择模拟器版本 ...

  10. EOF与feof

    在C语言中,或更精确地说成C标准函数库中表示文件结束符(end of file).在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件.在文本文件中,数据都是 ...