hdu6026 Deleting Edges(Dijkstra+思路)
https://vjudge.net/problem/HDU-6026
我一直想不明白的是,它的乘法是如何保证n-1条边的。后来画了一张图大概能明白了。

结合最后的乘法二层循环的代码来看,当i=4的时候,j有1和3满足条件,3满足不用说是迪杰斯特拉本身跑出来的,1满足条件,而中间的点2、3也可以有自己本身的路径达到,最后满足共n-1条边。
#include<iostream>
#include<cstdio>
#include<queue>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<set>
#define IO ios::sync_with_stdio(false);cin.tie(0);
#define INF 0x3f3f3f3f
typedef long long ll;
using namespace std;
const int MOD=1e9+;
ll n, dist[], vis[], a[][];
char b[][];
void dijkstra()
{
for(int i = ; i < n; i++){
dist[i] = INF;
}
dist[]=;
for(int i = ; i < n; i++){
ll mini = INF, k=-;
for(int j = ; j < n; j++){
if(!vis[j]&&dist[j]<mini){
mini = dist[j];
k = j;
}
}
vis[k] = ;
for(int j = ; j < n; j++){
if(!vis[j]&&a[k][j]&&dist[j] > dist[k]+a[k][j]){//0是不通
dist[j] = dist[k]+a[k][j];
}
}
}
}
int main()
{
while(cin >> n){
memset(vis, , sizeof(vis));
for(int i = ; i < n; i++){
cin >> b[i];
for(int j = ; j < n; j++){
a[i][j] = b[i][j]-'';
}
}
dijkstra();
/*for(int i = 0; i < n; i++){
cout << dist[i] << " ";
} cout << endl;*/
ll tmp, ans=;
for(int i = ; i < n; i++){
tmp = ;
for(int j = ; j < n; j++){
if(a[j][i]&&dist[i] == dist[j]+a[j][i]){//0是不通
tmp++;
}
}
ans = (ans*tmp)%MOD;
}
cout << ans << endl;
}
return ;
}
hdu6026 Deleting Edges(Dijkstra+思路)的更多相关文章
- HDU6026 Deleting Edges 2017-05-07 19:30 38人阅读 评论(0) 收藏
Deleting Edges Time ...
- 2017中国大学生程序设计竞赛 - 女生专场 Deleting Edges(思维+最短路)
Deleting Edges Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) ...
- 【HDU6026】Deleting Edges
题意 有一个n个节点的无向图,结点编号从0-n-1,每条边的长度时1to9的一个正整数.现在要删除一些边(或者不删),使得到的新图满足下面两个要求. 1.新图是一颗树有n-1条边2.对于每个结点v(0 ...
- HDU 6026 Deleting Edges
最短路. 先建一个只包含最短路的有向无环图,每一个点选择任意一条入边即可生成一个树形图,那么树的种类就等于每个点的入度乘积. #include <bits/stdc++.h> using ...
- POJ 2387 Til the Cows Come Home Dijkstra求最短路径
Til the Cows Come Home Bessie is out in the field and wants to get back to the barn to get as much s ...
- hdu4496 D-City(扭转和支票托收啊 )
主题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4496 D-City Problem Description Luxer is a really bad ...
- hdu4496-D-city--逆序并查集
D-City Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total Subm ...
- HDU4496 D-City【基础并查集】
Problem Description Luxer is a really bad guy. He destroys everything he met. One day Luxer went to ...
- hdu-4496-D-City
D-City Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total Subm ...
随机推荐
- 线程 ID
摘自<Linux 环境编程:从应用到内核> 在 Linux 中,目前的线程实现是 Native POSIX Thread Library,简称 NPTL.在这种实现下,线程又被称为轻量级进 ...
- 【回顾】html属性、标题、段落、文本格式化
1.HTML 属性 HTML 元素可以设置属性 属性可以在元素中添加附加信息 属性一般描述于开始标签 属性总是以名称/值对的形式出现,比如:name="value". HTML 提 ...
- EF 数据版本号,处理具体使用方法 RowVersion / Timestamp 使用方法。进行自动处理并发修改
/* * <div class="form-group"> // 原始 * <div class="form-group hidden"> ...
- 根据关键字找进程id
#!/usr/bin/pythonimport subprocessimport sysimport loggingimport os gameproc = "jd_5.py" d ...
- Codeforces 653F Paper task SA
Paper task 如果不要求本质不同直接st表二分找出最右端, 然后计数就好了. 要求本质不同, 先求个sa, 然后用lcp求本质不同就好啦. #include<bits/stdc++.h& ...
- BZOJ3796 Mushroom追妹纸 字符串 SA KMP
原文链接https://www.cnblogs.com/zhouzhendong/p/9253173.html 题目传送门 - BZOJ3796 题意 找一个串 $w$ 满足: 1.$w$ 是 $s_ ...
- BZOJ3156 防御准备 动态规划 斜率优化
原文链接http://www.cnblogs.com/zhouzhendong/p/8688187.html 题目传送门 - BZOJ3156 题意 长为$n$的序列$A$划分,设某一段为$[i,j] ...
- POJ3321Apple Tree Dfs序 树状数组
出自——博客园-zhouzhendong ~去博客园看该题解~ 题目 POJ3321 Apple Tree 题意概括 有一颗01树,以结点1为树根,一开始所有的结点权值都是1,有两种操作: 1.改变其 ...
- 数学模型:3.非监督学习--聚类分析 和K-means聚类
1. 聚类分析 聚类分析(cluster analysis)是一组将研究对象分为相对同质的群组(clusters)的统计分析技术 ---->> 将观测对象的群体按照相似性和相异性进行不同群 ...
- quratz数据存储
Quartz 中的 trigger 和 job 需要存储下来才能被使用. 1.两种存储方式 RAMJobStore, JobStoreSupport, 其中 RAMJobStore 是将 trigge ...