试题编号: 201712-4
试题名称: 行车路线
时间限制: 1.0s
内存限制: 256.0MB
问题描述:

问题描述

  小明和小芳出去乡村玩,小明负责开车,小芳来导航。
  小芳将可能的道路分为大道和小道。大道比较好走,每走1公里小明会增加1的疲劳度。小道不好走,如果连续走小道,小明的疲劳值会快速增加,连续走s公里小明会增加s2的疲劳度。
  例如:有5个路口,1号路口到2号路口为小道,2号路口到3号路口为小道,3号路口到4号路口为大道,4号路口到5号路口为小道,相邻路口之间的距离都是2公里。如果小明从1号路口到5号路口,则总疲劳值为(2+2)2+2+22=16+2+4=22。
  现在小芳拿到了地图,请帮助她规划一个开车的路线,使得按这个路线开车小明的疲劳度最小。

输入格式

  输入的第一行包含两个整数nm,分别表示路口的数量和道路的数量。路口由1至n编号,小明需要开车从1号路口到n号路口。
  接下来m行描述道路,每行包含四个整数tabc,表示一条类型为t,连接ab两个路口,长度为c公里的双向道路。其中t为0表示大道,t为1表示小道。保证1号路口和n号路口是连通的。

输出格式

  输出一个整数,表示最优路线下小明的疲劳度。

样例输入

6 7
1 1 2 3
1 2 3 2
0 1 3 30
0 3 4 20
0 4 5 30
1 3 5 6
1 5 6 1

样例输出

76

样例说明

  从1走小道到2,再走小道到3,疲劳度为52=25;然后从3走大道经过4到达5,疲劳度为20+30=50;最后从5走小道到6,疲劳度为1。总共为76。

数据规模和约定

  对于30%的评测用例,1 ≤ n ≤ 8,1 ≤ m ≤ 10;
  对于另外20%的评测用例,不存在小道;
  对于另外20%的评测用例,所有的小道不相交;
  对于所有评测用例,1 ≤ n ≤ 500,1 ≤ m ≤ 105,1 ≤ ab ≤ nt是0或1,c ≤ 105。保证答案不超过106。


