当前位置:网站首页>Pat grade a 1018 public bike management
Pat grade a 1018 public bike management
2022-06-27 02:52:00 【IX. non random address】
Dijietesla mode , Number of sites to be added additionally , Statistical array of the total number of vehicles passing through the station
#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
#include<map>
#include<set>
#include<bits/stdc++.h>
using namespace std;
int main(){
int C, N, Sp, M, i, j, a, b , c, d, e, cap, minnum;
cin>>C>>N>>Sp>>M;
cap = C/2;
int nowbikes[N + 1] = {0};
int waypath[N+1][N+1];
memset((void *)waypath, 9999999, sizeof(int) * (N+1) * (N+1));
for(i = 0; i < N; i++) cin>>nowbikes[i + 1];
for(i = 0; i < M; i++){
cin>>a>>b>>c;
waypath[b][a] = waypath[a][b] = c;
}
int mindis[N + 1] = {9999999};
memset((void *)mindis, 9999999, sizeof(int) * (N + 1));
int sumbike[N + 1];
int visited[N + 1] = {0};
int points[N + 1];
mindis[0] = 0;
sumbike[0] = 0;
points[0] = 0;
int vec[N + 1] = {0};
for(i = 0; i < N + 1; i++){
minnum = 9999999;
for( j = i; j < N + 1; j++){
if(mindis[j] < minnum && visited[j]==0){
minnum = mindis[j];
d = j;
}
}
visited[d] = 1;
for( j = 0; j < N + 1; j++){
if((minnum + waypath[d][j]) < mindis[j] && visited[j]==0){
mindis[j] = minnum + waypath[d][j];
vec[j] = d;
points[j] = points[d] + 1;
sumbike[j] = sumbike[d] + nowbikes[j];
}else if((minnum + waypath[d][j]) == mindis[j] && visited[j]==0){
a = (points[d] + 1) * cap;
if(a < (sumbike[d] + nowbikes[j])){
if((sumbike[d] + nowbikes[j]) < sumbike[j]){
sumbike[j] = sumbike[d] + nowbikes[j];
mindis[j] = minnum + waypath[d][j];
vec[j] = d;
points[j] = points[d] + 1;
}
}else if(a > (sumbike[d] + nowbikes[j])){
if((sumbike[d] + nowbikes[j]) > sumbike[j]){
sumbike[j] = sumbike[d] + nowbikes[j];
mindis[j] = minnum + waypath[d][j];
vec[j] = d;
points[j] = points[d] + 1;
}
}else{
sumbike[j] = sumbike[d] + nowbikes[j];
mindis[j] = minnum + waypath[d][j];
vec[j] = d;
points[j] = points[d] + 1;
}
}
}
}
a = vec[Sp];
vector<int> vr{Sp};
vr.push_back(a);
while(a!=0){
a = vec[a];
vr.push_back(a);
}
reverse(vr.begin(), vr.end());
a = sumbike[Sp];
b = points[Sp] * cap;
if(a>=b) cout<<0<<" ";
else cout<<(b-a)<<" ";
for(i = 0; i < vr.size(); i++){
cout<<vr[i];
if(i!=(vr.size() - 1)) cout<<"->";
}
if(a>=b) cout<<" "<<(a-b);
else cout<<" "<<0;
return 0;
}边栏推荐
- Docker deploy redis cluster
- Flink learning 2: application scenarios
- DAMA、DCMM等数据管理框架各个能力域的划分是否合理?有内在逻辑吗?
- Getting started with bluecms code auditing
- Microsoft365开发人员申请
- 2022年氯碱电解工艺试题及答案
- QIngScan使用
- Mmdetection valueerror: need at least one array to concatenate solution
- Learn Tai Chi Maker - mqtt (VI) esp8266 releases mqtt message
- Lodash get JS code implementation
猜你喜欢
![455. distribute biscuits [distribution questions]](/img/51/c7544d0eaa121cd461ffa678079473.jpg)
455. distribute biscuits [distribution questions]

参数估计——《概率论及其数理统计》第七章学习报告(点估计)

Qingscan use

Brief introduction of 228 dropout methods of pytorch and fast implementation of dropblock with 4 lines of code based on dropout

Dameng database installation

DAMA、DCMM等数据管理框架各个能力域的划分是否合理?有内在逻辑吗?

发现一款 JSON 可视化工具神器,太爱了!

Constraintlayout Development Guide

1、项目准备与新建

C language -- Design of employee information management system
随机推荐
lodash get js代码实现
ConstraintLayout(约束布局)开发指南
Flink学习3:数据处理模式(流批处理)
Leetcode 785: judgment bipartite graph
TP5 spreadsheet excel table export
Logarithm
Regular expressions: Syntax
"All majors are persuading them to quit." is it actually the most friendly to college students?
YaLM 100B:来自俄罗斯Yandex的1000亿参数开源大模型,允许商业用途
P5.js death planet
1、项目准备与新建
Flink学习4:flink技术栈
PAT甲级 1020 Tree Traversals
h5液体动画js特效代码
I earned 3W yuan a month from my sideline: the industry you despise really makes money!
平均风向风速计算(单位矢量法)
对数器
执念斩长河暑期规划
pytorch_grad_cam——pytorch下的模型特征(Class Activation Mapping, CAM)可视化库
Microsoft365开发人员申请
https://github.com/ZouJiu1/PAT