题目链接:https://ac.nowcoder.com/acm/contest/882/D

题意:求给定点权无向图中,点权和第k小的完全子图的点权和。(包括空集)

思路:从空集开始,每找到一个完全子图,通过添加一个点来找到新的完全子图(只要该点与原来的所有点邻接),并存入优先队列中,每次取出权值和最小的来更新。用bitset来存储当前完全子图中存了哪些点,为了避免更新重复的子图,需要记录每个状态上一次添加的是哪个点,下次遍历该点之后的点,从而防止重复。

AC代码:

#include<cstdio>
#include<algorithm>
#include<bitset>
#include<queue>
using namespace std;typedef long long LL;
typedef bitset<105> BS;struct node{LL sum;int pos;BS vis;node(){}node(LL s,int p,BS v){this->sum=s;this->pos=p;this->vis=v;}bool operator < (const node& other) const{return sum>other.sum;}
};int n,k;
LL a[105];
BS b[105];
char s[105];int main(){scanf("%d%d",&n,&k);for(int i=1;i<=n;++i)scanf("%lld",&a[i]);for(int i=1;i<=n;++i){scanf("%s",s);for(int j=1;j<=n;++j)b[i][j]=s[j-1]-'0';}BS tmp;tmp.reset();priority_queue<node> pq;pq.push(node(0,1,tmp));while(!pq.empty()){node now=pq.top();pq.pop();if(--k==0){printf("%lld\n",now.sum);return 0;}for(int i=now.pos;i<=n;++i)if((b[i]&now.vis)==now.vis){now.vis[i]=1;pq.push(node(now.sum+a[i],i+1,now.vis));now.vis[i]=0;}}printf("-1\n");return 0;
}

转载于:https://www.cnblogs.com/FrankChen831X/p/11228576.html

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

  1. 2019牛客暑期多校训练营(第三场)H.Magic Line

    2019牛客暑期多校训练营(第三场)H.Magic Line 题目链接 题目描述 There are always some problems that seem simple but is diff ...

  2. 2019牛客暑期多校训练营(第五场)C generator 2 (BSGS)

    2019牛客暑期多校训练营(第五场)C generator 2 思路 x0=x0x_0 = x_0x0​=x0​ x1=a∗x0∗bx_1 = a * x_0 * bx1​=a∗x0​∗b x2=a∗ ...

  3. 2019牛客暑期多校训练营(第四场)----E- triples II

    首先发出题目链接: 链接:https://ac.nowcoder.com/acm/contest/884/E 来源:牛客网 涉及:位运算,容斥定义,dp 点击这里回到2019牛客暑期多校训练营解题-目 ...

  4. 暑假N天乐【比赛篇】 —— 2019牛客暑期多校训练营(第二场)

    最近几天都没写博客,真是没什么时间写了,专题卡着,一周四场比赛,场场爆零,补题都补傻了.第一场还差两题可能今天补掉吧,昨天的杭电也是完全没动,感觉...很烦 第二场牛客断断续续也是补了几天...大概一 ...

  5. 【2019牛客暑期多校训练营(第二场) - H】Second Large Rectangle(单调栈,全1子矩阵变形)

    题干: 链接:https://ac.nowcoder.com/acm/contest/882/H 来源:牛客网 题目描述 Given a N×MN \times MN×M binary matrix. ...

  6. 【2019牛客暑期多校训练营(第二场)- F】Partition problem(dfs,均摊时间优化)

    题干: 链接:https://ac.nowcoder.com/acm/contest/882/F 来源:牛客网 Given 2N people, you need to assign each of ...

  7. 【2019牛客暑期多校训练营(第二场)- E】MAZE(线段树优化dp,dp转矩阵乘法,线段树维护矩阵乘法)

    题干: 链接:https://ac.nowcoder.com/acm/contest/882/E?&headNav=acm 来源:牛客网 Given a maze with N rows an ...

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

    题干: 链接:https://ac.nowcoder.com/acm/contest/882/D 来源:牛客网 Given a vertex-weighted graph with N vertice ...

  9. 2019牛客暑期多校训练营(第一场)E-ABBA(dp)

    链接:https://ac.nowcoder.com/acm/contest/881/E 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 524288K,其他语言1048 ...

  10. 2019牛客暑期多校训练营(第一场)

    传送门 参考资料: [1]:官方题解(提取码:t050 ) [2]:标程(提取码:rvxr ) [3]:牛客题解汇总 A.Equivalent Prefixes(单调栈) •题意 定义两个数组 u,v ...

最新文章

  1. PHP GD库---之商详合成分享图片
  2. Windows下rsync软件配置和使用【数据同步】
  3. 《大道至简》第八章读后感
  4. djano 模型查询
  5. (摘录)sockaddr与sockaddr_in,sockaddr_un结构体详细讲解
  6. linux中在工作空间编译cpp,linux tensorflow2.4.0 c++ 编译
  7. 二叉树 根据前序遍历 中序遍历 写出后序遍历
  8. C语言求一个数的倒数的平方根近似值
  9. 二倍图css,css二倍图的使用
  10. useCallback()和useMemo()的作用
  11. 5个例子说明jQuery.extend(...)对象扩展工具方法
  12. 如何用科研经费报销会务、餐饮、住宿费
  13. 2.1 ppt 用图形搞定 封面(2)
  14. 最新综述!NLP中的Transformer预训练模型
  15. matlab自由落体程序,基于MATLAB的自由落体运动仿真.pdf
  16. 4种方法!怎么把电脑上的音频传到苹果手机上?
  17. 沧小海笔记本之xilinx srio核的学习记录之目录
  18. ssh连接工具----xmanager5
  19. 为Debian解决Mercury MW150US无线网卡驱动
  20. mysql派生表(Derived Table)简单解析使用的小例子

热门文章

  1. 2021年软考VRRP虚拟路由冗余技术
  2. Leetcode 刷题笔记(九) —— 解题方法:双指针
  3. 树、森林、以及二叉树之间的转化
  4. 【acl-访问控制列表】
  5. 聊一聊 http2.0
  6. HTML5尝鲜(1):使用aduio标签打造音乐播放器
  7. 中国“互联网+酒店”专题研究报告2015
  8. 模板类的声明和定义要放在同一个文件
  9. getAttribute 与getParmeter 区别
  10. 让一个软件系统同时支持多个多种数据库灵活配置,让客户可以任意配置各个核心数据库部分...