本来看数据用临界矩阵可能会超时,还是写了临界矩阵,结果1A了

模板的不能再模板 了

#include<map>
#include<set>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>
#include<cstdio>
#include<cassert>
#include<iomanip>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define pi acos(-1)
#define ll long long
#define mod 1000000007
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1
#pragma comment(linker, "/STACK:1024000000,1024000000") using namespace std; const double g=10.0,eps=1e-;
const int N=+,maxn=+,inf=0x3f3f3f; int w[N][N];
int n,m;
bool vis[N],in[N];
int pre[N];
void dfs(int u)
{
vis[u]=;
for(int i=;i<n;i++)
if(!vis[i]&&w[u][i]<inf)
dfs(i);
}
int dirmst(int u)
{
int ans=;
dfs(u);
for(int i=;i<n;i++)
if(!vis[i])
return -;
memset(vis,,sizeof vis);
while(){
for(int i=;i<n;i++)
{
if(i!=u&&!in[i])
{
pre[i]=i;
w[i][i]=inf;
for(int j=;j<n;j++)
if(!in[j]&&w[j][i]<w[pre[i]][i])
pre[i]=j;
}
}
int i;
for(i=;i<n;i++)
{
if(!in[i]&&i!=u)
{
int j=i,cnt=;
while(pre[j]!=i&&cnt<=n&&j!=u)j=pre[j],cnt++;
if(cnt>n||j==u)continue;
break;
}
}
if(i>n-)
{
for(int i=;i<n;i++)
if(!in[i]&&i!=u)
ans+=w[pre[i]][i];
return ans;
}
int j=i;
memset(vis,,sizeof vis);
do{
ans+=w[pre[j]][j],j=pre[j],vis[j]=in[j]=;
}while(j!=i);
in[i]=;
for(int k=;k<n;k++)
if(vis[k])
for(int j=;j<n;j++)
if(!vis[j])
{
if(w[i][j]>w[k][j])w[i][j]=w[k][j];
if(w[j][k]<inf&&w[j][k]-w[pre[k]][k]<w[j][i])
w[j][i]=w[j][k]-w[pre[k]][k];
}
}
return ans;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie();
int t,cnt=;
cin>>t;
while(t--){
cin>>n>>m;
for(int i=;i<n;i++)
{
vis[i]=in[i]=;
for(int j=;j<n;j++)
w[i][j]=inf;
}
while(m--){
int a,b,c;
cin>>a>>b>>c;
if(a==b)continue;
if(w[a][b]>c)w[a][b]=c;
}
/*for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
cout<<w[i][j]<<" ";
cout<<endl;
}*/
int ans=dirmst();
if(ans<)cout<<"Case #"<<++cnt<<": Possums!"<<endl;
else cout<<"Case #"<<++cnt<<": "<<ans<<endl;
}
return ;
}

uva11183最小树形图的更多相关文章

  1. uva11183 最小树形图模板题

    很简单的模板题,不多说了 #include<iostream> #include<cstring> #include<cstdio> #define INF 0x3 ...

  2. UVA11183 Teen Girl Squad —— 最小树形图

    题目链接:https://vjudge.net/problem/UVA-11183 You are part of a group of n teenage girls armed with cell ...

  3. UVa11183 Teen Girl Squad, 最小树形图,朱刘算法

    Teen Girl Squad  Input: Standard Input Output: Standard Output You are part of a group of n teenage ...

  4. UVA-11183 Teen Girl Squad (最小树形图、朱刘算法模板)

    题目大意:给一张无向图,求出最小树形图. 题目分析:套朱-刘算法模板就行了... 代码如下: # include<iostream> # include<cstdio> # i ...

  5. 最小树形图模板 UVA11183

    题意:给定n个节点m条边的有向带权图,求以0为根节点的最小树形图权值大小 用这个代码的时候要注意,这里的数据是从0开始的,边也是从0开始算, 所以在打主代码的时候,如果是从1开始,那么算法里面的从0开 ...

  6. bzoj4349: 最小树形图

    最小树形图模板题…… 这种\(O(nm)\)的东西真的能考到么…… #include <bits/stdc++.h> #define N 60 #define INF 1000000000 ...

  7. hdu 4966 GGS-DDU (最小树形图)

    比较好的讲解:http://blog.csdn.net/wsniyufang/article/details/6747392 view code//首先为除根之外的每个点选定一条入边,这条入边一定要是 ...

  8. HDU 4966 GGS-DDU(最小树形图)

    n个技能,每个技能有0-a[i]的等级,m个课程,每个课程需要前置技能c[i]至少达到lv1[i]等级,效果是技能d[i]达到lv2[i]等级,花费w[i]. 输出最小花费使得全技能满级(初始全技能0 ...

  9. hdu3072 强连通+最小树形图

    题意:有一个人他要把一个消息通知到所有人,已知一些通知关系:A 能通知 B,需要花费 v,而又知道,如果某一个小团体,其中的成员相互都能直接或间接通知到,那么他们之间的消息传递是不需要花费的,现在问这 ...

随机推荐

  1. PAT 1118 Birds in Forest [一般]

    1118 Birds in Forest (25 分) Some scientists took pictures of thousands of birds in a forest. Assume ...

  2. flyweight模式

    参考资料 • 维基百科:https://en.wikipedia.org/wiki/Flyweight_pattern • 百度百科:http://baike.baidu.com/link?url=R ...

  3. Extjs3.4 grid中添加一列复选框

    var sm = new Ext.grid.CheckboxSelectionModel(); var cm = new Ext.grid.ColumnModel( [ sm, new Ext.gri ...

  4. 使用CXF+Spring发布WebService,启动报错

    使用CXF+Spring发布WebService,启动报错,日志如下: 五月 12, 2017 9:01:37 下午 org.apache.tomcat.util.digester.SetProper ...

  5. iOS 动态调用方法

      - (void)bugly { dispatch_async(dispatch_get_global_queue(0, 0), ^{ if (NSClassFromString(@"Bu ...

  6. ajax的认识

    1. ajax是一种技术,无需刷新页面即可向服务器传输.读写数据. 2. ajax的参数说明: 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为 ...

  7. AVAudioSession(3):定制 Audio Session 的 Category

    本文转自:AVAudioSession(3):定制 Audio Session 的 Category | www.samirchen.com 本文内容主要来源于 Working with Catego ...

  8. 超级强大的vim配置(vimplus)--续集

    An automatic configuration program for vim 安装(github地址:https://github.com/chxuan/vimplus.git, 欢迎star ...

  9. linux内核动态打印

    参考:https://www.cnblogs.com/pengdonglin137/p/4622460.html https://linux.cn/article-3682-1.html?pr 如何打 ...

  10. Vue限制输入框只能输入整数

    首先,得明确监听input输入框变化的方法是input,不是change. 方案一:type= "number" 作用: 成功禁止输入字母 能输入小数点,第一位可以为0,小数点能输 ...