题目描述

星云中有n颗行星,每颗行星的位置是(x,y,z)。每次可以消除一个面(即x,y或z坐标相等)的行星,但是由于时间有限,求消除这些行星的最少次数。

输入输出格式

输入格式:

第1行为小行星个数n,第2行至第n+1行为xi, yi, zi,描述第i个小行星所在的位置。

输出格式:

共1行,为消除所有行星的最少次数。

输入输出样例

输入样例#1:

3
1 2 3
2 3 1
1 3 2

输出样例#1:

2

说明

1≤n≤50000 1≤x,y,z≤500


建立最小割模型,y拆成两个,一个连x,一个连z
避免重边,最好分开连边


# include <bits/stdc++.h>
# define IL inline
# define RG register
# define Fill(a, b) memset(a, b, sizeof(a))
# define Copy(a, b) memcpy(a, b, sizeof(a))
using namespace std;
typedef long long ll;
const int _(2010), __(1e6 + 10), INF(2147483647);IL ll Read(){RG char c = getchar(); RG ll x = 0, z = 1;for(; c < '0' || c > '9'; c = getchar()) z = c == '-' ? -1 : 1;for(; c >= '0' && c <= '9'; c = getchar()) x = (x << 1) + (x << 3) + (c ^ 48);return x * z;
}int n, m, num, w[__], fst[_], nxt[__], to[__], cnt;
int S, T, lev[_], cur[_], max_flow, ans;
queue <int> Q;IL void Add(RG int u, RG int v, RG int f){w[cnt] = f; to[cnt] = v; nxt[cnt] = fst[u]; fst[u] = cnt++;w[cnt] = 0; to[cnt] = u; nxt[cnt] = fst[v]; fst[v] = cnt++;
}IL int Dfs(RG int u, RG int maxf){if(u == T) return maxf;RG int ret = 0;for(RG int &e = cur[u]; e != -1; e = nxt[e]){if(lev[to[e]] != lev[u] + 1 || !w[e]) continue;RG int f = Dfs(to[e], min(w[e], maxf - ret));ret += f; w[e ^ 1] += f; w[e] -= f;if(ret == maxf) break;}return ret;
}IL bool Bfs(){Fill(lev, 0); lev[S] = 1; Q.push(S);while(!Q.empty()){RG int u = Q.front(); Q.pop();for(RG int e = fst[u]; e != -1; e = nxt[e]){if(lev[to[e]] || !w[e]) continue;lev[to[e]] = lev[u] + 1;Q.push(to[e]);}}return lev[T];
}int main(RG int argc, RG char* argv[]){n = Read(); Fill(fst, -1); T = 2001;for(RG int i = 1; i <= 500; i++) Add(S, i, 1), Add(i + 500, i + 1000, 1), Add(i + 1500, T, 1);for(RG int i = 1, x, y, z; i <= n; i++){x = Read(); y = Read(); z = Read();Add(x, y + 500, 1); Add(y + 1000, z + 1500, 1);}while(Bfs()) Copy(cur, fst), max_flow += Dfs(S, INF);printf("%d\n", max_flow);return 0;
}

luoguP2711 小行星相关推荐

  1. 模拟撞击_正确看待小行星威胁!NASA模拟8年后300米小行星撞击地球试验

    曾经大家可能都想过小行星撞击地球会是神马效果?会是一个坑?还是一个洞?还是会怎么样呢?这个大家偶尔在新闻上看到陨石坠落后地球上有一个巨大的坑?小行星会是多大的坑呢?10M,50M,100M,300M大 ...

  2. OpenGL Multi-Indirect Draw小行星的实例

    OpenGL 小行星 先上图,再解答. 完整主要的源代码 源代码剖析 先上图,再解答. 完整主要的源代码 #include <shader.h> #include <object.h ...

  3. 2015 UESTC 搜索专题B题 邱老师降临小行星 记忆化搜索

    邱老师降临小行星 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/61 Des ...

  4. LeetCode 2126. 摧毁小行星(贪心)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个整数 mass ,它表示一颗行星的初始质量. 再给你一个整数数组 asteroids ,其中 asteroids[i] 是第 i 颗小行星的质量. ...

  5. 中国科学院大学庆生 一颗小行星以“国科大”命名

    新华网北京10月14日电(郭亚丽)14日,中国科学院大学迎来建校40周年校庆,一颗与国科大同一天"生日"的小行星被命名为"国科大星",据了解,这颗小行星由中科院 ...

  6. 小行星编号_一颗比造成通古斯爆炸更大的小行星正疾速飞来,两天后与地球相会...

    太阳系中除了太阳这颗恒星之外,还有8大行星.200多颗卫星.数百颗矮行星以及无数的彗星和小行星,其中的小行星大多状如石块,有很多都是在太阳系中到处飞行,某些会来到地球附近,甚至撞击到地球表面,给地球生 ...

  7. 使用 Python 和 Pygame 构建小行星游戏

    原文地址:https://realpython.com/asteroids-game-python/ 教程的电子文档:下载 模块pygame的官方网址:https://www.pygame.org/d ...

  8. krpano 小行星开场和自动旋转

    scene标签内<view stereographic="true"fisheye="1.0"fov="85"fovtype=&quo ...

  9. krpano 实现小行星加载完成再显示所有的热点

    刚接触krpano,发现这个神奇的玩意,做全景图开发的工具.不过这几年也是不温不火.不过感觉还是挺新奇. 刚好遇到了一些问题,比如,默认皮肤的情况下,使用小行星在加载的时候就会出现各个热点,这样子并不 ...

最新文章

  1. 为什么选择数据分析师这个职业?
  2. jsapi设计_一个简单API设计
  3. Django中配置自定义日志系统
  4. Android下拉刷新-SwipeRefreshLayout
  5. mysql 之jdbc idea版
  6. Angular4学习笔记(六)- Input和Output
  7. 蚂蚁三面题目(java开发岗):Java锁机制+JVM+线程池+事务+中间件
  8. 这才是真正的用户增长
  9. cs224 - Lecture2: Word Vectors and Word Senses
  10. php 文件 计数,文件计数问题
  11. 电子科技大学要多少分才能录取?
  12. [置顶]c# 设计模式(2)结构型
  13. [USACO07DEC]道路建设Building Roads
  14. linux基础及网新运维,Linux运维工程师常用到的Linux基础命令(一)
  15. day23面向对象第一篇
  16. AWS云迁移工具方法汇总
  17. 真_u3d程序员,基本脚本语法篇
  18. 前端:margin、padding、float一篇文章彻底理解
  19. 引申5“生命起源VS电影机械公敌VS大数据、人工智能“
  20. 【行业基础】UV打印机喷头波形和墨水关系

热门文章

  1. Java实现 LeetCode 790 多米诺和托米诺平铺(递推)
  2. ios安卓模拟器_IOS全球首款手游模拟器,牛逼哄哄但没有卵用!
  3. Arduino使用TM1637四位数码管
  4. FL Studio春节大特惠,一起嗨翻狗年
  5. python yolov5 脚本制作(第一部分:环境搭建、yolov5源码、权重文件获取、pycharm配置、pytorch下载、初次运行yolov5代码)
  6. 18. BootStrap 卡片组件Cards (2)
  7. springboot 中favicon.ico 图标不显示问题,后台日志报错找不到favicon.ico 文件问题 解决
  8. jQuery属性操作之.val()
  9. 小龙虾炒菜机器人_开挖掘机炒小龙虾?机器人餐厅?吃饭竟也能如此炫酷!
  10. android+打开apk文件怎么打开,安卓手机apk文件怎么打开