P2055 [ZJOI2009]假期的宿舍-(网络流最大流)

嵌入式Linux&Android开发-环境搭建 目录 一、环境要求 二、相关软件&SDK下载 三、环境安装 3.1 VMware Worksation 3.2 Ubuntu1804 3.3 VSCode安装 3.4 Samba服务器搭建 一、环境要求 编译 Android 对机器的配置要求较高: 64 位 CPU 大于12GB 物理内存+交换内存(最好16GB以上) 30GB 空闲的磁盘空间用于构建,源码树另外占用大约 25GB, 如果要编译源码则还需要 150GB 的磁盘空间。 RK官方推荐使用 Ubuntu 16.. 阅读详情
题目链接:点击进入
思路

整体思路:
源点->人->床->汇点
1)需要在学校睡的人与源点连边
2)在校生的床与汇点连边
3)认识的人互相与对方的床连边
剩下的就是跑最大流了,最后判断最大匹配数与总住宿人数的关系即可
(因为多组输入,记得该初始化的初始化)

代码
#include<cstdio>
#include<algorithm>
#include<queue>
#include<iostream>
#include<cstring>
using namespace std;
typedef long long ll;
const int maxn=1e4+10;
struct node
{
    int to;
	int next;
	int val;
}edge[maxn];
int head[maxn],tot;
void add(int u,int v,int val)
{
    edge[tot].to=v;
	edge[tot].val=val;
    edge[tot].next=head[u];
	head[u]=tot++;
}
int deep[maxn];
int cur[maxn];
int T,n,m,x,y,a[maxn],b[maxn];
ll res;
int s;
int t;
int dfs(int pos,int flow)
{
    if(pos==t) return flow;
    int rest=flow,k,i;
    for(i=cur[pos];i!=-1&&rest;i=edge[i].next)
    {
    	int v=edge[i].to;
        int val=edge[i].val;
        if(deep[v]==deep[pos]+1&&val)
        {
            k=dfs(v,min(val,rest));
            if(!k) deep[v]=0;
            edge[i].val-=k;
            edge[i^1].val+=k;
            rest-=k; 
        }
	}
	cur[pos]=i;
    return flow-rest;
}
bool bfs()
{
	memset(deep,0,sizeof(deep));
    deep[s]=1;
    queue<int>q; 
    q.push(s);
    cur[s]=head[s];
    while(q.size())
    {
        int now=q.front();
		q.pop();
		for(int i=head[now];i!=-1;i=edge[i].next)
		{
			int v=edge[i].to;
            if(edge[i].val&&!deep[v])
            {
            	q.push(v);
            	cur[v]=head[v];
                deep[v]=deep[now]+1;
				if(v==t) return 1;
            }
		}
    }
    return 0;
}
void dinic()
{
	while(bfs())
        res+=dfs(s,0x3f3f3f3f);
}
int main()
{
	ios::sync_with_stdio(false);
	cin>>T;
	while(T--)
	{
		int sum=0;
		memset(head,-1,sizeof(head));tot=0;res=0;
		cin>>n;
		s=2*n+1,t=2*n+2;
		for(int i=1;i<=n;i++)
		{
			cin>>a[i];
			if(a[i]==1)
			{
				add(i+n,t,1);
				add(t,i+n,0);
			}
		}
		for(int i=1;i<=n;i++)
		{
			cin>>b[i];
			if(a[i]==1&&b[i]==0)
			{
				add(s,i,1);
				add(i,s,0);
				add(i,i+n,1);
				add(i+n,i,0);
				sum++;
			}
			else if(a[i]==0)
			{
				add(s,i,1);
				add(i,s,0);
				sum++;
			}
		} 
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=n;j++)
			{
				cin>>x;
				if(x==1)
				{
					add(i,j+n,1);
					add(j+n,i,0);
					add(j,i+n,1);
					add(i+n,j,0);
				}
			}
		}
		dinic();
		if(res>=sum) cout<<"^_^"<<endl;
		else cout<<"T_T"<<endl;
	} 
	return 0;
}
基于STM32单片机设计的红外人脸测温仪(QT上位机) 基于STM32单片机设计的红外人脸测温仪(QT上位机)是一种结合红外测温和人脸识别技术的设备,可以快速、非接触地测量人体体温并识别身份,广泛应用于人员密集场所的体温筛查和出入管理。基于STM32单片机设计的红外人脸测温仪是一种功能实用、易于使用的人脸测温设备,可以有效提高测温效率和识别准确率,广泛应用于各类人员密集场所的体温筛查和出入管理。 阅读详情

