4021征兵方案
难度级别: C; 编程语言:不限;运行时间限制:1000ms; 运行空间限制:51200KB; 代码长度限制:2000000B
试题描述

现在需要征募女兵N人,男兵M人,每征募一个人需要花费10000美元,但如果已经征募的人中有一些关系亲密的人,就可以少花些钱。给出若干男女之间的亲密关系值(用1到9999表示),则征募某个人的费用为10000减去已征募人中与该人亲密值的最大值。要求通过适当的征募顺序安排使得征募所有人所需的费用最小。

输入
第一行包括三个数N,M和R,接下来的R行,每行包括三个数x,y和d,表示第x号男兵和第y号女兵之间的亲密度为d,各行的数两两之间用一个空额分隔。
输出
一个数,表示征兵的费用。
输入示例
5 5 8
4 3 6831
1 3 4583
0 0 6592
0 1 3063
3 3 4975
1 3 2049
4 2 2104
2 2 781
输出示例
71071
其他说明
数据范围:1<=N,M<=10000,0<=R<=50000,0<d<10000,0<=x<M,0<=y<N.

题解:这题太坑了。。。男女形成了天然二分图,就各种YY二分图匹配神马的了。。。就做不出来了。。。

最后认真画了一下图,妈妈呀,这不就是个裸生成树嘛。。。。。。。。。。。。。。。。。。。

哭瞎了。。。

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cmath>
  4. #include<algorithm>
  5. #include<queue>
  6. #include<cstring>
  7. #define PAU putchar(' ')
  8. #define ENT putchar('\n')
  9. using namespace std;
  10. const int maxn=+;
  11. struct node{
  12. int from,to,c;
  13. bool operator <(const node&a)const{return c<a.c;}
  14. }a[maxn];int n,m,k,p[maxn];
  15. int find(int x){return p[x]==x?x:p[x]=find(p[x]);}
  16. inline int read(){
  17. int x=,sig=;char ch=getchar();
  18. for(;!isdigit(ch);ch=getchar())if(ch=='-')sig=;
  19. for(;isdigit(ch);ch=getchar())x=*x+ch-'';
  20. return sig?x:-x;
  21. }
  22. inline void write(int x){
  23. if(x==){putchar('');return;}if(x<)putchar('-'),x=-x;
  24. int len=,buf[];while(x)buf[len++]=x%,x/=;
  25. for(int i=len-;i>=;i--)putchar(buf[i]+'');return;
  26. }
  27. void init(){
  28. n=read();m=read();k=read();
  29. for(int i=;i<=n+m;i++)p[i]=i;
  30. for(int i=;i<k;i++){
  31. int u=read(),v=read(),c=read();
  32. a[i]=(node){u,v+n,-c};
  33. }
  34. sort(a,a+k);int ans=,cnt=;
  35. for(int i=;i<k;i++){
  36. int x=find(a[i].from),y=find(a[i].to);
  37. if(x!=y)p[x]=y,ans+=a[i].c,cnt++;
  38. }
  39. ans+=(n+m-cnt)*;
  40. write(ans);
  41. return;
  42. }
  43. void work(){
  44. return;
  45. }
  46. void print(){
  47. return;
  48. }
  49. int main(){init();work();print();return ;}

