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. LN : Eden Polymorphic And OOP Design Pattern Abstract Factory

    Appreciation to our TA, +7, who designed this task. Client.cpp #include <iostream> #include &l ...

  2. 安装MySQLdb出现HAVE_WCSCOLL重定义问题的解决方法

    root@wodeyitian MySQL-python-1.2.3]# python setup.py install running install running bdist_egg runni ...

  3. Java文件操作系列[3]——使用jacob操作word文档

    Java对word文档的操作需要通过第三方组件实现,例如jacob.iText.POI和java2word等.jacob组件的功能最强大,可以操作word,Excel等格式的文件.该组件调用的的是操作 ...

  4. HDU 3033 I love sneakers! 我爱运动鞋 (分组背包+01背包,变形)

    题意: 有n<=100双鞋子,分别属于一个牌子,共k<=10个牌子.现有m<=10000钱,问每个牌子至少挑1双,能获得的最大价值是多少? 思路: 分组背包的变形,变成了相反的,每组 ...

  5. 洛谷 P1996 约瑟夫问题

    题目背景 约瑟夫是一个无聊的人!!! 题目描述 n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,……依次类推,直到所有的人都出 ...

  6. powershell 版本问题

    Login-AzureRmAccount : 无法将“Login-AzureRmAccount”项识别为 cmdlet.函数.脚本文件或可运行程序的名称.请检查名称的拼写,如果包括路径,请确保路径正确 ...

  7. shiro : java.lang.IllegalArgumentException: Odd number of characters.

    shiro使用的时候: java.lang.IllegalArgumentException: Odd number of characters.    at org.apache.shiro.cod ...

  8. JavaWeb项目实现图片验证码

    一.什么是图片验证码? 可以参考下面这张图: 我们在一些网站注册的时候,经常需要填写以上图片的信息. 这种图片验证方式是我们最常见的形式,它可以有效的防范恶意攻击者采用恶意工具,调用“动态验证码短信获 ...

  9. 关于img

    为img添加属性max-width min-height之类的属性可以对图片溢出部分实行自动裁剪功能 非常方便!!!!!!!!!(仅适用于那些原始图片大于max-width,max-height的图片 ...

  10. 创建一个文件夹用于写入UTF-8编码的文件

    实现效果: 知识运用: File类的CreateText方法 StreamWriter类的WriteLine方法 实现代码: private void button2_Click(object sen ...