相关推荐

基于树莓派与ROS的桌面机器人开发:从硬件组装到AI集成实战

嵌入式系统与机器人操作系统(ROS)是构建智能硬件的核心技术基础。嵌入式系统为设备提供了专用计算与控制能力,而ROS作为机器人开发的中间件框架,通过节点、话题和服务等机制,实现了感知、决策、执行等模块间的松耦合通信与高效集成。这种架构极大地提升了机器人系统的可扩展性与可维护性,其技术价值在于能够将复杂的AI算法,如计算机视觉和语音识别,与实体硬件执行机构无缝结合,从而快速构建出具备环境交互能力的智能体。在桌面机器人、教育套件及服务机器人原型开发等应用场景中,该技术栈尤为适用。本文以开源的Wall-E桌面机器

weixin_26775679的博客 650

洛谷 P2055 [ZJOI2009]假期的宿舍 题解

【题目描述】 学校放假了......有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题。比如A和B都是学校的学生,A要回家,而C来看B,C与A不认识。我们假设每个人只能睡和自己直接认识的人的床。那么一个解决方案就是B睡A的床而C睡B的床。而实际情况可能非常复杂,有的人可能认识好多在校学生,在校学生之间也不一定都互相认识。我们已知一共有 nn 个人,并且知道其中每个人是不是本校...

huangdanning的博客(.cpp) 623

Android Studio中把llama.cpp编译Android .so

本文介绍了一个在Android Studio中集成llama.cpp的最小Demo实现方案,通过JNI将llama.cpp编译为Android.so库,实现本地加载GGUF模型进行文本生成。文章详细说明了项目结构配置(SDK≥30,NDK≥28)、CMake编译设置、Kotlin-JNI-C++的完整调用链实现,以及模型文件部署方式。该Demo采用每次请求新建上下文的简化设计,包含加载模型、生成文本、资源释放等核心功能,并提供了错误排查建议。项目舍弃了上下文保持等复杂功能以确保稳定性,适合作为端侧大语言模型

Zhang Phil 514

洛谷 P2055 [ZJOI2009] 假期的宿舍(最大流)

我们可以求出从源点到汇点的最大流,如果最大流的值与源点。连边的数量相等,则存在一种方案,否则不存在方案。再根据所有的认识关系,从。

weixin_74754298的博客 619

高效 DEM 拼接

通过以上步骤的系统实施,能够实现高效、准确的大型地理信息系统 DEM 数据拼接,满足复杂和大规模项目的应用需求。

llhllq2015的博客 1032

vesta软件_分子动力学计算实战:利用 OVITO 软件找弗伦克尔缺陷和位错环分析

今天继续和大家分享这篇纯分子动力学(MD)的 Nat. Comm. 文章(DOI:10.1038/s41467-018-07102-3)。上期推文(从一篇 Nat. Comm. 学习经典分子动力学基本知识和相关软件基本操作 (一)),我们借用该文章的 fig.1 简单介绍了如何用文中所提到的 LAMMPS 软件来实现材料中级联碰撞过程。但是,想完整的展示类似该文章的 fig.1,单纯利用...

weixin_39524842的博客 5982

P2055 [ZJOI2009]假期的宿舍(二分图&最大流)

P2055 [ZJOI2009]假期的宿舍(二分图&最大流) 人和床的匹配,关键是建图。 首先在校且不回家的人 add(i,i) 然后如果i和j认识,并且j在学校,那么建边add(i,j) 然后对于(不在学校或者(在学校不回家的))人进行匹配。 时间复杂度:O(nm)O(nm)O(nm) #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; c

Harris-H的博客 481

深入理解光流法外推雷达回波

背景介绍 鉴于本人实在太过疲惫和劳累,一些简单的便于理解的废话就不在记录,耗费两天时间研究了一下光流法,本帖用于记录学习过程中源码的难点细节。 使用光流预测的核心有两个利用多张连续回波图像(变分)或者相邻两张回波图(交叉相关,LK等)计算出光流场(速度矢量场),之后利用半拉格朗日方法进行外推。 半拉格朗日方法 三时间步半拉格朗日方法,其核心公式如下 但这个有点难理解,但看一维的图就很好理解 它的核心就是迭代求Am(位移矢量),如果理解困难的话,其实质上就是通过未来迭代(猜)出当前时刻的Am找到过去的假设

weixin_44695861的博客 6033

