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;
}
从零开始:PLUMED与GROMACS整合安装全攻略 本文详细介绍了如何从零开始整合安装PLUMED与GROMACS,包括系统环境检查、MPI配置、PLUMED编译安装、GROMACS补丁应用及常见问题解决方案。通过本教程,研究人员可以快速完成分子动力学模拟工具的整合安装,实现增强采样和自由能计算功能。 阅读详情

相关推荐

蓝牙开发实战:如何用Wireshark抓取HCI协议包(附完整分析步骤)

本文详细介绍了如何使用Wireshark抓取和分析蓝牙HCI协议包,包括环境搭建、过滤器配置技巧、数据包深度解析及高级调试方法。通过实战案例,帮助开发者快速定位蓝牙连接问题,提升调试效率。

cuda7parallel的博客 1149

二分图相关定理

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

weixin_30293135的博客 156

PLS-PM with R 偏最小二乘路径建模 (R语言)

1. 引入 1.1. 安装plspm包 plspm 是一个用于执行偏最小二乘路径建模分析的 r 程序包。 在 CRAN 上可以免费下载: Http://cran.r-project.org/web/packages/plspm/index.html. 此后,通过以下代码在r中安装并加载该程序包即可。 install.packages("plspm") library("plspm") 2. 一些简单概念 2.1. 潜变量和观测变量 不少变量如满意度、成功指数是无法通过观测得到

Wowlittlemoon的博客 1万+

【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

电源完整性之仿真设计原理

电源完整性(Power Integrity),简称为PI,也就是大家平常听说的PI。PCB板上的电源设计也是非常重要的,不当的设计也会引起很重要的影响。所以电源完整性PI和信号完整性SI,是我们互连设计人员应该同等重视的问题。今天整理本人接触的电源完整性PI的一些原理,从不的角度去看PI,会有不同的理解,下面开始喽!!! 提到互连的电源设计,可能首先想到的电源分配网络(Power Distribution Nets),因为互连电源会有许多种,直流DC和交流AC,还有不同的电压调节模块(VRM)与不同的负载端

刘小同学的博客 7375

2021年J题:基于STM32F103的周期信号波形识别与参数测量系统设计(立创EDA+SZPT_ZXL)

本文详细复盘了2021年全国大学生电子设计竞赛J题获奖项目,手把手教你如何基于STM32F103微控制器设计并实现周期信号波形识别与参数测量系统。文章深入剖析了硬件电路设计(包括程控放大、工作点抬升与滞回比较器)与核心软件算法(如动态采样、FFT频谱分析与波形识别逻辑),并分享了DMA传输、FFT库使用等实战要点与避坑指南,为嵌入式信号处理与电赛备赛提供了宝贵经验。

weixin_32673065的博客 230

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

告别CPU空转!用STC8的SPI+DMA高效驱动上百颗WS2812B灯珠

本文详细解析了如何利用STC8单片机的SPI+DMA外设高效驱动WS2812B全彩灯珠,解决传统软件延时驱动方式在长灯带应用中的性能瓶颈。通过硬件方案设计、数据格式转换和DMA传输配置,实现高达400Hz的刷新率和低于5%的CPU占用率,适用于大规模灯光项目。

weixin_30847939的博客 397

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

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

BerryKanry的博客 983

RK3568平台(KBuild篇)KBuild编译体系

从Linux内核2.6开始,Linux内核的编译采用Kbuild系统,这和过去的编译系统有很大的不同,尤其对于Linux内核模块的编译。在新的系统下,Linux编译系统会两次扫描Linux的Makefile:首先编译系统会读取Linux内核顶层的Makefile,然后根据读到的内容第二次读取Kbuild的Makefile来编译Linux内核。kbuild,即 kernel build,用于编译 Linux 内核文件。

weixin_49303682的博客 349

用AI科研绘图全新升级!借助谷歌新发布模型Nano Banana pro实测一键绘制机制图与技术路线图,直接告别文字乱码与低画质

之前有同仁反馈,用Nano Banana画科研插图的时候,要么文字部分容易乱码,要么抓不住关键内容,画出来的效果反复修改后,还是达不到理想的效果。终于在Gemini 3发布没几天,万众期待的大香蕉模型也成功升级到了Pro版本,官方名称叫“Gemini 3 Pro Image”,实际上也就是我们说的Nano Banana 2。这次的Nano Banana Pro模型,不仅可以直出4K高清图,还能自定义比例,推理能力和中文文字的稳定性也得到了提升。

智能AI让学术科研更容易 1889

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

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

maxtir的博客 4518

【DRAM存储器五十一】LPDDR5介绍--DFE与Pre-Emphasis

简述LPDDR5的DFE和预加重应用设置

highman110的博客 706

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

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

ayf1988的博客 150

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

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

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

weixin_30780221的博客 128

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

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

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

clover_hxy的博客 480

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

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

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、付费专栏及课程。

余额充值