当前位置:网站首页>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;
}
边栏推荐
- DM8 archive log file manual switching
- Simple blog system
- No qualifying bean of type ‘......‘ available
- Record an excel xxE vulnerability
- 有条件地 [JsonIgnore]
- Codeforces Round #770 (Div. 2) B. Fortune Telling
- STC8H开发(十二): I2C驱动AT24C08,AT24C32系列EEPROM存储
- [disassembly] a visual air fryer. By the way, analyze the internal circuit
- KS003基于JSP和Servlet实现的商城系统
- Quick sort function in C language -- qsort
猜你喜欢

Solution to the problem that the root account of MySQL database cannot be logged in remotely

C mouse event and keyboard event of C (XXVIII)

Database, relational database and NoSQL non relational database
![Cf464e the classic problem [shortest path, chairman tree]](/img/6b/65b2dc62422a45cc72f287c38dbc58.jpg)
Cf464e the classic problem [shortest path, chairman tree]

Custom event of C (31)

SSTI template injection explanation and real problem practice

记一次excel XXE漏洞

How to modify field constraints (type, default, null, etc.) in a table
![[001] [stm32] how to download STM32 original factory data](/img/5a/02d87fe1409a9427180ecefb8326c6.jpg)
[001] [stm32] how to download STM32 original factory data

Serial port-rs232-rs485-ttl
随机推荐
/usr/bin/gzip: 1: ELF: not found/usr/bin/gzip: 3: : not found/usr/bin/gzip: 4: Syntax error:
Use js to complete an LRU cache
Yyds dry goods inventory web components series (VII) -- life cycle of custom components
Exchange bottles (graph theory + thinking)
【按键消抖】基于FPGA的按键消抖模块开发
在 .NET 6 中使用 Startup.cs 更简洁的方法
[Key shake elimination] development of key shake elimination module based on FPGA
How can programmers resist the "three poisons" of "greed, anger and ignorance"?
记一次excel XXE漏洞
User datagram protocol UDP
asp. Core is compatible with both JWT authentication and cookies authentication
Serial port-rs232-rs485-ttl
ESP32(基于Arduino)连接EMQX的Mqtt服务器上传信息与命令控制
C#(二十八)之C#鼠标事件、键盘事件
C#(二十九)之C#listBox checkedlistbox imagelist
【FPGA教程案例12】基于vivado核的复数乘法器设计与实现
MySql数据库root账户无法远程登陆解决办法
Flask learning and project practice 9: WTF form verification
Maxay paper latex template description
Simple blog system