bzoj2744 二分图 最大团

告别BurpSuite?手把手教你用Yakit+火狐FoxyProxy实现零配置抓包与漏洞扫描 本文详细介绍了如何使用Yakit结合火狐FoxyProxy实现零配置抓包与漏洞扫描,替代传统的BurpSuite工具。Yakit作为一款轻量级国产安全测试平台,通过现代化架构和集成化功能,显著提升了渗透测试效率。文章涵盖环境搭建、代理配置、实战演练及高阶技巧,帮助安全工程师快速掌握新一代工具的使用方法。 阅读详情

啊真是一次神奇的经历,这道题在floj上的数据,说不水【我打了一个暴力居然97分简直不敢相信自己的眼睛】,说水【用hungary写最后三个点还要T】【但是在bzoj上可以愉快的A】

解法

首先我们要知道二分图中最大团的性质:

最大独立集的顶点数量=所有顶点数-最小点覆盖
最大团中顶点数量 = 补图的最大独立集中顶点数

易知:A图的补图最多选两个点组成团,B图的补图是一个二分图。
所以我们可以枚举A图的点(0/1/2个),把B图中的点如果和A图的枚举点无边相连,就删掉B图中的这个点。(也就是在最大匹配是不能用和删掉的点相连的边)
细节:
B图的最大团点数=B图原点数-本次枚举中删除的点数-本次跑的最大匹配。
总共的最大团点数=B图的最大团点数+枚举的A图点数
以及记得用时间戳优化时间

注意

大概是脑子不清醒的缘故?反反复复错了好多S×的错误。
错误1:

    for(int i=1;i<=nb;i++)
    for(int j=i+1;j<=nb;j++)
    if(!judge(b[i],b[j]))
        adde(i,j),adde(j,i);

是judge(b[i],b[j])!!
错误2:

bool hungary(int u)
{
    if(vis[u]==idc) return 0;
    for(int i=head[u];i;i=nxt[i]){
        int v=to[i];
        if(del[v]==idc||vis[v]==cnt) continue;
        vis[v]=cnt;
        if(lk[v]!=idc||!match[v]||hungary(match[v])) {
            lk[v]=idc;
            match[v]=u;
            return 1;
        }
    }
    return 0;
}

1。不用时间戳优化vis每hungary一次都要memset,对应时间戳每次都需改变
2。最后才发现match[v]=u;一直写反了!!
错误3:
没想清楚就开始写,一直写到晚上8:30不知道自己在干什么。下次!想清楚!再写!

