nyist 510昂贵的聘礼
2024-09-01 06:52:41
/*
好好的图论题啊,最短路的应用,dijkstra算法
*/
#include <iostream>
using namespace std;
const int INF=100000;
int a[105][105],b[105],c[105],s[105],dist[105];
int n,m;
int dj(int p,int q)
{
int i,j,r,t,k=0;
for(i=0;i<n;i++)
if((b[i]>=p&&b[i]<=q)) dist[i]=a[k][i], s[i]=0; else dist[i]=INF,s[i]=0;
dist[0]=0; s[0]=1;
for(i=1;i<n;i++)
{
t=INF;
for(j=0;j<n;j++)
if(!s[j]&&dist[j]<t) t=dist[j],k=j;
s[k]=1;
for(j=0;j<n;j++)
if(!s[j]&&a[k][j]<INF&&b[j]>=p&&b[j]<=q)
{
r=dist[k]+a[k][j];
if(dist[j]>r) dist[j]=r;
}
}
t=c[0];
for(i=0;i<n;i++)
if(dist[i]+c[i]<t) t=dist[i]+c[i];
return t;
}
int main(int argc, char *argv[])
{
int i,j,k,p,q,l,r;
while(cin>>m>>n&&(m||n))
{
for(i=0;i<n;i++)
for(j=0;j<n;j++)
a[i][j]=INF;
for(i=0;i<n;i++)
{ cin>>c[i]>>b[i]>>k;
for(j=0;j<k;j++)
{
cin>>p>>q;
a[i][p-1]=q;
}
}
r=c[0];
for(i=b[0]-m;i<=b[0];i++)
{
k=dj(i,i+m);
if(k<r) r=k;
}
cout<<r<<endl;
}
return 0;
}
最新文章
- POJ2104 K-th Number(主席树)
- java基础知识(一)数据类型(上)
- STM32串口
- jmx server 和jmx client
- Unity3D中自带事件函数的执行顺序(转)
- PHP declare(ticks=N); 的作用
- seajs之seajs-debug坑
- 论文笔记之:Decoupled Deep Neural Network for Semi-supervised Semantic Segmentation
- C++11初始化列表
- 暑假集训(3)第一弹 -----还是畅通工程(hdu1233)
- iOS-网络编程(一)HTTP协议
- SVG-1
- Docker 系列六(Docker Swarm 项目).
- 【原创】大数据基础之Airflow(2)生产环境部署airflow研究
- 升级 Apache Tomcat的办法
- 微信小程序 条件渲染 wx:if
- HTML和CSS总结
- 404错误处理以及以后缀为action结尾的处理
- PowerDesigner导入sql脚本生成物理模型
- [FQ]Tor + Chrome + PAC 尝试 FQ