Kth Minimum Clique(2019牛客暑期多校训练营(第二场)D,K 大完全子图)

Halcon实战:基于图像清晰度自动筛选最佳对焦图片 本文详细介绍了如何使用Halcon实现基于图像清晰度的自动筛选最佳对焦图片技术。通过分析灰度值统计和标准差等核心指标,结合实战代码示例,帮助开发者高效处理工业检测中的对焦问题,提升自动化检测的准确性和效率。 阅读详情

一.题目链接:

Kth Minimum Clique

二.题目大意:

有 n 个点,有着各自的点权.

给出连通的边.

求权值 k 大的完全子图.

三.分析:

由于 n ≤ 1e3,所以直接暴搜即可.

这里和状压 DP 有点像,搜索的是状态以及对应的权值.

考虑状态的转移,比如在什么情况下,i 点可以加入.

因为是求完全子图,所以现状态应真包含于 i 点的连接点,否则就不是完全图.

那么怎样判断是否包含呢,用 bitset 可以轻松实现这一点.

不过,这样会有重复.

这个问题可以通过规定状态枚举顺序来解决.

即只在当前状态最后一个 1 之前(如果存在的话)加点.

bitset学习

四.代码实现:

#include <set>
#include <map>
#include <ctime>
#include <queue>
#include <cmath>
#include <stack>
#include <bitset>
#include <vector>
#include <cstdio>
#include <sstream>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#define eps 1e-6
#define pi acos(-1.0)
#define ll long long int
using namespace std;

const int M = (int)1e2;
const ll inf = 0x3f3f3f3f3f;

struct node
{
    ll w;
    bitset <M + 5> bs;
};

ll w[M + 5];
bitset <M + 5> Edge[M + 5];

struct cmp
{
    bool operator()(node a, node b)
    {
        return a.w > b.w;
    }
};

ll bfs(int n, int k)
{
    ll ans = -1;
    bitset <M + 5> bs;
    priority_queue <node, vector<node>, cmp> q;
    q.push({0, bs});
    struct node p;
    while(!q.empty())
    {
        p = q.top();
        q.pop();
        k--;
        if(!k)
        {
            ans = p.w;
            break;
        }
        int pos = 0;
        for(int i = 0; i < n; ++i)
        {
            if(p.bs[i])
                pos = i;
        }
        for(int i = pos; i < n; ++i)
        {
            if(!p.bs[i] && ((p.bs & Edge[i]) == p.bs))
            {
                p.bs[i] = 1;
                q.push({p.w + w[i], p.bs});
                p.bs[i] = 0;
            }
        }
    }
    return ans;
}

int main()
{
    int n, k;
    scanf("%d %d", &n, &k);
    for(int i = 0; i < n; ++i)
        scanf("%lld", &w[i]);
    int x;
    for(int i = 0; i < n; ++i)
    {
        for(int j = 0; j < n; ++j)
        {
            scanf("%1d", &x);
            Edge[i][j] = x;
        }
    }
    ll ans = bfs(n, k);
    printf("%lld\n", ans);
    return 0;
}

 

【STK】手把手教你利用STK进行覆盖分析05-方位覆盖分析、覆盖网络检查工具和单对象覆盖分析 这一篇是我们STK覆盖模块的理论部分的最后一篇文章,之后会找尽可能多的论文来复现论文中关于STK覆盖模块的仿真的部分,到时候大家遇到不会的就可以结合前面的理论部分来看。 阅读详情

相关推荐

Delphi 12.3 精简绿色版下载

Delphi精简绿色版基于原版安装,去掉了InterBase、法语、德语、日语,只保留了Delphi Windows 32和Delphi Windows 64桌面开发,其余部分未做任何修改。Delphi精简绿色版不含任何破解,仅供学习和研究,24小时后请自行删除,如需继续使用Delphi,请购买正版。绿色版基于原版安装,未做任何精简和修改。绿色版不含任何破解,仅供学习和研究,24小时后请自行删除,如需继续使用RAD Studio,请购买正版。

全粘工程师 4294

寻找大小为k的完全子图

.CF1439B Graph Subset Problem 题意如下: 您将获得一个具有 nn 个顶点和 mm 个边的无向图。 此外,您将获得一个整数 kk 。 找到一个大小为 kk 的团或一个非空的顶点子集,使得该子集的每个顶点在该子集中至少有 kk 个邻居。 如果没有这样的集团和子集报告它。 如果顶点的子集的大小为 kk 并且在该子集的每两个顶点之间存在一条边,则该顶点子集称为大小为 kk 的团。 如果一个顶点之间存在边,则称为另一个顶点的邻居。 思路: 其实题意已经提示的已经很清楚了,就是从度数小于k

lcl1234567890lcl的博客 1071

Halcon VariableInspect (变量检查拓展)安装指南