#include<bits/stdc++.h>
using namespace std;
const int INF=0x3fffffff;
const int maxv=505;
typedef long long ll;
struct Node{ll type,len,to;
};
vector<vector<Node>> adj(maxv);
ll d[maxv];
ll vis[maxv];
ll smallRoad[maxv];
ll n,m;
void Dijkstra(){fill(d,d+maxv,INF);fill(vis,vis+maxv,0);fill(smallRoad,smallRoad+maxv,0);d[1]=0;for(ll i=0;i<n;++i){  ll u=-1,MIN=INF;for(ll v=1;v<=n;v++){if(vis[v]==0&&d[v]<MIN){u=v;MIN=d[v];}}if(u==-1) break;vis[u]=1;for(ll j=0;j<adj[u].size();j++){//ll v=adj[u][j].to;if(adj[u][j].type==0){//大路 if(d[adj[u][j].to]>d[u]+adj[u][j].len){d[adj[u][j].to]=d[u]+adj[u][j].len;smallRoad[adj[u][j].to]=0;}}else{//小路 ll tmp;//ll v=adj[u][j].to;if(smallRoad[u]==0){tmp=adj[u][j].len*adj[u][j].len;if(d[adj[u][j].to]>d[u]+tmp){d[adj[u][j].to]=d[u]+tmp;smallRoad[adj[u][j].to]=adj[u][j].len;}}else{tmp=(smallRoad[u]+adj[u][j].len)*(smallRoad[u]+adj[u][j].len);tmp-=smallRoad[u]*smallRoad[u];//下方的d[u]需先减去 if(d[adj[u][j].to]>d[u]+tmp){d[adj[u][j].to]=d[u]+tmp;smallRoad[adj[u][j].to]=smallRoad[u]+adj[u][j].len;}}}}}
}
int main(){cin>>n>>m;ll t,x,y,z;Node tmp;for(ll i=1;i<=m;++i){cin>>t>>x>>y>>z;tmp.type=t; tmp.to=y; tmp.len=z;adj[x].push_back(tmp);tmp.to=x;adj[y].push_back(tmp);}Dijkstra();cout<<d[n];return 0;
}

CCF:201712-4 行车路线相关推荐

  1. CCF认证 201712-4 行车路线(100分)

    CCF认证 201712-4 行车路线 思路:好难啊,去学习大佬的解法了,结果吭吭哧哧的还出现很多不bug.首先用的是是spfa的算法.但是由于处理小路的时候用来floyd,所以这个时间复杂度也不小, ...

  2. CCF考试——201712-4行车路线

    概要 问题描述 小明和小芳出去乡村玩,小明负责开车,小芳来导航. 小芳将可能的道路分为大道和小道.大道比较好走,每走1公里小明会增加1的疲劳度.小道不好走,如果连续走小道,小明的疲劳值会快速增加,连续 ...

  3. ccf认证 201712-4行车路线(100分)

    题目: 问题描述 小明和小芳出去乡村玩,小明负责开车,小芳来导航. 小芳将可能的道路分为大道和小道.大道比较好走,每走1公里小明会增加1的疲劳度.小道不好走,如果连续走小道,小明的疲劳值会快速增加,连 ...

  4. 【CCF 201712-4】行车路线(Dijkstra 80分)

    忽略一个条件:可能具有连续的小路,跑一边裸的迪杰斯特拉算法,即可拿到80分 注意:边权可能会爆int,采用long long才可以 #include <iostream> #include ...

  5. CCF CSP 行车路线 java 201712_4

    CCF CSP 行车路线 java 201712_4 问题描述 小明和小芳出去乡村玩,小明负责开车,小芳来导航. 小芳将可能的道路分为大道和小道.大道比较好走,每走1公里小明会增加1的疲劳度.小道不好 ...

  6. CCF 行车路线 100分

    试题编号: 201712-4 试题名称: 行车路线 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 小明和小芳出去乡村玩,小明负责开车,小芳来导航. 小芳将可能的道路分为大道和 ...

  7. CSP第十二次认证 行车路线 拆点

    这道题的关键是如何解决连续小路的情况,因为题目保证答案不超过1e6,说明小路的连续长度不超过1000,给了我们提示,可以将点拆分为两个属性,一个是点的序号,另一个则是最后一段连续小路的长度,所以我们的 ...

  8. CCF201712-4 行车路线(最短路)

    试题编号: 201712-4 试题名称: 行车路线 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 小明和小芳出去乡村玩,小明负责开车,小芳来导航. 小芳将可能的道路分为大道和 ...

  9. 如何在Apple Watch上获取行车路线

    Kevin Parrish 凯文·帕里什 Gone are the days of using paper maps to navigate unknown roads and cities. Now ...

最新文章

  1. Ubuntu 13.04 安装 OpenCV 及试用
  2. struts2之配置文件struts.xml详解
  3. android 添加安装权限白名单
  4. Openstack云计算项目实施 其一(安装环境)
  5. 抓包及分析包的常用命令
  6. MySQL和Oracle的添加字段的处理差别
  7. Android系统(96)---Android 数据交换解析框架Gson使用详解
  8. [译]GLUT教程 - 笔划字体
  9. 云原生带来的云安全机遇
  10. 3D LUT Creator Pro for Mac(专业调色软件)中文版
  11. Github上开源的数据可视化工具及作品分享(一)
  12. VM虚拟机安装win7系统(亲测可用!!!)
  13. 大数据可视化之MyBatis笔记(1)
  14. smartSVN 新建仓库
  15. win10无线网不能连接到服务器,win10无线网为什么连不上?win10连不上无线网络的修复方法...
  16. bzoj 3755: Pty爬山
  17. 义乌一院校专门培养“网络小贩”90后年入百万
  18. HashMap的工作原理(一):Hash算法
  19. Andorid去掉音量后面多余的图标
  20. 自学C/C++如何入门

热门文章

  1. 产品随记-无埋点数据采集
  2. 【Django】开发日报_11_Day:手机号码管理系统-Ajax请求完善
  3. 查看服务器总的物理内存
  4. 高等数学笔记-乐经良老师-第八章-多元函数微分学(Ⅱ)
  5. panada indexing,selection,assigning
  6. sqlserver如何删库跑路
  7. 一次线上事故,我顿悟了异步的精髓
  8. [源码解析] NVIDIA HugeCTR,GPU版本参数服务器--- (5) 嵌入式hash表
  9. QQ2005 SP5貌似不错
  10. 【20保研】西安电子科技大学计科院关于举办2020年“优研计划”暑期夏令营的通知...