Lightoj1018 【状压DP】_weixin_30908707的博客-程序员秘密

题意:

给你一个坐标系,坐标系上有N个点,然后让你用最少的线,把这些点全部连起来;


思路:

(1+15)*15/2=90条线;
然后线上有哪些点就可以知道;
然后按照线上点的个数排序,然后删掉这个线,看一下是否满足;
但是这种想法不就是每次拿点最多的线,然后判断是否满足,这样的话很明显就不行= =
所以DP。

N<=15很明显可以状压,所以想到状压DP。
每个状态表示有几个点还没有选,然后如果点数<=2,那么答案  dp[now_status]=dp[pre_status]+1;
点用二进制数表示状态,那么我们用线存的也是一个值,表示该线上有多少个点就好了(这个才是状压DP的精髓吧,一旦结果是状压,那么条件也是状压)

用line[i][j] 表示i , j上有多少个点,line[i][j] | = (1<<id);

每次状态dp[now_status]=dp[now_status&(~line[i][j])](意思就是在之前那个没有把这条线加了的点的情况转移过来)+1(加这条线以后,线多一条);

感觉也是记忆化搜索写的方便;


转载于:https://www.cnblogs.com/keyboarder-zsq/p/6216750.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30908707/article/details/96498859

智能推荐

深入理解 Java 中的锁_蔚1的博客-程序员秘密

随着各互联网大厂交易量急剧攀升,各大厂也对程序员的并发编程能力提出了一定要求。并发编程能力也是程序猿的硬核能力,有一定的门槛,程序猿有必要进行深入理解。本 Chat 将从源码层面和实际编程应用和大家共同理解 Java 中的锁。通过本 Chat 您将学到如下内容:队列同步器是啥,有什么用;ReentrantLock , Semaphore,ReentrantReadWriteLock 的实...

python docx 提取图片_python 解析docx文档的方法,以及利用Python从docx文档提取插入的文本对象和图片..._weixin_39521009的博客-程序员秘密