#include<cstdio>
#include<vector>
#include<cstring>
using namespace std;
const int M=5e6;
int na,nb,m;
int b[3005];
int to[M],nxt[M],head[3005],etot;
int match[3005],vis[3005],del[3005],lk[3005],idc;
int odd[305],even[305],cnto,cnte,cnt;
int map[305][3005];
bool judge(int a,int b)
{
    //当两个B国人的友善值a、b,如果a xor b mod 2=0
//或者 (a or b)化成二进制有奇数个1,那么两个人是朋友,
    if((a^b)%2==0) return 1;
    int x=a|b,cnt=0;
    for(;x;x>>=1)
    if(x&1) cnt++;
    if(cnt%2) return 1;
    return 0;
}
void adde(int u,int v)
{
    to[++etot]=v;
    nxt[etot]=head[u];
    head[u]=etot;
}
//最后发现还是时间戳的问题
//每进行一次匈牙利就要memset一次vis也就是时间戳要++ 
bool hungary(int u)
{
    if(vis[u]==idc) return 0;
    for(int i=head[u];i;i=nxt[i]){
        int v=to[i];
        if(del[v]==idc||vis[v]==cnt) continue;
        vis[v]=cnt;
        if(lk[v]!=idc||!match[v]||hungary(match[v])) {
            lk[v]=idc;
            match[v]=u;//match[u]=v;
            return 1;
        }
    }
    return 0;
}
int getans(int x,int y)
{
//i j=0时 意味不选
    ++idc;
    int tot=0,no=0;//no--B集合中未被选择的数 
    for(int k=1;k<=nb;k++)
    if(map[x][k]||map[y][k]){
        del[k]=idc;no++;
    } 
    for(int k=1;k<=nb;k++){
        if(b[k]%2&&del[k]!=idc){
            ++cnt; 
            if(hungary(k)) tot++;//匹配数 
        }
    }
    return  nb-no-tot;
}
void init()
{
    cnto=0,cnte=0,etot=0;
    memset(head,0,sizeof(head));
    memset(vis,0,sizeof(vis));
    memset(match,0,sizeof(match));
    memset(map,1,sizeof(map));
}
int main()
{
    freopen("friend.in","r",stdin);
    freopen("friend.out","w",stdout);
    init();
    int rt=0;
    scanf("%d%d%d",&na,&nb,&m);
    for(int i=1;i<=na;i++){
        int a;
        scanf("%d",&a);
        if(a%2) odd[++cnto]=i;
        else even[++cnte]=i;
    }
    for(int i=1;i<=nb;i++) scanf("%d",&b[i]);   
    for(int i=1;i<=nb;i++)
    for(int j=i+1;j<=nb;j++)
    if(!judge(b[i],b[j]))
        adde(i,j),adde(j,i);

    for(int i=1;i<=m;i++){
        int u,v;
        scanf("%d%d",&u,&v);
        map[u][v]=0;//选了u后v可以选 
    }
    for(int i=1;i<=nb;i++) map[0][i]=0;//选了0后其他的点可以选 
    rt=max(rt,getans(0,0)); 
    for(int i=1;i<=na;i++)
        rt=max(rt,getans(0,i)+1);
    for(int i=1;i<=cnto;i++)
    for(int j=1;j<=cnte;j++)
        rt=max(rt,getans(odd[i],even[j])+2);
    printf("%d",rt);
    return 0;
}
无线通信入门:3种键控法(ASK/FSK/PSK)原理图解与实战对比 本文深入解析无线通信中ASK、FSK、PSK三种基础键控法的原理与应用。通过图解对比,阐明幅移键控(ASK)简单低成本但抗干扰差,频移键控(FSK)稳健且应用广泛,相移键控(PSK)高效但复杂。文章结合实战场景,为物联网和嵌入式开发者在选型时提供关键指导,帮助平衡数据速率、成本、功耗与抗干扰需求。 阅读详情

相关推荐

Win10下Delphi 10.4.2 (RAD Studio 10.4.2 )安装教程图解

Win10下Delphi 10.4.2 (RAD Studio 10.4.2 )安装和破解教程图解

1万+

二分图相关定理

二分图的最小顶点覆盖 定义:若选择一个点说明选择与它相连的所有边,最小顶点覆盖就是选择最少的点来覆盖所有的边。 定理:二分图最小顶点覆盖 == 二分图最大匹配数 二分图的最大独立集 定义:选出一些顶点使得这些顶点两两不相邻,则这些点构成的集合称为独立集。最大独立集为包含顶点数最多的独立集。 定理:最大独立集 = 所有顶点数 - 最小顶点覆盖 二分图的最大团 定义: 团:选出一些点,使...

weixin_30293135的博客 156

深度学习模型轻量化方法之【量化】

量化虽然有着硬件友好和功效提升的特点,但它也引入了模型性能的折衷。因此,设计有效的量化策略需要在模型大小、性能以及运算速度之间做出平衡。随着深度学习算法和硬件加速技术的快速发展,量化方法在使深度网络轻量化和提高部署效率方面持续发挥着重要作用。

m0_73916791的博客 2847

【BZOJ2445】最大团【推公式】【中国剩余定理】【扩展Lucas】

