JZYZOJ1355 [usaco2007]奶牛赛跑 矩阵乘法 离散化
http://172.20.6.3/Problem_Show.asp?id=1355
写的时候本来想离散化,“1000^2的数组放一两个到函数里而已嘛,指定承受得住”,然后没离散化,然后就爆栈了,第一次知道直接爆栈是不报错的,只会运行之后return value 3221225477,学习了orz。
然后重写了一份离散化的……其实我觉得不离散化,数组就在外面声明也未尝不可啊,n<1000,n^3*logn,大概,不会超时吧(宛如那戏台上的老将军,背上插满了flag)。
代码
![JZYZOJ1355 [usaco2007]奶牛赛跑 矩阵乘法 离散化 JZYZOJ1355 [usaco2007]奶牛赛跑 矩阵乘法 离散化](https://cdn.ancii.com/article/image/v1/1G/LD/CS/SCLGD1Iy3rltc8KrwQDmVp5QdVCzY-u9Nfh7VDo68t5sHRVxlVwRpT6MD6az40YPgnK4iTgy63RsDYJmOC-0bptUQnspibMrlJ7VH0P5-JU.gif)
![JZYZOJ1355 [usaco2007]奶牛赛跑 矩阵乘法 离散化 JZYZOJ1355 [usaco2007]奶牛赛跑 矩阵乘法 离散化](https://cdn.ancii.com/article/image/v1/1G/LD/CS/SCLGD1Iy3rltc8KrwQDmVp5QdVCzY-u9Nfh7VDo68t4fGSaiA2-ALxl8fJsgPVCz75jcQpuB-sgxLN2SziFkqKfQvT9CHv8fk2DbvRrqtR4.gif)
1 #include<iostream>
2 #include<cstdio>
3 #include<cstring>
4 #include<algorithm>
5 #include<cmath>
6 using namespace std;
7 const int maxn=210;
8 int n,m,s,t,siz;
9 struct nod{int x,y,v;}aa[maxn];
10 struct mat{
11 int e[maxn][maxn];
12 mat(){memset(e,63,sizeof(e));}
13 };mat a;
14 int bb[maxn]={};
15 mat mul(mat x,mat y){
16 mat z;
17 for(int i=1;i<=siz;i++){
18 for(int j=1;j<=siz;j++){
19 for(int k=1;k<=siz;k++){
20 z.e[i][j]=min(z.e[i][j],x.e[i][k]+y.e[k][j]);
21 }
22 }
23 }return z;
24 }
25 mat pow(mat x,int k){
26 mat z;
27 for(int i=1;i<=siz;i++){
28 z.e[i][i]=0;
29 }
30 while(k){
31 if(k&1)z=mul(z,x);
32 x=mul(x,x);
33 k/=2;
34 }
35 return z;
36 }
37 int main(){
38 scanf("%d%d%d%d",&n,&m,&s,&t);
39 for(int i=1;i<=m;i++){
40 scanf("%d%d%d",&aa[i].v,&aa[i].x,&aa[i].y);
41 bb[2*i-1]=aa[i].x;bb[2*i]=aa[i].y;
42 }sort(bb+1,bb+1+m*2);
43 siz=unique(bb+1,bb+1+m*2)-bb-1;
44 s=lower_bound(bb+1,bb+1+siz,s)-bb;
45 t=lower_bound(bb+1,bb+1+siz,t)-bb;
46 for(int i=1;i<=m;i++){
47 aa[i].x=lower_bound(bb+1,bb+1+siz,aa[i].x)-bb;
48 aa[i].y=lower_bound(bb+1,bb+1+siz,aa[i].y)-bb;
49 a.e[aa[i].x][aa[i].y]=aa[i].v;
50 a.e[aa[i].y][aa[i].x]=aa[i].v;
51 }
52 mat z=pow(a,n);
53 printf("%d\n",z.e[s][t]);
54 return 0;
55 }View Code 相关推荐
zhoujiyu 2020-06-28
xiaoxue 2020-05-02
seasongirl 2020-02-02
jling 2020-01-29
wklken的笔记 2020-01-11
kuoying 2019-12-20
坚持是一种品质 2019-11-08
wanff0 2019-10-29
liusarazhang 2019-10-21
youmianzhou 2019-05-24
Datawhale 2019-05-18
mieleizhi0 2019-03-26
algorithmlixuan 2014-07-22
pengkunstone 2019-06-30
amazingbo 2019-06-28
Ryuchong 2019-06-27
郭岚 2019-06-27
HappinessSourceL 2019-06-25
perseverancep 2011-11-28