当前位置:网站首页>P3033 [usaco11nov]cow steelchase g (similar to minimum path coverage)
P3033 [usaco11nov]cow steelchase g (similar to minimum path coverage)
2022-07-06 04:03:00 【Zhong Zhongzhong】
https://www.luogu.com.cn/problem/P3033
P3033 [USACO11NOV]Cow Steeplechase G
Cried and cried , I originally wanted to watch online classes , This inscription cost me a lot 2 hours .... Fortunately, it's a blue question , Or you'll lose a lot
Seriously summarize :
1. First 250250 Data over 10000 , Be sure to use the chained forward star method to save the map .
2. The difficulty of this problem lies in the establishment of graphics , Take the vertical line segment as the upper node , The lower node intersecting with it establishes a line segment ; The horizontal line serves as the lower node , Find the maximum matching tree , This is the minimum vertex covering
3.n- This value , The rest of the line segments have nothing to do with each other , That's the answer. .
4. The rest is the template of Hungarian algorithm *
#include <bits/stdc++.h>
#define y1 y11
using namespace std;
const int inf=0x3f3f3f3f;
const int maxn=1e6+5;
int link[maxn],n,head[maxn],cnt;
int p[maxn],x1[maxn],y1[maxn],x2[maxn],y2[maxn],n1;
bool used[maxn];
struct node
{
int to,nxt;
}e[maxn];
void add_edge(int from,int to)
{
e[++cnt].to=to;
e[cnt].nxt=head[from];
head[from]=cnt;
}
bool dfs(int u)
{
for(int i=head[u];i;i=e[i].nxt)
{
int v=e[i].to;
if(!used[v])
{
used[v]=1;
if(link[v]==-1||dfs(link[v]))
{
link[v]=u;
return 1;
}
}
}
return 0;
}
int hungary()
{
memset(link,-1,sizeof(link));
int ret=0;
for(int i=1;i<=n;i++)
{
if(p[i]==2)
continue;
memset(used,0,sizeof(used));
if(dfs(i))
ret++;
}
return ret;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d%d%d%d",&x1[i],&y1[i],&x2[i],&y2[i]);
if(x1[i]>x2[i]) swap(x1[i],x2[i]);
if(y1[i]>y2[i]) swap(y1[i],y2[i]);
if(x1[i]==x2[i]) p[i]=1,n1++; // Number of vertical points
else
p[i]=2;
}
for(int i=1;i<=n;i++)
{
for(int j=i+1;j<=n;j++)
{
if(p[i]==1&&p[j]==2)
{
if(x1[i]>=x1[j]&&x2[i]<=x2[j]&&y1[i]<=y1[j]&&y2[i]>=y2[j])
add_edge(i,n1+j);
}
else if(p[i]==2&&p[j]==1)
{
if(x1[i]<=x1[j]&&x2[i]>=x2[j]&&y1[i]>=y1[j]&&y2[i]<=y2[j])
add_edge(j,n1+i);
}
}
}
printf("%d\n",n-hungary());
return 0;
}
边栏推荐
- [adjustable delay network] development of FPGA based adjustable delay network system Verilog
- Ipv4中的A 、B、C类网络及子网掩码
- Take you to wechat applet development in 3 minutes
- C form application of C (27)
- Introduction to data types in MySQL
- Basic knowledge of binary tree, BFC, DFS
- Alibaba testers use UI automated testing to achieve element positioning
- Differential GPS RTK thousand search
- AcWing 243. A simple integer problem 2 (tree array interval modification interval query)
- Cf603e pastoral oddities [CDQ divide and conquer, revocable and search set]
猜你喜欢
Custom event of C (31)
Interface idempotency
Développement d'un module d'élimination des bavardages à clé basé sur la FPGA
JVM的手术刀式剖析——一文带你窥探JVM的秘密
登录mysql输入密码时报错,ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO/YES
记一次excel XXE漏洞
STC8H开发(十二): I2C驱动AT24C08,AT24C32系列EEPROM存储
After five years of testing in byte, I was ruthlessly dismissed in July, hoping to wake up my brother who was paddling
How does technology have the ability to solve problems perfectly
An article will give you a comprehensive understanding of the internal and external components of "computer"
随机推荐
在 .NET 6 中使用 Startup.cs 更简洁的方法
The Research Report "2022 RPA supplier strength matrix analysis of China's banking industry" was officially launched
MySQL reads missing data from a table in a continuous period of time
【按鍵消抖】基於FPGA的按鍵消抖模塊開發
Basic concepts of LTE user experience
记一次excel XXE漏洞
C language -- structs, unions, enumerations, and custom types
Network security - Security Service Engineer - detailed summary of skill manual (it is recommended to learn and collect)
Le compte racine de la base de données MySQL ne peut pas se connecter à distance à la solution
Proof of Stirling formula
Plus d'un milliard d'utilisateurs de grandes entreprises comme Facebook ont été compromis, il est temps de se concentrer sur le did
MySQL 中的数据类型介绍
[introduction to Django] 11 web page associated MySQL single field table (add, modify, delete)
C#(二十七)之C#窗体应用
判断当天是当月的第几周
math_ Derivative function derivation of limit & differential & derivative & derivative / logarithmic function (derivative definition limit method) / derivative formula derivation of exponential functi
math_极限&微分&导数&微商/对数函数的导函数推导(导数定义极限法)/指数函数求导公式推导(反函数求导法则/对数求导法)
Mathematical modeling regression analysis relationship between variables
C mouse event and keyboard event of C (XXVIII)
Ybtoj coloring plan [tree chain dissection, segment tree, tarjan]