【codeforces 507E】Breaking Good

【题目链接】:https://vjudge.net/contest/164884#problem/D

【题意】

给你一张图;
图中有些路是完好的;但有些路还没修好;
先不管路有没有修好;
问你从起点到终点的最短路;
如果最短路上有没修好的路,那么你要把它修好;
而不在最短路上的,如果是完好的路,你需要把它摧毁(???)
让你选出这么一条最短路,使得受影响的路(被摧毁的和修好的路的数目总和)最少;

【题解】

受影响的路即是:
最短路上的没修好的路+非最短路上的修好的路;
也即;
最短路的长度-最短路上的修好的路+整张图上修好的路-最短路上修好的路
也即
最短路的长度+整张图上修好的路-2*最短路上修好的路;
要让受影响的路最少;
即让最短路上修好的路最大就好;
这个可以在做spfa的时候顺便得到;
即最短路相同,再判断一下修好的路的个数;
按照那个公式算出受影响的路;
然后记录每个点的前缀;
最短路上没修好的路把它修好(输出);
不是最短路上的修好的路把它破坏(输出);

【Number Of WA

0

【完整代码】

#include <bits/stdc++.h>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define ms(x,y) memset(x,y,sizeof x)
#define Open() freopen("F:\\rush.txt","r",stdin)
#define Close() ios::sync_with_stdio(0),cin.tie(0)typedef pair<int,int> pii;
typedef pair<LL,LL> pll;const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
const double pi = acos(-1.0);const int N = 1e5+50;
const int INF = 0x3f3f3f3f;struct abc{int x,y,z;
};int n,m,all1,k;
abc a[N];
vector <pii> G[N];
pii dis[N],pre[N];
queue <int> dl;
bool inq[N],bo[N];void spfa()
{rep1(i,1,n)dis[i] = mp(INF,0);dis[1].fi = 0;dl.push(1);inq[1] = true;while (!dl.empty()){int x = dl.front();dl.pop();inq[x] = false;for (pii temp:G[x]){int y = temp.fi,w = a[temp.se].z;if (dis[y].fi>dis[x].fi+1 || (dis[y].fi==dis[x].fi+1 && dis[y].se<dis[x].se+w)){dis[y].fi = dis[x].fi+1;dis[y].se = dis[x].se+w;pre[y] = mp(x,temp.se);if (!inq[y]){inq[y] = true;dl.push(y);}}}}
}int main()
{//Open();cin >> n >> m;rep1(i,1,m){cin >> a[i].x >> a[i].y >> a[i].z;G[a[i].x].pb(mp(a[i].y,i));G[a[i].y].pb(mp(a[i].x,i));all1+=a[i].z;}spfa();k = dis[n].fi+all1-2*dis[n].se;cout << k << endl;int now = n;while (now!=1){int temp = pre[now].se;if (a[temp].z==0)cout << a[temp].x <<' '<<a[temp].y<<' '<<1<<endl;bo[temp] = 1;now = pre[now].fi;}rep1(i,1,m)if (!bo[i] && a[i].z==1)cout << a[i].x <<' '<<a[i].y<<' '<<0<<endl;return 0;
}

转载于:https://www.cnblogs.com/AWCXV/p/7626299.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/571884.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java去掉图片边框颜色_sharp 去除图片边框

trim接受参数是颜色相似度, 并不能指定边框颜色, 所以有可能会误删除内容, 需要注意trim 需要转为buffer或者文件后再次操作, 否则图片信息不变从剪裁效果来看, 精度和速度都是可以的const sharp require("sharp");const path "./html/a.png";const outp…

java mail 不用密码_iPhone 无需越狱,简单给 App 加密码锁

在手机上总有些小秘密&#xff0c;也有些APP不想被打开。由于iOS本身限制&#xff0c;想给APP加上密码锁&#xff0c;一般都是需要越狱才能实现。其实在iOS 12就加入了【屏幕使用时间】&#xff0c;用来更好设置APP使用时间的限额。屏幕使用时间屏幕时间功能可以协助您了解自己…

Java植物名录程序_程序员用Java语言编写多线程应用程序,程序员能控制的关键性工作有两个方面:一是编写线程的_________方法;二是建立线程实例。...

沟通的目的是打造“3G团队”&#xff0c;其中的“3G”具体指&#xff1a;“啊,时间过得真快啊!”中的“啊”活塞与气缸盖、气缸壁共同组成燃烧室,承受气缸中气体的压力,并将此压力通过活塞销和连杆传给食品是指人食用或饮用的成品和原料,以及按照传统既是食品又是( )的物品,但不…

【t090】吉祥数

Time Limit: 1 second Memory Limit: 128 MB 【问题描述】 为了迎接圣诞&#xff0c;信息学兴趣小组的同学在辅导老师的带领下&#xff0c;举办了一个盛大的晚会&#xff0c;晚会的第一项内容是做游戏&#xff1a;猜数。老师给 每位同学发一张卡片&#xff0c;每张卡片上都有…

spark内存溢出怎么解决_和平精英:更新需要预留6G内存,玩家抱怨手机扛不住,怎么解决?...

嗨&#xff0c;小伙伴们大家好呀&#xff01;《和平精英》新版本终于来了哈&#xff0c;小伙伴们在22号上午登录游戏&#xff0c;就可以收到更新提示&#xff0c;点击进行更新就好了。或者是在各个应用商店里等待更新推送&#xff0c;也行哦&#xff01;但是呢&#xff0c;每到…

php 字符串0转换bool_PHP数据类型转换(转)