网址2;

T 957

最大团问题(Maximum Clique Problem, MCP)

http://www.cnblogs.com/xymqx/p/3745180.html

8rfuz的博客 1097

保姆级教程:在通达信V7.611上配置欧奈尔RPS曲线(附完整公式与每日更新流程)

本文提供通达信V7.611配置欧奈尔RPS曲线的保姆级教程,涵盖从环境准备、基础设置到核心公式配置的全流程。详细讲解如何创建股票池、编写EXTRS基础公式及RPS显示公式,并附每日更新流程与实战应用技巧,帮助投资者精准捕捉强势股。

weixin_30000735的博客 458

粒子群算法实战:用Matlab解决旅行商问题(TSP)的完整代码解析

本文提供了使用粒子群算法解决旅行商问题的完整Matlab实战指南。通过将连续空间的粒子群算法进行离散化改造,采用基于交换序的策略来更新粒子位置与速度,并给出了从问题定义、数据结构设计、核心函数实现到主迭代循环的详细代码解析。文章还探讨了参数调优、性能优化及处理复杂TSP变体的进阶思路,为物流规划、路径优化等领域的工程应用提供了可直接复用的解决方案。

m2n3o4p5的博客 350

Kth Minimum Clique

Kth Minimum Clique 题意: 有一个图,每个节点都有自己的权值,找一个子图,所有节点相加的权值是第k小,(权值为0的图为第一小,也就是空图),且子图的条件是,任意两个点都相邻。 题解:当k==1时,答案是0,当k大于1时,我们先把所有节点加入优先队列中,然后优先队列以权值小的优先,当top出来一个值,再从这个节点能衍生的点加入都优先队列里面。 难点就是,如何判断加入是否与该点相邻,...

weixin_45676038的博客 252

告别双系统!用PhyFusion在麒麟V10上无缝融合Win11,文件互传、GPU加速全搞定

本文详细介绍了在飞腾D3000平台上使用PhyFusion实现麒麟V10与Win11无缝融合的解决方案。通过视觉无界、数据互通和性能无损的三大突破,PhyFusion显著提升了跨系统工作效率,支持GPU加速和文件互传,是国产化平台的革命性工具。

weixin_28707365的博客 1007

2019牛客暑期多校训练营(第二场)D Partition problem(第k大)

链接:https://ac.nowcoder.com/acm/contest/882/D 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 Given a vertex-weighted graph with N vertices, find out the K-th...

柳予欣的三味书屋~ 397

【LangChain编程:从入门到实践】实现多模态代理

【LangChain编程:从入门到实践】实现多模态代理 关键词:LangChain, 多模态代理, 自然语言处理, 机器学习, 知识图谱, 对话系统, 代码生成, AI代理 1. 背景介绍 随着人工智

欢迎来到我的优快云空间!这里聚焦AI大模型应用实战,分享前沿技术、实战案例与开发经验。 579

【WRF-Chem教程-附录 C】闪电-NOx 参数化方案详解

闪电-NOx 参数化方案详解

WW、forever的博客 974

2019牛客暑期多校训练营(第二场)D.Kth Minimum Clique

2019牛客暑期多校训练营(第二场)D.Kth Minimum Clique 题目链接 题目描述 Given a vertex-weighted graph with N vertices, find out the K-th minimum weighted clique. A subset of vertices of an undirected graph is called clique if and only if every two distinct vertices in the subset

旺崽的博客 2551

数据结构(超详细讲解!!)第十七节 队列应用(杨辉三角)

杨辉三角

2201_76115387的博客 1375

2019牛客暑期多校训练营(第二场)----D-Kth Minimum Clique

首先发出题目链接: 链接:https://ac.nowcoder.com/acm/contest/882/D 来源:牛客网 涉及:优先队列 点击这里回到2019牛客暑期多校训练营解题—目录贴 题目如下: ...

weixin_43702895的博客 417

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Kth Minimum Clique_2019牛客暑期多校训练营(第二场)

题目连接: https://ac.nowcoder.com/acm/contest/882/D Description Given a vertex-weighted graph with N vertices, find out the K-th minimum weighted clique. A subset of vertices of an undirected graph is cal...

weixin_30247307的博客 130

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

2019牛客暑期多校训练营(第二场)-D Kth Minimum Clique

题目链接:https://ac.nowcoder.com/acm/contest/882/D 题意:求给定点权无向图中,点权和第k小的完全子图的点权和。(包括空集) 思路:从空集开始,每找到一个完全子图,通过添加一个点来找到新的完全子图(只要该点与原来的所有点邻接),并存入优先队列中,每次取出权值和最小的来更新。用bitset来存储当前完全子图中存了哪些点,为了避免更新重复的子图,需...

weixin_30757793的博客 150

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

