奇怪的道路

 

DeepinC的题解

考场AC nb%%%%%%%%%%%%%%%%%%

2019/4/27
Day1  T3 奇怪的道路


step1:复杂度分析

1<= n <= 30, 0 <= m <= 30, 1 <= K <= 8.
按照习惯,正解复杂度一般在1e6-1e8级别
而且往往复杂度关系最大的就是最小的那个数
对,抓住那个k=8打
所以说先蒙个复杂度
O(mnk)?太小
O(mn*2^k)这个差不多
所以试试状压?


step2:算法

算法一:
其实看到这么小的数据范围应该也能 <感受一下> 状压的气息吧
[任何一个城市都与恰好偶数条道路相连(0也被认为是偶数)]
奇数偶数?可以用0,1,两种状态表示,这很状压,这非常状压
设dp[n][m][state]表示已经考虑了n个城市,m条道路,所有城市状态为state时的情况数
如果你把n和p连起来,n-k<=p<n      (pow[i]表示2的i次方)

    dp[n][m][state]+=dp[n][m-1][state^pow[n]^pow[p]];
异或超棒的,当你连上一条路时,两个端点已经连上的路原来是奇数的就变成偶数,偶数就变成奇数
题库里内存128M,考试时内存256M,state太占内存,大概能处理n=15,一半分

算法二:(优化)
我说过那个最小的k是突破口吧?但是用上了吗?
根据复杂度分析,如果把那个2^n替换成2^k就可以了
那么就要把state的位数变成k,仔细一看,刚好合适
那么state的含义稍微一变:最后k座城市的状态
<交线牛逼法>很好啊,因为第i座城市的状态转移只与最后k座城市有关
<NOI2019 Day2 T1 mentor:中国好码农>ing...
码出来的时候,忽然发现一个问题,我没考虑当前城市的情况,所以state的大小其实是2^(k+1)
<王鹤松式>没关系没关系,复杂度更接近上限了,正确的可能性更高了(玄学信仰)
状态转移的式子稍微一改
    dp[n][m][state]+=dp[n][m-1][state^1^pow[n-p]];
而且因为state的表示范围在变化,所以对于每个n,dp值都需要特殊转移
    dp[n][m][(state<<1)&(pow[k+1]-1)]+=dp[n-1][m][state];
dp[n][m][0]即为答案

算法三:(无关紧要的优化)
时间小优化:
    我是个听学长话的乖孩子。。。。。。
    他说过,取模超级慢的是嘛?
    怎么避免取模呢?减法优于取模,判断优于计算
    inline long long mod(long long k){return k>=1000000007?k-1000000007:k;}
    因为代码里只存在加法,所以计算结果不会超过1000000007*2,减去一个1000000007就行了
空间大优化:
    为什么只有256M啊?NOI还有5G呢
    可见,dp式子只从n-1转移到n
    滚动数组!棒!
    式子再稍微一改
        dp[i&1][j][s]=mod(dp[i&1][j][s]+dp[i&1][j-1][s^1^pow[i-p]]);
        dp[(i&1)^1][j][s<<1]=dp[i&1][j];
    滚起来别忘了清空数组
        dp[i&1][j][s]=0;

编号     题目     状态     分数     总时间     内存     代码 / 答案文件     提交者     提交时间
#57153     
#C. 奇怪的道路
    Accepted     100     67 ms     616 KiB     C++11 / 754 B     DeepinC (吴迪)     2019-04-27 21:46:34

20个测试点,时间还不错
k=8的话目测可以处理m=n=300;

代码

 

转载于:https://www.cnblogs.com/znsbc-13/p/11268465.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/349841.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

江苏省专转本计算机题知识点,江苏专转本计算机真题17

61、在Word 2003中&#xff0c;下列关于查找操作的叙述&#xff0c;正确的是 。A、使用查找命令时&#xff0c;可以区分全角和半角字符&#xff0c;但不能区分大小写B、不支持用通配符来描述查找内容C、查找时只能从文档开始处进行D、除了可以按文字的内容进行查找&#xff0c;…

圣杯布局总结