洛谷 P2055 [ZJOI2009]假期的宿舍(最大流)

传送门 很明显是二分图最大匹配,不过似乎网络流更快,所以这里讲网络流吧。 每张床向汇点连流量为1的边,源点向每个在学校住的在校学生或其他学校的学生连流量为1的边,每个要在学校住的学生向自己的床与自己认识的人的床连边,然后跑最大流。如果最大流=要在学校住的学生人数,就表示存在方案,反之则不存在。 Code: #include&lt;cstdio&gt; #include&lt;cst...

Dawn_LLLLLLL 357

AI 编程助手新玩法:用 Claude Code 一键调用国产大模型(DeepSeek/Kimi/GLM 对比)

本文深入评测了Claude Code与三大国产大模型(DeepSeek、Kimi、智谱GLM)的集成效果,详细对比了它们在代码生成质量、响应速度和特殊场景支持度等方面的差异。通过实测数据和实战技巧,帮助开发者选择最适合的AI编程助手组合,提升开发效率。

weixin_30955617的博客 487

鸿蒙【ArkTS】使用TS装饰器封装网络请求HTTP

在HarmonyOS应用开发中,通过HTTP访问网络,可以使用官方提供的@ohos.net.http模块。但是官方提供的直接使用不太好使用,需要封装下才好。这里采用TS的装饰器实现AOP效果 完成前后端接口风格的统一

weixin_60376559的博客 5609

题解:P2055 [ZJOI2009] 假期的宿舍

题解:P2055 [ZJOI2009] 假期的宿舍

qq_61935738的博客 220

OpenClaw进阶实战(五):多模态能力扩展——让OpenClaw看懂图片、听懂语音

本文介绍了如何在OpenClaw中实现多模态能力,包括图像文字识别(OCR)、图像描述和语音识别(ASR)三种技能。通过PaddleOCR、BLIP和Whisper等开源工具,可以本地化部署这些功能,保护数据隐私。文章详细展示了三个独立技能模块的实现代码,并提出了一个"多模态智能管家"方案,能自动识别消息类型(文本/图片/语音)并调用相应处理技能。该方案适用于电商客服、会议纪要等真实业务场景,使AI助手具备"眼睛"和"耳朵"的多模态交互能力。

PeterPan的博客 160

洛谷OJ:P2055 [ZJOI2009]假期的宿舍(最大流)

分析:一道求二分图最大匹配的题,就是建模比较绕其他没什么,首先我们要清楚人和床是需要分开的,所有需要2*n个结点,我们把前1~n结点当成人,n+1~2*n结点当成床,那么问题就简单了,我们只需要将床与汇点连接,需要床的人与源点连接,再将人与自己的床以及认识的人的床连接即可,最后求出的最大流如果与需要床的人数相同的话就可以使每个人都有床睡#include &lt;iostream&gt; #incl...

308宿舍的鶸 351

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

P2055 [ZJOI2009]假期的宿舍

首先先理清楚一下这题的关系,每一个人要么是学校里的学生,要么不是。而是学校里学生,要么回家了,要么没回家。那么可以提供床位的,就是学校的在校学生,而需要床位的,就是不是这个学校的学生的人,和在学校没回家的在校学生。一个人占一张床,而在校学生自己可以睡自己的床,因此我们把所有的人分成两部分,需要床的和提供床的,在校学生不回家的两边都有(建一条自己到自己的边),根据认识关系建边,因此我们得到了二分图,...

CCCCTong的博客 283

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

[ZJOI2009]假期的宿舍【二分图最大匹配】

题目链接 P2055 [ZJOI2009]假期的宿舍 关于这道题的做法,我所使用的算法可能会复杂了,实际上我们要先理清楚题意(尽管它是道中文题)。 首先,认识关系是没有传递性的,譬如A认识B,B认识C,C认识D,C和D要回家了,A和B是外校的,不代表B能先睡C的给A暖暖炕头再搬去C认识的D的床位,然后A睡B之前睡的C的床位。 若A认识B,那么只能A去睡B的床,不是说B认识X,A就...

既然弱小,就只顾变强就是了 186

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

洛谷 P2055 [ZJOI2009]假期的宿舍

网络流最大流

sdfzrlt的博客 601

P2055 [ZJOI2009]假期的宿舍(匈牙利算法或者最大流)