2019牛客暑期多校训练营(第二场)D Kth Minimum Clique(bitset+暴力枚举)

题目链接:https://ac.nowcoder.com/acm/contest/882/D 题目大意:给出一个无向图,让你求第k小的完全子图 解题报告:   考虑什么情况下,i点可插入。 由于完全子图的性质,当前状态应当真包含和 i 相连的边,对于i的判断可以用bitset,轻松完成状态的转移。但是这样算出来会有重复的情况,所以考虑枚举顺序的问题,每次从最后一个1开始往后找情况然后转移,...

weixin_30848775的博客 155

【2019牛客暑期多校训练营 第二场 D题 Kth Minimum Clique】【优先队列+bitset】

题目链接: https://ac.nowcoder.com/acm/contest/882/D 题意: NNN个点,每个点有对应的权wiw_iwi​,还有边eij∈{0,1}e_{ij}∈\left\{ 0,1 \right \}eij​∈{0,1},eij=1e_{ij} = 1eij​=1表示iii和jjj连通,现求第KKK大的团的值。 题解: 因为权值都为正值,所以在当前团的基础上,你每多加...

流水 169

【2019牛客暑期多校训练营(第二场) - D】Kth Minimum Clique(bfs,tricks)

题干: 链接:https://ac.nowcoder.com/acm/contest/882/D 来源:牛客网 Given a vertex-weighted graph with N vertices, find out the K-th minimum weighted clique. A subset of vertices of an undirected graph is cal...

xuanweiace的博客 509

题解 | Kth minimum Clique-2019牛客暑期多校训练营第二场D题

**题目来源于牛客竞赛:**https://ac.nowcoder.com/acm/contest/discuss 题目描述: Given a vertex-weighted graph with N vertices, find out the K-th minimum weighted clique. A subset of vertices of an undirected graph is...

lastbye的博客 168

D. Kth Minimum Clique2019牛客暑期多校训练营(第二场)

题目大意:求图的第K小团 题目思路: 首先空的团肯定是最小的,然后判断只有一个点的,然后判断只有两个点的,然后判断只有三个点的。。。。。 这和bfs很像,那就这么整,最小的入队,然后一个点的,两个点的,。。。。。得用优先队列,这儿有种十分方便的STL-----bitset 可以相当于一个二进制的数组一样,不过可以直接做数组的与运算,我们记录当前团的点用一个bitset,怎么...

qq_41645482的博客 174

2019牛客暑期多校训练营(第二场)- Kth Minimum Clique

优先队列bfs + 状态压缩 不难想到,最小团就是空集,我们可以向这个空集里加点,来找到k小团 具体做法就是用优先队列,把权值小的团出队,为了不重复加点,我们可以记录一下最后几个被加进团的点,这样下次直接从该点之后遍历,这样就可以把所有点都遍历一次了。 用bitset来保存点连接状态可以直接判断该点是否与团的每个点相连 #include <bits/stdc++.h> #de...

weixin_30739595的博客 159

2019牛客暑期多校训练营(第二场) D Kth Minimum Clique(优先队列+bitset)

题目链接:https://ac.nowcoder.com/acm/contest/882/D 题目大意:求第k小团 题目思路:直接暴力即可,从空集出发,每次取出权值最小的团然后加入新的点,要求新的点与已有团都相连,这样它加入后还是一个团,然后再把它重新扔进优先队列,如此重复即可。 以下是代码: #include<bits/stdc++.h> using na...

smilestruggler_Fly To Higher 245

2019牛客多校第二场 D Kth Minimum Clique

暴力bfs,搞个优先队列每次取出当前的最小值的团,bitset维护当前团有哪些点, 那么要新增一个点的时候,要保证新增点与在当前团中所有点都有两边,直接bitset & 一下判断 复杂度大概是 k*O(bitset<100>)*log(堆大小)。 由于bitset是常数级别的所以klog(堆大小) 在新增点的时候要保证新增的点的序号在当前团的最后一个点之后,这样才能保...

binarycopycode 284

D-Kth Minimum Clique

题意:给出n的带有权值的点,用一个n*n矩阵表示任意两个点是否有边连接,求第k小的完全子图。 本人一开始看题解也是比较懵逼,花一点时间去研究会发现这道题的解法真的太巧妙了,只想说咖啡机牛逼 解法: 我们把样例搬过来 4 12 1 2 3 4 0111 1010 1101 1010 第一步、我们用bitset把矩阵记录下来 第二步、创建优先队列(根据val从小到大排),刚开始存入二进制00,表示空集...

slass-mot-odet 411
上一篇: Flyer (HDU - 4768,二分答案 + 思维)
下一篇: Second Large Rectangle(2019牛客暑期多校训练营(第二场)H,全 1 次大子矩阵)
The___Flash
博客等级 码龄8年 79粉丝 223原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值