1.左侧定宽,右侧自适应布局 html部分 <div class"parent"><div class"layout_left">左边宽度固定</div><div class"layout_main">主内容宽度自适应</div> </div>  css部分 <style>*{margin:0;paddin…

数据包捕获计算机网络实训,计算机网络-使用网络协议分析器捕捉和分析协议数据包...

广州大学学生实验报告开课学院及实验室&#xff1a;计算机科学与工程实验室2014年11月28日一、实验目的(1)熟悉ethereal的使用(2)验证各种协议数据包格式(3)学会捕捉并分析各种数据包。二、实验环境1&#xff0e;MacBook Pro2&#xff0e;Mac OS 10.10.13..Wireshark三、实验内…

背压加载文件– RxJava常见问题解答

事实证明&#xff0c;将文件作为流进行处理非常有效且方便。 许多人似乎忘记了&#xff0c;自Java 8&#xff08;3年多&#xff01;&#xff09;以来&#xff0c;我们可以很容易地将任何文件变成一行代码&#xff1a; String filePath "foobar.txt"; try (Buffered…

CISCN final 几道web题总结

因为都有源码&#xff0c;所以这里直接从源码开始分析&#xff1a; 1.Easy web 这道题本来的意思应该是通过注入来load_file读取config.php来泄露cookie的加密密钥&#xff0c;从而伪造身份进行登陆再上传shell 这里本来addslashes以后就基本没法注入&#xff0c;但是这里却多了…

初一计算机下册理论知识,初中信息技术七年级下册(第七版)

内容简介暂无内容目录1  计算机图片与动画 ……………………………………………11.1  图片处理 ……………………………………………………11.1.1  活动 …………………………………………………………1活动1  制作校园风景人物画册 …………………………………1活动2  制…

南邮计算机学院是211,南京邮电大学是211还是985

南京邮电大学曾经是双非高校&#xff0c;目前进入了世界学科建设高校。而南京农业大学是211工程大学&#xff0c;现在也是世界学科建设高校。从学校的牌子上来看&#xff0c;南京农业大学要更具有影响力。而我们今天要和大家分享的是南京邮电大学&#xff0c;那问题来了南京邮电…

java 运行 .jar 文件乱码

http://yang3wei.github.io/blog/2013/02/10/java-dfile-dot-encoding-equals-utf-8-gan-diao-luan-ma/ 启动时加参数-Dfile.encodingUTF-8转载于:https://www.cnblogs.com/easyc/p/6385385.html

php cdi_涉及CDI和JSF的过期对话的定制错误页面

php cdi自上次写博客以来已经有一段时间了。 我一直在想写一些技术博客&#xff0c;但最终却忙于其他事情。 上周&#xff0c;在Coderanch论坛上进行了非常有趣的讨论。 甚至更有趣&#xff0c;因为它涉及JBoss。 熟悉Java EE Web应用程序的开发人员会知道&#xff0c;Web应用…

石家庄计算机职业学院张秋玉,九龙坡有什么大学

2019九龙坡有哪些大学&#xff1f;九龙坡所有大学名单【教育部最新8所】九龙坡有哪些大学是广大考生和家长朋友们比较关心的&#xff0c;以下是教育部最新公布的九龙坡所有大学名单&#xff0c;包含一本、二本、三本和大专总共8所大学&#xff0c;仅供参考。2019九龙坡大学名单…

struts2.3.4 问题

原问题为&#xff1a;严重: Exception starting filter struts2java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 详细请参见http://q.cnblogs.com/q/38309/ 刚开始以为是struts2.3.4的问题&#xff0c;但最终发现为…

Java虚拟机(JVM)简介

什么是JVM Java虚拟机&#xff08;JVM&#xff09;是使计算机能够运行Java程序的抽象计算机。 JVM有三个概念&#xff1a; 1.规格 2.实施 3.实例。 该规范是正式描述JVM实现要求的文档。 具有单一规范可确保所有实现都可互操作。 JVM实现是满足JVM规范要求的计算机程序。 …

武汉数字工程研究所计算机软件分数,武汉数字工程研究所2017考研成绩查询时间:2月16日...

2017考研复试调剂群 460216643一、成绩公布湖北省2017年全国硕士研究生招生考试成绩由各招生单位公布&#xff0c;湖北省教育考试院于2017年2月16日在官网上公布统考科目成绩。武汉数字工程研究所2017考研成绩查询时间&#xff1a;2月16日二、成绩复核考生如对成绩有异议&#…

符号英语

plus 加号&#xff1b;正号 -  minus 减号&#xff1b;负号  plus or minus 正负号  is multiplied by 乘号  is divided by 除号 &#xff1d; is equal to 等于号 ≠ is not equal to 不等于号 ≡ is equivalent to 全等于号 ≌ …

408计算机考研大纲 doc,2020计算机专业408基础综合考研大纲

研究生考试信息&#xff0c;欢迎访问北京研究生招生信息网。考试大纲是我们每个考研的学生所强烈关注的&#xff0c;因为考试大纲里所公布的内容&#xff0c;是我们复习过程中必须掌握的。随着考研大军逐年壮大&#xff0c;竞争力越来越强。我们可以发现&#xff0c;虽然几乎每…

兰花三七

中文名称&#xff1a;兰花三七 拉丁学名&#xff1a;Liriope cymbidiomorpha (ined) 别称&#xff1a;小叶麦冬 科目&#xff1a;百合科、植物界 生长环境&#xff1a; 耐寒、耐热性均好&#xff0c;可生长于微碱性土壤&#xff0c;对光照适应性强。 主要价值&#xff1a; 夏季…

play!框架_在Play上使用twitter4j! 框架和安全社交很容易

play!框架在昨天的个人黑客马拉松期间&#xff0c;我启动了一个项目&#xff0c;我可能会在这里介绍。 但是&#xff0c;最酷的启示是&#xff08;再次&#xff09;启动和运行起来有多么容易。 创建一个新的Play项目 添加Secure Social并为Twitter配置它&#xff0c;并使用示…

目前个人计算机使用的电子电路主要是,计算机基础知识理论题库.xls

文档介绍&#xff1a;计算机基础知识理论题库_题源章题目 ABCD答案提示 2007ZN MK1 对两个二进制数 1与1分别进行算术加、逻辑加运算,其结果用二进制形式分别表示为________ 。1、 101、1 10、1 10、 10 C 2007 秋 JYBD 1 移动通信系统中关于移动台的叙述正确的是_____ 。移动台…

消失之物

几种方法 容斥&#xff0c;时间二分&#xff0c;dp数据结构强艹&#xff0c;主席树 不要拘泥自己思路&#xff0c;思路放开其实不难 主要讲容斥和时间二分 容斥&#xff08;其实不是容斥&#xff0c;只是类似于容斥&#xff09; 我们算出来总值&#xff0c;然后减去当前贡献即可…

JSON处理1.1:100DaysOfJavaEE8

JSON指针挑战 给定下面代码片段中的JSON文档&#xff0c;使用JSON-P 1.1中的JSON指针功能会得到什么结果&#xff1f; JSON对象的新形状如下&#xff1a; {"name": "Duke","likes": ["Java EE 8","Java","Ice Cream…