POJ_1112_Team Them Up!

图论+dp poj 1112 Team Them Up! 题目链接: http://poj.org/problem?id=1112 题目大意: 有编号为1~n的n个人,给出每个人认识的人的编号,注意A认识B,B不一定认识A,让你将所有的人分成两组,要求每组的人相互认识,且两组的人数要尽可能的接近。 求出每组的人的编号。 解题思路: 图论+背包(输出物品)。 相互认识的关系不好确定分组,如果转换思路,考虑相互不认识的情况就简单好多,如果A不认 阅读详情


POJ_1112_Team Them Up!

问题:有N个人,他们两两之间存在认识关系,例如:A,B两个人,存在4种关系,A认识B,B不认识A;B认识A,A不认识B;A不认识B并且B不认识A(互相不认识);A认识B并且B认识A(互相认识);

问题:需要把这N个人分成2组,每组至少1个人,每组中任意2个人都要互相认识,要求2组人员的差值最小;

解决:

1、只有互相认识的人才能放在同一个组,也就是说前面3中情况都不能放在一个组;

2、在满足前面3中情况的两两之间连线,建立无向图G(可能不是连通图,存在连通分支);

3、在G中连线的2个人肯定是不能放在同一个分组里面,于是DFS染色,判断G是否是二分图。如果图G不是二分图,那么肯定无解;

如果G是二分图,计算每个连通分支中分成属于x[i],y[i]2个组的人数(i表示连通分支);

4、对X,Y 2组人员DP(经典的背包问题);可以对2个组之间的差值DP范围是(-100~+100),也可以对2个组的人数DP;我选择的是后一种办法。

dp[i][j](0<=i,j<=100)表示第1组为i个人,第2组为j个人这个状态;dp[i][j]=1表示存在。初始dp[0][0] = 1;然后对每个连通分支DP,转移方程:

if dp[i][j]=1

   dp[i+x[k]][j+y[k]] = 1

   dp[i+y[k]][j+x[k]] = 1

最后取个差值最小的;

 

例如:

5
2 3 5 0
1 4 5 3 0
1 2 5 0
1 2 3 0
4 3 2 1 0

最后建立图
2 - 1
2 - 3
2 - 5

DFS染色求得的分组(顺序不重要):
x y
3 1
1 0

然后DP
对于第1个连通分支:x[0]=3, y[0]=1
dp[0+x[0]][0+y[0]] = dp[0][0] = 1;
dp[0+y[0]][0+x[0]] = dp[0][0] = 1;

即:dp[3][1] = 1, dp[1][3] = 1;

对于第2个连通分支:x[1]=1, y[1]=0;
dp[3+x[1]][1+y[1]] = dp[3][1] = 1;
dp[3+y[1]][1+x[1]] = dp[3][1] = 1;
dp[1+x[1]][3+y[1]] = dp[1][3] = 1;
dp[1+y[1]][3+x[1]] = dp[1][3] = 1;

即:dp[4][1]=1,dp[3][2]=1,dp[1][4]=1,dp[2][3]=1;

 

hcaptcha无感验证码逆向实战:从接口分析到环境补全 本文详细解析了hcaptcha无感验证码的逆向实战过程。通过分析核心接口与加密逻辑,重点介绍了采用环境补全策略来模拟真实浏览器环境,从而绕过验证码检测。文章提供了从接口抓包、剖析hsw.js加密核心到使用Node.js搭建模拟环境的完整步骤,为自动化操作提供了一种稳健的解决方案。 阅读详情

相关推荐

TensorFlow_PyTorch实战:构建AI人工智能回归模型

回归分析是机器学习的核心任务之一,用于预测连续型目标变量(如房价、股票价格、用户留存时间等)。基础线性回归模型的数学原理与代码实现多项式回归模型的过拟合处理与正则化技巧自定义数据集加载与数据预处理流程动态图(PyTorch)与静态图(TensorFlow)的编程范式对比模型评估指标与可视化分析方法核心概念:对比两大框架的架构设计,解析回归模型核心组件数学原理:推导线性回归的假设函数、损失函数及优化算法算法实现:提供TensorFlow和PyTorch的完整代码示例项目实战。

AI天才研究院 1429

poj 1112 经典最小差值dp(超级好题)