COJ 0580 4021征兵方案的更多相关文章

  1. UniCode编码表及部分不可见字符过滤方案

    Unicode编码表/0000-0FFF 图例: Unicode 3.1 Unicode 1.0 Unicode 3.2 Unicode 1.1 Unicode 4.0 Unicode 2.0 Uni ...

  2. 分布式锁1 Java常用技术方案

    前言:       由于在平时的工作中,线上服务器是分布式多台部署的,经常会面临解决分布式场景下数据一致性的问题,那么就要利用分布式锁来解决这些问题.所以自己结合实际工作中的一些经验和网上看到的一些资 ...

  3. 再谈C#采集,一个绕过高强度安全验证的采集方案?方案很Low,慎入

    说起采集,其实我是个外行,以前拔过阿里巴巴的客户数据,在我博客的文章:C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子) 中,介绍过采集用的工具,其实很Low的,分析 ...

  4. 谈谈一些有趣的CSS题目(八)-- 纯CSS的导航栏Tab切换方案

    开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

  5. iOS开发之多种Cell高度自适应实现方案的UI流畅度分析

    本篇博客的主题是关于UI操作流畅度优化的一篇博客,我们以TableView中填充多个根据内容自适应高度的Cell来作为本篇博客的使用场景.当然Cell高度的自适应网上的解决方案是铺天盖地呢,今天我们的 ...

  6. 尝试asp.net mvc 基于controller action 方式权限控制方案可行性

    微软在推出mvc框架不久,短短几年里,版本更新之快,真是大快人心,微软在这种优秀的框架上做了大量的精力投入,是值得赞同的,毕竟程序员驾驭在这种框架上,能够强力的精化代码,代码层次也更加优雅,扩展较为方 ...

  7. Redis百亿级Key存储方案(转)

    1 需求背景 该应用场景为DMP缓存存储需求,DMP需要管理非常多的第三方id数据,其中包括各媒体cookie与自身cookie(以下统称supperid)的mapping关系,还包括了supperi ...

  8. Android 几种消息推送方案总结

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6241354.html 首先看一张国内Top500 Android应用中它们用到的第三方推送以及所占数量: 现 ...

  9. WebGIS中等值面展示的相关方案简析

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 等值面是气象.环保等相关项目上常用到的效果展示.在传统的CS项 ...

随机推荐

  1. 杯具,万达电商又换CEO

    万达电商CEO再离职.而这距他入职还差一个月才满一年. 昨晚.万达电商CEO董策告诉新浪科技6月3日已正式从万达电商离职.将去往澳洲照应家人.而谈到离职原因和万达电商时,董策以开会为由收了电话. 从2 ...

  2. Android 图标右上角添加数字提醒

    方法一:使用开源项目ViewBadger,github上的地址:https://github.com/jgilfelt/android-viewbadger 效果如图所示: <TextView ...

  3. masonry使用介绍

    Masonry使用介绍 下面是Masonry的代码地址:https://github.com/Masonry/Masonry 介绍一个简单使用: <pre><code>[vie ...

  4. Linux使用SSH远程连接方式和更改密码 ,自己空间转移过来的。

    一. 远程连接Linux系统需要一个方便的SSH连接工具putty就不错!工具在本日志的附件下载,解压密码是QQ号,云盘访问密码 90891.把远程主机ip和端口号填写上然后选择连接方式为“SSH”. ...

  5. python----------反射和设计模式

    反射: 把字符串映动态射成对象内存地址. hasattr():判断一个对象里是否有对应的字符串的方法 getattr():根据字符串去获取obj对象里的对应方法的内存地址. class Dog(obj ...

  6. SQL Server强制删除发布

    今日发现SQL Server 中 存在以前(系统还原前)的发布内容,使用鼠标->右键,选择删除,失败.   可使用语句: EXEC SP_REMOVEDBREPLICATION '发布数据库名称 ...

  7. 2015 Multi-University Training Contest 2

    附上第二场比赛的链接 从5300-5309 我是链接 顺便贴出官方题解:

  8. struts2学生信息管理系统篇章③

    package com.java1234.util; public class PageUtil { //传进来四个参数,tagetUtil是跳转链接的头部,totalNum是总个数,currentP ...

  9. Mac OS X 10.9 Mavericks 修改root密码

    Mac10.9忘记密码后有两种方式可以进去:  代码如下 复制代码 1.sudo passwd 重新输入密码即可,此方法修改了root的密码  代码如下 复制代码 2.sudo bash 输入当前用户 ...

  10. leetcode修炼之路——83. Remove Duplicates from Sorted List

    哈哈,我又来了.昨天发现题目太简单就没有放上来,今天来了一道有序链表的题.题目如下: Given a sorted linked list, delete all duplicates such th ...