POJ 2831
次小生成树。求出两点间最短路径的最大权值,再把要加入的边与之比较即可。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std; const int MAXN=;
const int MAXM=;
const int inf=;
int map[MAXN][MAXN];
int edge[MAXM][];
bool exist[MAXN][MAXN],used[MAXN][MAXN],vis[MAXN];
int f[MAXN][MAXN],dist[MAXN],pre[MAXN];
int m,n,q;
int ans1=;
void init(){
for(int i=;i<=n;i++){
vis[i]=false;
for(int j=i;j<=n;j++){
map[i][j]=map[j][i]=inf;
exist[i][j]=exist[j][i]=used[i][j]=used[j][i]=false;
f[i][j]=f[j][i]=;
}
}
} void prim(){
dist[]=;
for(int i=;i<=n;i++){
dist[i]=map[][i];
if(dist[i]!=inf)
pre[i]=;
else pre[i]=-;
}
vis[]=true;
for(int i=;i<=n;i++){
int min=inf,p=-;
for(int k=;k<=n;k++){
if(dist[k]<min&&!vis[k]){
min=dist[k]; p=k;
}
}
if(p==-) return ;
for(int k=;k<=n;k++){
if(vis[k]){
f[k][p]=max(f[k][pre[p]],map[pre[p]][p]);
f[p][k]=f[k][p];
}
}
vis[p]=true;
for(int k=;k<=n;k++){
if(!vis[k]&&map[p][k]<dist[k]){
dist[k]=map[p][k];
pre[k]=p;
}
}
}
} int main(){
int u,v,d;
int c,w;
while(scanf("%d%d%d",&n,&m,&q)!=EOF){
init();
for(int i=;i<=m;i++){
scanf("%d%d%d",&u,&v,&d);
edge[i][]=u; edge[i][]=v; edge[i][]=d;
if(d<map[u][v])
map[u][v]=map[v][u]=d;
}
prim();
for(int i=;i<=q;i++){
scanf("%d%d",&c,&w);
u=edge[c][]; v=edge[c][];
if(w<=f[u][v])
printf("Yes\n");
else printf("No\n");
}
}
return ;
}
POJ 2831的更多相关文章
- POJ 2831 Can We Build This One:次小生成树【N^2预处理】
题目链接:http://poj.org/problem?id=2831 题意: 给你一个图,每条边有边权. 然后有q组询问(i,x),问你如果将第i条边的边权改为x,这条边是否有可能在新的最小生成树中 ...
- POJ 2831 Can We Build This One?
Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 1728 Accepted: 643 Case Time Limit: 2 ...
- poj 2831 次小生成树模板
/*次小生成树 题意:给你一些路径,现在将一部分路径权值减少后问是否可以替代最小生成树里面的边. 解:次小生成树,即将这条边连上,构成一个环 求出任意两点路径之间的除了这条边的最大值,比较这个最大值& ...
- POJ 3370. Halloween treats 抽屉原理 / 鸽巢原理
Halloween treats Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7644 Accepted: 2798 ...
- POJ 2356. Find a multiple 抽屉原理 / 鸽巢原理
Find a multiple Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7192 Accepted: 3138 ...
- POJ 2965. The Pilots Brothers' refrigerator 枚举or爆搜or分治
The Pilots Brothers' refrigerator Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22286 ...
- POJ 1753. Flip Game 枚举or爆搜+位压缩,或者高斯消元法
Flip Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 37427 Accepted: 16288 Descr ...
- POJ 3254. Corn Fields 状态压缩DP (入门级)
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 9806 Accepted: 5185 Descr ...
- POJ 2739. Sum of Consecutive Prime Numbers
Sum of Consecutive Prime Numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 20050 ...
随机推荐
- Squares(枚举+set 查找)
http://poj.org/problem?id=2002 题意:给出n组坐标,判断这些坐标能组成的正方形的个数. 思路:参考某大神的想法,先枚举两个点,然后利用公式表示出另外两个点,判断这两个点是 ...
- .Net Core项目上Azure Docker云
1.找到创建资源-容器-Container Instances 2.安装模板,填写私有映像表的相关信息 3.创建成功,运行测试.
- Ionic学习记录(一):ionic及cordova安装、创建第一个应用、项目结构
目录: 一.ionic的安装 二.创建第一个应用程序 三.浏览器中预览应用 四.项目结构 五.添加页面 一.ionic的安装 使用Ionic创建和开发应用程序主要通过Ionic命令行实用程序(“CLI ...
- RabbitMQ .NET消息队列使用入门(一)【简单示例】
首先下载安装包,我都环境是win7 64位: 去官网下载 otp_win64_19.0.exe 和rabbitmq-server-3.6.3.exe安装好 然后开始编程了: (1)创建生产者类: cl ...
- dotnet core 发布配置(测试数据库和正式数据库自动切换)
一.起源 在进行项目开发时,常常要求开发环境,测试环境及正式环境的分离,并且不同环境运行的参数都是不一样的,比如监听地址,数据库连接信息等.当然我们把配置信息保存到一个文件中,每次发布的时候,可以先修 ...
- System.net.mail发送电子邮件
之前做的实现发送邮件的功能,基于System.net.mail,在本地测试是可以发送邮件的,发布到服务器上发送不了邮件,后来发现STMP默认使用25端口收发邮件,服务器封掉25了端口,导致发送邮件失败 ...
- CentOS 安装dotNetCore
如果要在CentOS上运行.net Core程序,必须安装.net Core Sdk 具体安装 方法,可以参考微软官方站点说明,非常详细: 1)百度搜索 .Net Core 2)先择CentOS版本: ...
- IVVI SK3-02小骨酷派SK3-02 进入第三方 recovery 刷机 ROOT
首先下载好工具:http://url.cn/5AS7IiB 备用连接 :https://pan.baidu.com/s/1jJmbYAi 本篇教程教你如何傻瓜式解锁BootLoader并进入临时rec ...
- MFC 缩放和显示IplImage
序言:使用OpenCV嵌入MFC的框内,图像大小不能和框大小进行匹配,因此需要缩放,使图像适用于MFC框. 后来找到了一种新的方法,此方案貌似u已经废弃. (1).在MFC中显示图片 void CAv ...
- 数据迁移 Migration