题意: 给你n个人,告诉你谁认识谁。要求将他们分成两组,每组的人相互都认识,且每组人数尽量接近(人数的差值最小)。 思路: 先抽象成二分图,然后看能不能二分,如果不能直接输出,如果能,就抽象成可以dp的问题,用dp找差值最小的解。 抽象过程: 对于每一个节点,都有跟他相互连接的一堆节点,组成一个强连通分量,然后给这个强连通分量染色。问题就抽象成了这样, 有t个物品,每个物品有u价值和v价值,同时你...

Fawkess的博客 983

AI编程实战:用Spec Coding与Codex半小时重构全栈项目

这次我们来看一个能显著提升全栈开发效率的实战方法:利用 AI 编程工具 Codex 和 Spec Coding 工作流,将原本需要数周甚至一个月的全栈项目重构工期,压缩到半小时级别。这不是概念探讨,而是基于现有工具链的、可立即上手的工程实践。 对于前端开发者或全栈工程师而言,面对老旧项目重构、技术栈升级或从零搭建新项目时,最大的痛点往往是重复性、模式化的代码编写工作。手动编写 CRUD 接口、页面组件、状态管理和联调测试,耗时费力且容易出错。而 AI 辅助编程的核心价值,正是在于将开发者从这些“体力活”中解

weixin_33525298的博客 290

poj 1112 Team Them Up!(建图+dp)

http://poj.org/problem?id=1112

madaidao的专栏 730

ROS环境下UR机械臂与Realsense相机手眼标定实战指南

本文提供了在ROS环境下,对UR机械臂与Realsense相机进行手眼标定的完整实战指南。详细介绍了从环境搭建、软件包安装、硬件配置到分步数据采集与计算的完整流程,并分享了常见的避坑技巧与精度优化方法,旨在帮助开发者高效、准确地完成标定,为后续的机器人视觉应用奠定坚实基础。

sunny的博客 647

科研党必看!Zotero+Claude3插件实战:如何用AI高效阅读文献(附详细配置步骤)

本文详细介绍了如何通过Zotero与Claude3插件的深度整合,实现科研文献的高效阅读与管理。从环境配置到核心功能实战,包括智能摘要生成、精准学术翻译和论文写作辅助等,帮助科研人员大幅提升工作效率。特别适合需要处理大量文献的研究者使用。

o0p1q2r3的博客 431

poj 1112图论+DP

就这几天在扫分类练习题时在DP里看到的,竟是POJ的原题。。。不好怎么说,DP是有,但比较少,更郁闷的是前几道状态压缩DP的被我的搜索水过去了,搜索竟比标程DP快,神奇的分类练习! 饿,来讲题目吧。这道题的确很好,正确的思路很难想到,我一开始想到的就是二分图01着色,用DFS直

默默努力! 450

【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布

SAP RFC开发,PO接口配置

XLevon的博客 2万+

POJ 1112 二分图判定 + DP

题意 传送门 POJ 1112 Team Them Up! 题解 建立原图的补图,即若两个人之间不相互认识,则连一条边;此时一条边的两个端点不能分在同一组中。那么判断是否存在可行的分组方案,染色法进行二分图判定即可。由于 N≥2N\geq 2N≥2,则若补图是二分图,则满足每一组至少存在一个人。 记录补图连通分量 iii 染色为 kkk 的节点数 sum[i][k]sum[i][k]sum[i][k]。设两个组为 A,BA,BA,B,则问题转化为求解从每一个连通分量中选取染为某个颜色的节点集合加入 AAA,

neweryyy的博客 288

华为OD机试双机位C卷-用户入网定期复评(C/C++/Py/Java/Js/Go)

华为OD机试(机考)双机位C卷 【用户入网定期复评】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【用户入网定期复评】。

qq_45776114的博客 834

图文详解Trae配置Java开发环境

本文介绍了Trae开发工具的安装配置流程:首先从官网下载安装Trae,然后安装Java开发所需的Extension Pack for Java和Spring Boot Extension Pack插件。关键步骤包括修改settings.json配置文件,需指定JDK路径、Maven可执行文件路径和用户设置文件路径。所有操作均配有图示说明,并强调要替换为实际电脑路径。

谷哥的小弟 5991

poj 1112

二着色+DP 在不是互相认识的节点之间连一条边,最后得到由多个连通分量构成的图。把图中节点分为两组,保证图中每条边的两个顶点不能再同一组。对每个连通分量进行二着色,每个连通分量的点就分为了a,b两组。假定最后整个图分为1,2两组。每个连通分量的a,b两组,无非一个在1组一个在2组,通过DP,确定每个连通分量中a,b哪个在1组,哪个在2组时最有。然后就是DP的过程,没想出来,看了其他人的结题报告。...

