一个国王,他拥有一个国家。最近他因为国库里钱太多了,要征集一只部队要保卫国家。他选定了N个女兵和M个男兵,但事实上每征集一个兵他就要花10000RMB,即使国库里钱再多也伤不起啊。他发现,某男兵和某女兵之间有某种关系,这种关系可以使KING少花一些钱就可以征集到兵,不过国王也知道,在征兵的时候,每一个兵只能使用一种关系来少花钱。这时国王向你求助,问他最少要花多少的钱。

读入(conscription.in)

第一行:T,一共T组数据。

接下来T组数据,

第一行包括N,M,R

接下来的R行 包括Xi,Yi,Vi 表示如果招了第Xi个女兵,再招第Yi个男兵能省Vi元(同样表示如果招了第Yi个男兵,再招第Xi个女兵能也省Vi元)

输出(conscription.out)

共T行,表示每组数据的最终花费是多少(因为国库里的钱只有2^31-1,所以保证最终花费在maxlongint范围内)

这题是一道最小生成树的题 其实题目说的有点不太清楚 每个人只能用一种关系来少花钱 如果说一个人”被依赖“或”依赖别人“少花钱后这两人都不能利用关系了 这样的话很容易想到二分图匹配 写了半天最大流发现用二分图做也不会 而且数据太大 但题目的意思其实是每个人用”别人“来少花钱 而对方不受影响 那么一共有n+m个人 我们选n+m-1条边 也就是关系 因为第一个人被征用时没有人在队伍里 他不能利用任何关系 这样一来就是最小生成树 或者说最大生成树了 还要注意联通性问题 如果不连通 那么选不了n+m-1那么多条边 尽量多选就行了

 #include<iostream>
 #include<cstdio>
 #include<vector>
 #include<algorithm>
 #define LL long long
 using namespace std;
 ;
 struct Edge{
     LL from,to,dist;
     bool operator<(const Edge& rhs)const{
         return dist<rhs.dist;
     }
 };
 LL n,m,r,fa[maxn],x,y,z;
 vector<Edge> edges;
 void init(){
     ;i<=n+m;i++) fa[i]=i;
     edges.clear();
 }
 LL find(LL x){
     if(fa[x]==x) return x;
     return fa[x]=find(fa[x]);
 }
 int main(){
     freopen("conscription.in","r",stdin);
     freopen("conscription.out","w",stdout);
     int T;
     scanf("%d",&T);
     while(T--){
         scanf("%lld%lld%lld",&m,&n,&r);
         init();
         ;i<=r;i++){
             scanf("%lld%lld%lld",&x,&y,&z);
             edges.push_back((Edge){m+x+,y+,-z});
         }
         sort(edges.begin(),edges.end());
         LL ans=;
         ;i<edges.size();i++){
             Edge& e=edges[i];
             LL a=find(e.from),b=find(e.to);
             if(a==b) continue;
             ans+=e.dist;
             fa[a]=b;
         }
         printf(*(n+m)+ans);
     }
     fclose(stdin);
     fclose(stdout);
     ;
 }

NOIP模拟赛-征兵的更多相关文章

  1. NOIP模拟赛20161022

    NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...

  2. contesthunter暑假NOIP模拟赛第一场题解

    contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...

  3. NOIP模拟赛 by hzwer

    2015年10月04日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...

  4. 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程

    数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...

  5. 队爷的讲学计划 CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的讲学计划 题解:刚开始理解题意理解了好半天,然后发 ...

  6. 队爷的Au Plan CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的Au%20Plan 题解:看了题之后觉得肯定是DP ...

  7. 队爷的新书 CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的新书 题解:看到这题就想到了 poetize 的封 ...

  8. CH Round #58 - OrzCC杯noip模拟赛day2

    A:颜色问题 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2358%20-%20OrzCC杯noip模拟赛day2/颜色问题 题解:算一下每个仆人到它的目的地 ...

  9. CH Round #52 - Thinking Bear #1 (NOIP模拟赛)

    A.拆地毯 题目:http://www.contesthunter.org/contest/CH%20Round%20%2352%20-%20Thinking%20Bear%20%231%20(NOI ...

随机推荐

  1. java的https请求解决证书问题

    package sqr.srchSpider.utils; import java.security.SecureRandom; import java.security.cert.Certifica ...

  2. linux创建动态库

    [1]新建源程序sharelib.c /************************************************************************* > F ...

  3. SQL Server系统存储过程

    1. execute sp_databases   查询当前所有数据库大致信息(名称,大小等) 2. exec sp_helpdb [Myschool] 返回数据库的所有详细信息(数据库大小,位置,文 ...

  4. PetaPoco ORM 增加返回DataTable的方法

    public DataTable ExecuteDataTable(Sql sql) { return ExecuteDataTable(sql.SQL, sql.Arguments); } publ ...

  5. JavaScript数据类型之隐式类型转换

    JavaScript的数据类型分为七种,分别为null,undefined,boolean,string,number,object,symbol ( ECMAScript 2015新增).objec ...

  6. C#四种深拷贝方法

    //四种深拷贝方法 public static T DeepCopyByReflect<T>(T obj) { //如果是字符串或值类型则直接返回 if (obj is string || ...

  7. C++编写DLL的方法

    http://files.cnblogs.com/files/profession/DllTest.zip 在写C++程序时,时常需要将一个class写成DLL,供客户端程序调用.这样的DLL可以导出 ...

  8. mybatis 中sql语句传递多个参数

    Available parameters are [2, 1, 0, param1, param2, param3] <select id="loginByTeacher"  ...

  9. JSONP和CORS两种跨域方式的简单介绍和解决方案实例

    随着软件开发分工趋于精细,前后端开发分离成为趋势,前端同事负责前端页面的展示及页面逻辑处理,服务端同事负责业务逻辑处理同时通过API为前端提供数据也为前端提供数据的持久化能力,考虑到前后端同事开发工具 ...

  10. [delphi]向ImageList中加入png类型的资源图片

    向ImageList中动态加入Png图片有些失真,经过多方查询,发现需要将Bitmap的AlphaFormat指定一下. //向ImageList中加入png类型的资源图片 procedure Add ...