CCF:201712-4 行车路线
试题编号: | 201712-4 |
试题名称: | 行车路线 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: |
问题描述 小明和小芳出去乡村玩,小明负责开车,小芳来导航。 输入格式 输入的第一行包含两个整数n, m,分别表示路口的数量和道路的数量。路口由1至n编号,小明需要开车从1号路口到n号路口。 输出格式 输出一个整数,表示最优路线下小明的疲劳度。 样例输入 6 7 样例输出 76 样例说明 从1走小道到2,再走小道到3,疲劳度为52=25;然后从3走大道经过4到达5,疲劳度为20+30=50;最后从5走小道到6,疲劳度为1。总共为76。 数据规模和约定 对于30%的评测用例,1 ≤ n ≤ 8,1 ≤ m ≤ 10; |
#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 行车路线相关推荐
- CCF认证 201712-4 行车路线(100分)
CCF认证 201712-4 行车路线 思路:好难啊,去学习大佬的解法了,结果吭吭哧哧的还出现很多不bug.首先用的是是spfa的算法.但是由于处理小路的时候用来floyd,所以这个时间复杂度也不小, ...
- CCF考试——201712-4行车路线
概要 问题描述 小明和小芳出去乡村玩,小明负责开车,小芳来导航. 小芳将可能的道路分为大道和小道.大道比较好走,每走1公里小明会增加1的疲劳度.小道不好走,如果连续走小道,小明的疲劳值会快速增加,连续 ...
- ccf认证 201712-4行车路线(100分)
题目: 问题描述 小明和小芳出去乡村玩,小明负责开车,小芳来导航. 小芳将可能的道路分为大道和小道.大道比较好走,每走1公里小明会增加1的疲劳度.小道不好走,如果连续走小道,小明的疲劳值会快速增加,连 ...
- 【CCF 201712-4】行车路线(Dijkstra 80分)
忽略一个条件:可能具有连续的小路,跑一边裸的迪杰斯特拉算法,即可拿到80分 注意:边权可能会爆int,采用long long才可以 #include <iostream> #include ...
- CCF CSP 行车路线 java 201712_4
CCF CSP 行车路线 java 201712_4 问题描述 小明和小芳出去乡村玩,小明负责开车,小芳来导航. 小芳将可能的道路分为大道和小道.大道比较好走,每走1公里小明会增加1的疲劳度.小道不好 ...
- CCF 行车路线 100分
试题编号: 201712-4 试题名称: 行车路线 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 小明和小芳出去乡村玩,小明负责开车,小芳来导航. 小芳将可能的道路分为大道和 ...
- CSP第十二次认证 行车路线 拆点
这道题的关键是如何解决连续小路的情况,因为题目保证答案不超过1e6,说明小路的连续长度不超过1000,给了我们提示,可以将点拆分为两个属性,一个是点的序号,另一个则是最后一段连续小路的长度,所以我们的 ...
- CCF201712-4 行车路线(最短路)
试题编号: 201712-4 试题名称: 行车路线 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 小明和小芳出去乡村玩,小明负责开车,小芳来导航. 小芳将可能的道路分为大道和 ...
- 如何在Apple Watch上获取行车路线
Kevin Parrish 凯文·帕里什 Gone are the days of using paper maps to navigate unknown roads and cities. Now ...
最新文章
- Ubuntu 13.04 安装 OpenCV 及试用
- struts2之配置文件struts.xml详解
- android 添加安装权限白名单
- Openstack云计算项目实施 其一(安装环境)
- 抓包及分析包的常用命令
- MySQL和Oracle的添加字段的处理差别
- Android系统(96)---Android 数据交换解析框架Gson使用详解
- [译]GLUT教程 - 笔划字体
- 云原生带来的云安全机遇
- 3D LUT Creator Pro for Mac(专业调色软件)中文版
- Github上开源的数据可视化工具及作品分享(一)
- VM虚拟机安装win7系统(亲测可用!!!)
- 大数据可视化之MyBatis笔记(1)
- smartSVN 新建仓库
- win10无线网不能连接到服务器,win10无线网为什么连不上?win10连不上无线网络的修复方法...
- bzoj 3755: Pty爬山
- 义乌一院校专门培养“网络小贩”90后年入百万
- HashMap的工作原理(一):Hash算法
- Andorid去掉音量后面多余的图标
- 自学C/C++如何入门
热门文章
- 产品随记-无埋点数据采集
- 【Django】开发日报_11_Day:手机号码管理系统-Ajax请求完善
- 查看服务器总的物理内存
- 高等数学笔记-乐经良老师-第八章-多元函数微分学(Ⅱ)
- panada indexing,selection,assigning
- sqlserver如何删库跑路
- 一次线上事故,我顿悟了异步的精髓
- [源码解析] NVIDIA HugeCTR,GPU版本参数服务器--- (5) 嵌入式hash表
- QQ2005 SP5貌似不错
- 【20保研】西安电子科技大学计科院关于举办2020年“优研计划”暑期夏令营的通知...