2019牛客暑期多校训练营(第二场)-D Kth Minimum Clique
题目链接: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相关推荐
- 2019牛客暑期多校训练营(第三场)H.Magic Line
2019牛客暑期多校训练营(第三场)H.Magic Line 题目链接 题目描述 There are always some problems that seem simple but is diff ...
- 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∗ ...
- 2019牛客暑期多校训练营(第四场)----E- triples II
首先发出题目链接: 链接:https://ac.nowcoder.com/acm/contest/884/E 来源:牛客网 涉及:位运算,容斥定义,dp 点击这里回到2019牛客暑期多校训练营解题-目 ...
- 暑假N天乐【比赛篇】 —— 2019牛客暑期多校训练营(第二场)
最近几天都没写博客,真是没什么时间写了,专题卡着,一周四场比赛,场场爆零,补题都补傻了.第一场还差两题可能今天补掉吧,昨天的杭电也是完全没动,感觉...很烦 第二场牛客断断续续也是补了几天...大概一 ...
- 【2019牛客暑期多校训练营(第二场) - H】Second Large Rectangle(单调栈,全1子矩阵变形)
题干: 链接:https://ac.nowcoder.com/acm/contest/882/H 来源:牛客网 题目描述 Given a N×MN \times MN×M binary matrix. ...
- 【2019牛客暑期多校训练营(第二场)- F】Partition problem(dfs,均摊时间优化)
题干: 链接:https://ac.nowcoder.com/acm/contest/882/F 来源:牛客网 Given 2N people, you need to assign each of ...
- 【2019牛客暑期多校训练营(第二场)- E】MAZE(线段树优化dp,dp转矩阵乘法,线段树维护矩阵乘法)
题干: 链接:https://ac.nowcoder.com/acm/contest/882/E?&headNav=acm 来源:牛客网 Given a maze with N rows an ...
- 【2019牛客暑期多校训练营(第二场) - D】Kth Minimum Clique(bfs,tricks)
题干: 链接:https://ac.nowcoder.com/acm/contest/882/D 来源:牛客网 Given a vertex-weighted graph with N vertice ...
- 2019牛客暑期多校训练营(第一场)E-ABBA(dp)
链接:https://ac.nowcoder.com/acm/contest/881/E 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 524288K,其他语言1048 ...
- 2019牛客暑期多校训练营(第一场)
传送门 参考资料: [1]:官方题解(提取码:t050 ) [2]:标程(提取码:rvxr ) [3]:牛客题解汇总 A.Equivalent Prefixes(单调栈) •题意 定义两个数组 u,v ...
最新文章
- PHP GD库---之商详合成分享图片
- Windows下rsync软件配置和使用【数据同步】
- 《大道至简》第八章读后感
- djano 模型查询
- (摘录)sockaddr与sockaddr_in,sockaddr_un结构体详细讲解
- linux中在工作空间编译cpp,linux tensorflow2.4.0 c++ 编译
- 二叉树 根据前序遍历 中序遍历 写出后序遍历
- C语言求一个数的倒数的平方根近似值
- 二倍图css,css二倍图的使用
- useCallback()和useMemo()的作用
- 5个例子说明jQuery.extend(...)对象扩展工具方法
- 如何用科研经费报销会务、餐饮、住宿费
- 2.1 ppt 用图形搞定 封面(2)
- 最新综述!NLP中的Transformer预训练模型
- matlab自由落体程序,基于MATLAB的自由落体运动仿真.pdf
- 4种方法!怎么把电脑上的音频传到苹果手机上?
- 沧小海笔记本之xilinx srio核的学习记录之目录
- ssh连接工具----xmanager5
- 为Debian解决Mercury MW150US无线网卡驱动
- mysql派生表(Derived Table)简单解析使用的小例子
热门文章
- 2021年软考VRRP虚拟路由冗余技术
- Leetcode 刷题笔记(九) —— 解题方法:双指针
- 树、森林、以及二叉树之间的转化
- 【acl-访问控制列表】
- 聊一聊 http2.0
- HTML5尝鲜(1):使用aduio标签打造音乐播放器
- 中国“互联网+酒店”专题研究报告2015
- 模板类的声明和定义要放在同一个文件
- getAttribute 与getParmeter 区别
- 让一个软件系统同时支持多个多种数据库灵活配置,让客户可以任意配置各个核心数据库部分...