【题目链接】 公式为: 设 ans = ∑(n! / ((d!)^(n/d)*(n/d)!)) 则答案为m ^ ans 证明: 考虑现在有d * k个点,d代表每个团的点数,那么k就是个数了,记方案数为Ak。 然后现在又来了d个点,记方案数为Ak+1。(即现在有n = d * (k + 1)个点) 我们选择一个点,让这个点与其他的d - 1个点组成团,方案数为C(d *

BraketBN 1125

低代码Agent开发框架使用指南(二)—Coze平台核心功能概览

本篇分享系统介绍了字节跳动推出的低代码智能体开发平台Coze。Coze以免费易用、多模型支持和便捷的跨平台发布为核心优势,显著降低了智能体开发门槛。文章详细解析了平台的六大核心功能:扩展能力边界的插件系统、增强认知的知识库、结构化数据管理的数据库、可视化图像处理的图像流、实现复杂逻辑编排的工作流,以及处理复杂任务的多智能体协作机制,全面展现了Coze平台的强大能力。

weixin_42782643的博客 1358

【WILEY】从Revision到Online:一次投稿的完整状态演进与关键节点实战解析

本文详细解析了从Revision到Online发表的完整投稿流程,包括修改稿准备、回复信撰写、状态跟踪等关键节点。特别针对Wiley期刊,提供了实用的操作技巧和常见问题解决方案,帮助作者高效完成论文修改与发表。

weixin_29219189的博客 361

Gym - 101915D Largest Group (二分图最大团)

                                                  D、 Largest Group One day your university decided to run some statistics. They wanted to study friendship relations among boys and girls, and its effe...

Amove 730

【论文笔记】LIME: low-light image enhancement via illumination map estimation

【论文笔记】LIME: low-light image enhancement via illumination map estimation 一篇低光图像增强,引用超1000次的经典论文

weixin_45565519的博客 1794

BZOJ 2744 浅谈异或二进制分析及二分图最大团

世界真的很大 今天考试的第三题 发现了点性质但是时间复杂度分析不能过 实在是没有什么思路了写了个暴力 寄希望于评测机跑的快一点没想到居然是正解看题先:description: 在很久很久以前,曾经有两个国家和睦相处,无忧无虑的生活着。一年一度的评比大会开始了,作为和平的两国,一个朋友圈数量最多的永远都是最值得他人的尊敬,所以现在就是需要你求朋友圈的最大数目。 两个国家看成是AB两国

BerryKanry的博客 983

告别Failed to start错误!保姆级教程:用Ubuntu20.04安装盘搞定GRUB与系统服务修复

本文提供Ubuntu20.04系统启动失败的专业修复指南,详细讲解如何利用安装盘解决GRUB与系统服务问题,避免重装系统导致的数据丢失。涵盖分区挂载、chroot环境操作、服务诊断与修复等实用技巧,帮助用户高效恢复系统正常运行。

weixin_32578161的博客 331

【前端基础篇】HTML5 + CSS3 入门知识

,HTML5和CSS3核心知识

前端知识分享喵 2982

bzoj2744: [HEOI2012]朋友圈 二分图 最大团

bzoj2744: [HEOI2012]朋友圈 Description 在很久很久以前,曾经有两个国家和睦相处,无忧无虑的生活着。一年一度的评比大会开始了,作为和平的两国,一个朋友圈数量最多的永远都是最值得他人的尊敬,所以现在就是需要你求朋友圈的最大数目。 两个国家看成是AB两国,现在是两个国家的描述: 1. A国:每个人都有一个友善值,当两个A国人的友善值a、b,如

maxtir的博客 4518

机器学习扩散模型简介

​ 扩散模型是生成模型,在过去几年中越来越受欢迎,这是有充分理由的。仅在 2020 年代发布的几篇开创性论文就向世界展示了 Diffusion 模型的能力,例如在图像合成方面击败 GAN[6]。最近,从业者将看到DALL-E 2(OpenAI 上个月发布的图像生成模型)中使用的扩散模型。

gongdiwudu的专栏 4268

BZOJ 2744 [HEOI2012]朋友圈 二分图 最大团

$ \rightarrow $ 戳我进BZOJ原题 $ \rightarrow $ 戳我进洛谷原题 [HEOI2012]朋友圈 时空限制 $ \quad $ 1000ms / 128MB 题目描述 在很久很久以前,曾经有两个国家和睦相处,无忧无虑的生活着。   一年一度的评比大会开始了,作为和平的两国,一个朋友圈数量最多的永远都是最值得他人的尊敬, 所以现在就是需要你求朋友圈的最大数目。...

ayf1988的博客 150

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

BZOJ - 2744 朋友圈 (二分图上的最大团)

【题目大意】 在很久很久以前,曾经有两个国家和睦相处,无忧无虑的生活着。一年一度的评比大会开始了,作为和平的两国,一个朋友圈数量最多的永远都是最值得他人的尊敬,所以现在就是需要你求朋友圈的最大数目。两个国家看成是AB两国,现在是两个国家的描述: 1.A国:每个人都有一个友善值,当两个A国人的友善值a、b,如果a xor b mod 2=1,那么这两个人都是朋友,否则不是; 2...

weixin_30780221的博客 128

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

bzoj 2744: [HEOI2012]朋友圈 (二分图最大团)

2744: [HEOI2012]朋友圈 Time Limit: 30 Sec  Memory Limit: 128 MB Submit: 942  Solved: 296 [Submit][Status][Discuss] Description 在很久很久以前,曾经有两个国家和睦相处,无忧无虑的生活着。一年一度的评比大会开始了,作为和平的两国,一个朋友圈数量最多的永远都是最值得

clover_hxy的博客 480

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

BZOJ2744 HEOI2012朋友圈(二分图匹配)

  先考虑B国。容易发现a xor b mod 2=0即二进制末位相同,那么可以据此将所有人分成两部分,每一部分各自是一个完全图。然后再将a or b有奇数个1的边连上,现在需要求的就是这样一个图里的最大团。我们知道最大团=反图最大独立集,这个图的反图显然是一个二分图,那么跑二分图匹配就可以求出这个了。   A国同样根据二进制末位分成两部分。显然不可能选择末位相同的两人。于是暴力枚举在A国选择哪...

weixin_30478757的博客 123

bzoj2744 [HEOI2012]朋友圈 ( 二分图最大团转补图最大独立集+时间戳优化+匈牙利算法)

bzoj2744 [HEOI2012]朋友圈 原题地址:http://www.lydsy.com/JudgeOnline/problem.php?id=2744 题意: 求朋友圈的最大数目。 两个国家的描述: 1. A国:每个人都有一个友善值,当两个A国人的友善值a、b,如果a xor b mod 2=1,那么这两个人都是朋友,否则不是; 2. B国:每个人都有一个友善值,当两个B国

Bfk的博客 1165

【BZOJ 2744】 2744: [HEOI2012]朋友圈 (最大团,二分图匹配,构图)

2744: [HEOI2012]朋友圈 Description 在很久很久以前,曾经有两个国家和睦相处,无忧无虑的生活着。一年一度的评比大会开始了,作为和平的两国,一个朋友圈数量最多的永远都是最值得他人的尊敬,所以现在就是需要你求朋友圈的最大数目。 两个国家看成是AB两国,现在是两个国家的描述: 1.A国:每个人都有一个友善值,当两个A国人的友善...

weixin_30457465的博客 133

bzoj2744[HEOI2012]朋友圈

题目链接:bzoj2744 题目大意: 两个国家看成是AB两国,现在是两个国家的描述: 1.A国:每个人都有一个友善值,当两个A国人的友善值a、b,如果a xor b mod 2=1,那么这两个人都是朋友,否则不是; 2.B国:每个人都有一个友善值,当两个B国人的友善值a、b,如果a xor b mod 2=0 或者 (a or b)化成二进制有奇数个1,那么两个人是...

202

【bzoj2744】[HEOI2012]朋友圈 二分图匹配

算是一道好题了吧,竟然自己想出来了。 首先如果是一般图的最大团,那么肯定是不可做,所以这道题的条件一定有什么性质。 仔细一看,对于A国,我们分成奇数和偶数两类点,我们发现边全都是在两类点之间的,同类点之间没有边。 这不是一个二分图嘛?二分图的最大团?嘿嘿嘿,最大为2吧。 再看B国,同样的做法,但是我们发现同类点之间两两有边。 貌似有一个性质,二分图的最大独立集等于它补图的最大团(一般图适

Oxer的专栏 1915

BZOJ 2744 朋友圈 (最大团)

2744: [HEOI2012]朋友圈Time Limit: 30 Sec Memory Limit: 128 MB Description在很久很久以前,曾经有两个国家和睦相处,无忧无虑的生活着。一年一度的评比大会开始了,作为和平的两国,一个朋友圈数量最多的永远都是最值得他人的尊敬,所以现在就是需要你求朋友圈的最大数目。 两个国家看成是AB两国,现在是两个国家的描述: 1.

w4149 627

bzoj2744 [HEOI2012]朋友圈——二分图匹配

题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2744 首先,求一个图的最大团等价于求它的补图的最大独立集,而二分图的最大独立集 = 总点数 - 最大匹配数; 所以先把图转化成补图,也就是A国奇、偶点各自成团,B国奇、偶点相互连边而其内部无边,还有些A到B的边用邻接矩阵存了; 可以发现A国最多只能选出两个点来,而A国选的那些...

aodan5477的博客 142
上一篇: noip模拟10.24
下一篇: noip2016天天爱跑步
五彩蒟蒻DDD
博客等级 码龄10年 20粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值