首先安装docx模块,通过pip install docx或者在docx官方链接上下载安装都可以下面来看下如何解析docx文档:文档格式如下有3个部分组成 1 正文:text文档 2 一个表格。 3一个插入的文件对象。4 一个图片 这4个部分是我们在docx文档中最常见的几种格式。解析代码如下importdocxdefdocx_try():doc=docx.Document(r'E:\py_prj...

Json格式字符串 如何转化成集合_json 字符串转hashset_一叶知秋灬龍的博客-程序员秘密

今天做项目遇到个问题,需要把json字符串转化list集合进行操作,在网上搜了很多资料比如需要引用命名空间using Newtonsoft.Json;System.Web.Extensions.dllpublic DataTable JsonTdb(string strJson){DataTable dataTable = new DataTable(); //实例化DataT...

企业微信逆向分析之——自己二维码——静态分析_企业微信 逆向_鱼儿-1226的博客-程序员秘密

使用工具顶部Activity(app)ddmsjadxxposed类框架分析方法静态分析技术点接口采用动态代理方式替换跟踪界面利用顶部Activity分析Activity类:com.tencent.wework.friends.controller.FriendsShareWxCardActicity分析资源idcom.tencent.wework:id/ex2android.widget.ImageViewpublic static

中职学生的计算机应用基础学生总结,加强中职学校计算机应用基础上机应用的措施分析..._隅隅隅的博客-程序员秘密

摘 要:科技的快速发展使得计算机成为我们生活的一部分,因此我们的中职教育中也加强了对计算机教学的重视。本文主要从三个方面对计算机应用基础上机应用的措施作了具体分析。首先分析了中职学校计算机应用基础的教学现状。其次,对计算机应用基础的新旧教材作了对比。最后,提出几种解决方法,来加强中职学校的计算机应用基础教学。关键词:中职学校;计算机应用基础;教师;学生;中图分类号:P315.69 文献标识码:A ...

信息安全的密码学基于sagemath的python实现(RES、AES、RSA、ECC、哈希算法以及数字签名)_python实现ecc_Life is a joke的博客-程序员秘密

Mono-alphabetic Cipheralpha="abcdefghijklmnopqrstuvwxyz"def is_alpha_char(c):return (c.lower() in alpha)def get_alpha_index(c):return alpha.index(c.lower())def get_key_index(c,key): return key.index(c.upper())def encrypt_ma(k, plaintext): cip

随便推点

代码对比工具,我就用这6个_欣一2002的博客-程序员秘密

编者荐语程序开发的过程中,程序员会经常对源代码以及库文件进行代码对比,在这篇文章里我们向大家介绍六款程序员常用的代码比较工具。转载自丨小白学视觉WinMergeWinMerge是一款运行于Windows系统下的文件比较和合并工具,使用它可以非常方便地比较多个文档内容,适合程序员或者经常需要撰写文稿的朋友使用。WinMerge会将两个文件内容做对比,并在相异之处以高亮度的...

2018秋招面经-后端开发_weixin_30420305的博客-程序员秘密

博主渣渣本科,挣扎到十一月秋招终于结束了。面过百度/腾讯/小米/网易/搜狗/知乎/京东/360/瓜子。期间总结了一些面试题目,现在放上来。由于是博主自己的面经记录,所以涵盖不全面的话诸位请谅解。根据博主的面试经验来看,面试有一定的层次性,如bat级别公司每个点都会深入,而有些公司则只会问到表层,所以将每个领域都分为必须掌握和深入了解这两个部分。一、计算机网络基础部分TCP报头格式...

PYTHON:单引号、双引号和三双引号的区别_Rain_Void的博客-程序员秘密

非原创,转自:https://blog.csdn.net/linda1000/article/details/8315892python单引号、双引号和三双引号的区别python字符串通常有单引号('...')、双引号(&quot;...&quot;)、三引号(&quot;&quot;&quot;...&quot;&quot;&quot;)或('''...''')包围,三引号包含的字符串可由多行组成,一般可表示大段的叙述性字符串。在使用时基本没有差别,但双引号和三引号(&quot;&quot;&quot;.

4.6 浮动定位方式float_掌握float浮动定位的应用及导航链接的设置。_小昔超厉害的博客-程序员秘密

4.6 浮动定位方式float使用float属性来进行浮动定位;使用clear属性可以清除这种浮动1.float属性(设定浮动)float属性的三个取值(1)left左浮动(2)right右浮动(3)none不浮动下面是一个向左浮动的例子float属性的两个用处(1)在图文混排的时候,如果你希望图片位于文字的左侧或者右侧,那就把图片对的float属性设为left或者right;(2)在做多列盒子布局的情况,可以根据需求让盒子向左或向右浮动。float属性的特点三个盒子,默认情况

如何处理分类中的训练数据集不均衡问题_数据集均衡_天木青的博客-程序员秘密

本文参考自:http://blog.csdn.net/heyongluoyao8/article/details/49408131,有删改。 什么是数据不均衡? 在分类中,训练数据不均衡是指不同类别下的样本数目相差巨大。举两个例子: ①在一个二分类问题中...

Linux下使用vscode在线调试STM32开发板_linux st-flash_随缘|为而不争的博客-程序员秘密

Linux下使用vscode在线调试STM32开发板前言一、安装vscode Cortex-Debug扩展二、下载和安装STLink开发工具,这是Cortex-Debug需要的配套工具三、配置Cortex-Debug四、编译程序五、下载程序六、在线调试前言现在越来越多人开始喜欢在Linux环境下开发IOT或MCU程序。本人也弄了一块STM32F769I-DISCO开发板来学习,并尝试将开发板程序移植到OpenHarmony。移植期间碰到不少问题,除了编译问题外还有不少死机问题,因此必须利用在线调试工具

推荐文章

热门文章

相关标签