题目链接 题意: 学校放假了,一部分学生回家一部分留校,然后有一些外校生来找他们的朋友玩。怎么安排住宿是个问题,他们所有人都有一个毛病只想睡朋友或者自己的床。问是否有一个合理的住宿方案? 看到这个很容易会想到二分图最大匹配,先将整个图分成两部分:人和床,求人和床的最大匹配。首先是本校生他才会有床,床的编号就是他的编号,然后对于每一个外校生找最大匹配。对于留校的本校生先让他睡他自己的床,还需要给他与他的床之间连一条边,刚开始想着留校生已经匹配好床了就没连结果wa了一个点,可能会存在留校生先把床让给了朋友,然后

qq_45288870的博客 280

P2055[ZJOI2009]假期的宿舍

题目描述 学校放假了 · · · · · · 有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题。 比如 A 和 B 都是学校的学生,A 要回家,而 C 来看B,C 与 A 不认识。我们假设每个人只能睡和自己直接认识的人的床。那么一个解决方案就是 B 睡 A 的床而 C 睡 B 的床。而实际情况可能非常复杂,有的人可能认识好多在校学生,在校学生之间也不一定都互相认识。...

aishang6250的博客 159

P2055 [ZJOI2009]假期的宿舍 网络流(二分图匹配)

题目 题目描述 学校放假了 · · · · · · 有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题。 比如 A 和 B 都是学校的学生,A 要回家,而 C 来看B,C 与 A 不认识。我们假设每个人只能睡和自己直接认识的人的床。那么一个解决方案就是 B 睡 A 的床而 C 睡 B 的床。而实际情况可能非常复杂,有的人可能认识好多在校学生,在校学生之间也不一定都互相认识。 我...

戒毒戒赌戒网瘾,学习学问学做人——好好学习 288

(网络流)[ZJOI2009]假期的宿舍

https://www.luogu.org/problemnew/show/P2055 学校放假了 · · · · · · 有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题。比如 A 和 B 都是学校的学生,A 要回家,而 C 来看B,C 与 A 不认识。我们假设每个人只能睡和自己直接认识的人的床。那么一个解决方案就是 B 睡 A 的床而 C 睡 B 的床。而实际情况可能非常...

weixin_40588429的博客 208

P2055 [ZJOI2009]假期的宿舍(二分图的最大匹配)

题目描述 学校放假了 · · · · · · 有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题。 比如 A 和 B 都是学校的学生,A 要回家,而 C 来看B,C 与 A 不认识。我们假设每个人只能睡和自己直接认识的人的床。那么一个解决方案就是 B 睡 A 的床而 C 睡 B 的床。而实际情况可能非常复杂,有的人可能认识好多在校学生,在校学生之间也不一定都互相认识。 我们已知...

一只谜谜怪的博客 249

luogu P2055 [ZJOI2009]假期的宿舍

题目传送门:https://www.luogu.org/problemnew/show/P2055题意:有n个人,他们中有在校学生,对于这些在校学生,他们都有床铺,有人回家,有人留校。每个人,他们都有各自的朋友,他们可以睡自己朋友的床铺。现在,非在校生来学校,他们都需要睡觉。问能否满足每个在校的人都有床铺睡觉。思路:网络流(或者二分图匹配,不喜欢,不打)还是很容易看出来的。构图:1.源点向需要床的...

zsyz_ZZY的博客 275

luogu2055 [ZJOI2009]假期的宿舍

最大流

ACoder 427

[ZJOI2009]假期的宿舍

题目 https://www.luogu.org/problemnew/show/P2055 思路 这题可以用二分图最大匹配,也可以用网络流。 这是网络流的做法 建图 把所有床跟汇点连边(及在校学生的床)(用i+n表示),把所有需要床的人与源点连边。把认识的人连边。权值均为一。 做法 跑dinic。 注意 这里有多组数据,所以要初始化。 代码 #include&...

Brute♂force 475

Luogu P2055 [ZJOI2009]假期的宿舍

  一道网络有关的问题,还是一句话   网络流重在建模!   这里主要讲两种算法。   1.二分图匹配:   分析题意,我们可以知道题目要求是让所有留在学校的人都能有床睡   而所有留在学校的人=本校不回家的人+外校的人;     床的总量=所有本校生的数量;   理解题意后,我们考虑将所有人的情况拆开来考虑,即:   每个人有两个信息:人和他的床(如果他有的话)...

weixin_30677617的博客 90
上一篇: P1402 酒店之王-(网络流最大流)
下一篇: P2057 [SHOI2007]善意的投票 / [JLOI2010]冠军调查( 最小割 )
Cosmic_Tree
博客等级 码龄7年 134粉丝 337原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值