博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 1922: [Sdoi2010]大陆争霸
阅读量:5927 次
发布时间:2019-06-19

本文共 1930 字,大约阅读时间需要 6 分钟。

1 #include
2 #include
3 #define M 7009 4 #define ll long long 5 #define inf 1000000000 6 using namespace std; 7 int cnt,n,m,head[M],next[10*M],u[10*M],v[10*M],sum[M]; 8 int sum1[M],head1[M],next1[10*M],u1[10*M],f[M],cnt1,fr[M]; 9 int d[M],d1[M];10 void jia(int a1,int a2,int a3)11 {12 cnt++;13 next[cnt]=head[a1];14 head[a1]=cnt;15 u[cnt]=a2;16 v[cnt]=a3;17 return;18 }19 void jia1(int a1,int a2)20 {21 cnt1++;22 next1[cnt1]=head1[a1];23 head1[a1]=cnt1;24 u1[cnt1]=a2;25 return;26 }27 int main()28 {29 scanf("%d%d",&n,&m);30 for(int i=1;i<=m;i++)31 {32 int a1,a2,a3;33 scanf("%d%d%d",&a1,&a2,&a3);34 jia(a1,a2,a3);35 }36 for(int i=1;i<=n;i++)37 {38 scanf("%d",&sum[i]);39 for(int j=1;j<=sum[i];j++)40 {41 int a1;42 scanf("%d",&a1);43 jia1(a1,i);44 }45 }46 for(int i=1;i<=n;i++)47 d[i]=inf;48 d[1]=0;49 for(int i=1;i<=n;i++)50 {51 int minn=inf,min1;52 for(int j=1;j<=n;j++)53 if(!f[j]&&sum1[j]==sum[j])54 {55 int a1=max(d[j],d1[j]);56 if(minn>a1)57 {58 minn=a1;59 min1=j;60 }61 }62 f[min1]=1;63 d[min1]=minn;64 if(f[n])65 break;66 for(int j=head[min1];j;j=next[j])67 if(d[u[j]]>minn+v[j])68 {69 d[u[j]]=minn+v[j];70 fr[u[j]]=min1;71 }72 for(int j=head1[min1];j;j=next1[j])73 {74 sum1[u1[j]]++;75 d1[u1[j]]=max(d1[u1[j]],minn);76 }77 }78 int b1=n;79 printf("%d\n",d[n]);80 return 0;81 }

跑DJ每次找最小值更新时,看保护他的是否全找完了。

转载于:https://www.cnblogs.com/xydddd/p/5290267.html

你可能感兴趣的文章
1.操作系统概述
查看>>
PHP自动查找指定文件夹下所有文件BOM和删除所有文件
查看>>
kernel shell bash简介
查看>>
Hyper-V数据文件丢失解决方案(有图有真相)
查看>>
宏在使用过程余函数的区别<1>
查看>>
代码格式
查看>>
linux--web服务器
查看>>
Windows导出所有计划任务方法
查看>>
php同个用户同时只能登陆一个, 后登陆者踢掉前登陆者
查看>>
仿豆丁百度文库网页版阅读器完整解决方案
查看>>
我的友情链接
查看>>
基于css3的鼠标滑动按钮动画之CSS--续
查看>>
我的友情链接
查看>>
解决Maven工程中报 Missing artifact jdk.tools:jdk.tools
查看>>
.net framework3.0_
查看>>
HTML accesskey 属性
查看>>
常见RGB格式
查看>>
wow power leveling 15646512
查看>>
cursor 的moveToFirst和moveToNext和moveToPrevious以及moveToLast
查看>>
3、AngularJS2 架构
查看>>