PHP数据类型转换PHP的数据类型转换属于强制转换&#xff0c;允许转换的PHP数据类型有&#xff1a;•(int)、(integer)&#xff1a;转换成整形•(float)、(double)、(real)&#xff1a;转换成浮点型•(string)&#xff1a;转换成字符串•(bool)、(boolean)&#xff1a;转换成布尔…

【转】LDA数学八卦

转自LDA数学八卦 在 Machine Learning 中&#xff0c;LDA 是两个常用模型的简称&#xff1a; Linear Discriminant Analysis 和 Latent Dirichlet Allocation&#xff0c; 在这篇文章中我们主要八卦的是后者。LDA 是一个在文本建模中很著名的模型&#xff0c;类似于 SVD, PLSA …

python3安装json库-python库json快速入门

在本教程中&#xff0c;您将学习如何借助示例在Python中解析&#xff0c;读取和编写JSON。 此外&#xff0c;您将学习将JSON转换为dict并将其打印出来。 JSON简介 JSON (JavaScript Object Notation) 是一种用于表示结构化数据的流行数据格式。 常用于服务器和Web应用程序之间传…

python 常量 模块_Python字符串模块的有用常量

示例Python的string模块为与字符串相关的操作提供常量。要使用它们&#xff0c;请导入string模块&#xff1a;>>> import stringstring.ascii_letters&#xff1a;ascii_lowercase和的串联ascii_uppercase&#xff1a;>>> string.ascii_lettersabcdefghijklm…

PAT1132: Cut Integer

1132. Cut Integer (20) 时间限制400 ms内存限制65536 kB代码长度限制16000 B判题程序Standard作者CHEN, YueCutting an integer means to cut a K digits long integer Z into two integers of (K/2) digits long integers A and B. For example, after cutting Z 167334, we…

电脑字体模糊_小红书上传视频模糊?做小红书视频99%的工具都在这了

到现在小红书视频号功能已经上线快三个月了&#xff0c;越来越多的小伙伴开始拍视频、创作视频笔记&#xff0c;但是对于新接触视频的小伙伴来说&#xff0c;拍摄视频好像是一件很难的事&#xff0c;特别是不清楚该选择什么拍摄设备、不知道怎么剪辑视频&#xff0c;还有如何上…

Codeforces Gym101518H:No Smoking, Please(最小割)

题目链接 题意 给出一个n*m的酒店&#xff0c;每个点是一个房间&#xff0c;要将这个酒店的房间划分成为两块&#xff08;一块无烟区&#xff0c;一块吸烟区&#xff09;&#xff0c;相邻的两个房间之间有一条带权边&#xff0c;权值代表空气锁的面积&#xff0c;如果把这条边给…

java如何实现服务降级_Hystrix服务降级

## 注意Hystrix默认的服务降级时长是1秒钟.因为网络波动,这个值在正式环境中需要调整一下.## 导入包~~~org.springframework.cloudspring-cloud-starter-netflix-hystrix2.0.1.RELEASE~~~## 启动类~~~package com.like;import org.springframework.boot.SpringApplication;impo…

谷歌浏览器不能上网_谷歌浏览器插件下载及安装教程!

emmm......这篇文章的内容非常小白&#xff0c;相信大部分人都会这个基本操作。但是阁主相信还有些妹子操作不来&#xff0c;如果还没有男朋友&#xff0c;那不是铁定不会安装谷歌浏览器插件么&#xff1f;其实“谷歌浏览器插件”这个组合&#xff0c;可以解决很多问题&#xf…

高级技巧之Lambda表达式

1.Lambda表达式简介 其本质上是一种匿名方法&#xff0c;它既没有方法名&#xff0c;也即没有访问修饰符和返回值类型&#xff0c;使用它来编写代码将会更加简洁&#xff0c;也更加易读。 2.使用该表达式需要配置的数据 3.传统java和使用Lambda表达式的对比 0&#xff09;总结&…

java二维数组两个框代表什么_在java语言中,二维数组的两个中括号[][]分别表示()和()。...

【判断题】一元统计分析是研究一个随机变量统计规律的学科。【判断题】合伙创业的成功率一般低于独资创业的成功率。【单选题】镜检时呈“竹节状”排列的是【判断题】酵母菌的菌落与放线菌的菌落相似。【判断题】木纤维是厚壁细胞的一种,它的化学成份以纤维素为主。( )【判断题…

设计模式之——Builder建造模式

Builder模式又叫建造模式&#xff0c;是用于组装具有复杂结构的实例的模式。 示例程序是编写一个文档&#xff0c;并且写入到文件中&#xff0c;该文档具有以下结构&#xff0c;含有标题&#xff0c;字符串&#xff0c;一些条目。 Builder抽象类&#xff0c;为建造模式的核心pa…

java程序员_Java和Python的区别 好程序员帮大家解读

Java和Python的区别 好程序员今天先来解读Java编程语言的优势&#xff0c;人工智能和大数据火爆一时&#xff0c;随之而来&#xff0c;引起了编程语言的人气暴涨。而Java和Python作为最炙手可热的编程语言从一开始便赢得了众多程序员的青睐。凭借各自强大的性能和优势&#xff…

java 工具类sort_Java 通用排序工具类ListSortUtils

场景&#xff1a;Java 类 需 重新排序&#xff0c;有时升序、有时倒叙&#xff0c;有时是多字段排序代码&#xff1a;package GenericTest;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.Collections;import java.uti…

Centos 搭建 NFS

服务端yum -y install nfs-utils rpcbind chkconfig nfs on chkconfig rpcbind on mkdir -p /tmp/share chmod 600 /tmp/share vim /etc/exports /tmp/share 192.168.2.0/24(rw,no_root_squash,no_all_squash,sync) /tmp/share *(rw,no_root_squash,no_all_squash,sync) servic…