weixin_30511107的博客 150

JeecgBoot passwordChange 任意用户密码重置漏洞复现

​JeecgBoot 框架passwordChange接口存在任意用户密码重置漏洞,未经身份验证的远程攻击者可以利用此漏洞重置管理员账户密码,从而接管系统后台,造成信息泄露,导致系统处于极不安全的状态。

0xSec 2641

poj1112 Team Them Up!

二分图染色+01背包

YHaX的博客 476

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Poj 1112 Team Them Up!

首先分析这道题目,题目给出的是一个有向图,即如果有A认识B,但不一定有B认识A。但是在所分配的组里面,任意两个人都要互相认识。 1、 先读入数据建立有向图,然后对这个有向图进行处理,如果两个点之间的边是单向边,就认为两个点之间无边(因为这两个人不互相认识),对于两个点间的双向边,即建立一条无向边(这两个人互相认识),这样就可以把一个有向图转化为一个无向图。 2、 将这个无向图转化为它的

Mr.Phoebe的专栏 1235

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Team Them Up! POJ - 1112

若两个人两两不认识这两两两一条边,判断是否能够染色。会将其分为多个可以染色的子图,再dp背包使人数尽可能少 #include&amp;lt;iostream&amp;gt; #include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; #include &amp;lt;vector&amp;g

KLChen的博客 297

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

poj 1112 Team Them Up!

题目链接:http://poj.org/problem?id=1112 题目大意:把n个人分成两组;组内成员相互之间必须认识。做法是如果两个人不是相互都认识则建边,用dfs搜出连通分量,然后dp,具体见其他人的博客。 #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; #include&lt;string.h&gt; #include&lt;str...

java开发指南博客 【转载】 177

[ZOJ1462][POJ1112] Team Them Up!

ZOJ: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=462POJ: http://poj.org/problem?id=1112题目大意:把一些人分成两组,每一组中的人满足任意两个人都相互认识,且要求两组

Dango's happy life 1265

POJ 1112 Team Them Up!

引用discuss里的一句话,好辣的一道题目。。。 一定要注意认识的关系不是互相的,先建图,把不是互相认识的人连边,然后二分图染色,把原图分成m个块,再用类似背包的东西分f[i][j][k]表示前i个块,team1有j个人,team2有k个人能否实现,注意记录一下路径,然后递归输出就可以了,题目不算很难,但是细节比较多,涉及到的东西也挺多,挺容易出错的。。。 ...

diba3342的博客 151

POJ 1112 Team Them Up! 二分图判定+01背包

题目链接: http://poj.org/problem?id=1112 Team Them Up! Time Limit: 1000MSMemory Limit: 10000K 问题描述 Your task is to divide a number of persons into two teams, in such a way, that: everyone belongs to one ...

weixin_30511107的博客 189

POJ1112 Team Them Up! 连通图 染色 DP

思路: 1.本题数据是单向边,说明是有向图,但是其实分析题目,要求是互相认识, 则单向边需要处理成无边,即有向图处理成无向图。 2.求补集。 然后求极大联通分量,在同一个连通分量里的两个人都是互相不认识。 在不同连通分量里的两个人互相认识。 3. 用dfs求联通分量

Aszxqw 1012

【练习试题】分组(poj1112 Team Them Up!)

【练习试题】分组(Poj1112 Team Them Up!) Description 你的任务是把一些人分成两组,使得: •每个人都被分到其中一组; •每个组都至少有一个人; •一组中的每个人都认识其他同组成员; •两组的成员人数尽量接近。 这个问题可能有多个解决方案,你只要输出两组人数之差的绝对值即可,或者输出这样的分组法不存在。

袋鼠与蒟蒻 1508

【poj1112】 Team Them Up!

http://poj.org/problem?id=1112(题目链接) 题意   将n个人分成两组,每个人有认识的人,要求每一组中的人互相认识,并且两组人数之差尽可能的小,求如何分。 Solution   二分图染色的裸题,比较麻烦的是dp统计答案。。下午急着去打球,照着hzwer的程序码了一遍。 代码 // poj1112 #include<algorithm>...

weixin_30483013的博客 168
上一篇: A*寻路初探(转)
下一篇: C++类构造函数初始化列表
TheAlgorithmArt
博客等级 码龄16年 6粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值