对 @command_block 没有 implementation 做法的细化。理论来说可以通过,但因为我实现得较劣无法通过。:(

把金币中的空隙看作石子,就是一个阶梯 Nim 的模型(有总共 \(n-m\) 个石子,\(m+1\) 个石堆,其中最左边有一个独立的石堆)。于是问题转化为满足偶数编号的石堆石子数异或和非零的初始方案数。

取补集后可以给出这样一个 DP:令 \(f(k,i,j,v\in\{0,1\})\) 表示考虑第 \(k\) 个二进制位,决策好了 \(i\) 个石堆,恰好 \(j\) 个石子被分配,当前填 \(0\) / \(1\) 的方案数。

转移,考虑根据 \(k\) 来分层,然后每个层独立地转移,最后来合并。具体来说,\(f(k,i,j,v)\rightarrow f(k,i+1,j,v)\),并且 \(f(k,i,j,v)\rightarrow f(k,i+1,j+2^k,v\oplus[i+1\equiv0\pmod2])\),即考虑填 \(0\) 还是 \(1\)。令第 \(k\) 层合并后的结果为 \(s(k,i,j,v)\),最后的答案即 \(\binom{n}{m}-s(\lfloor\log_2a_i\rfloor,m+1,n-m,0)\)。合并的过程是 \(s(k,m+1,j,0)=\sum\limits_i f(k,m+1,i,0)\times s(k-1,m+1,j,0)\)。

边界即 \(f(k,0,0,0)=1,s(0,m+1,j,0)=f(0,m+1,j,0)\)。

时间复杂度 \(\Theta(nm\log_2n)\)。这是一份比较朴素的实现方法,可以帮助理解,并不能通过此题。

然后你会发现可能由于内存访问不连续等原因,朴素的实现并不能通过此题较大的数据。

考虑交换数组顺序,利用分奇偶讨论转移的特殊性来乘一个 \(\frac{1}{2}\) 的常数等方法卡常,有效,但不完全有效。

但是确实过不去,希望哪天来个卡常大师给卡进去。(

「sdoi2019 - D2T2」移动金币的更多相关文章

  1. Loj #3111. 「SDOI2019」染色

    Loj #3111. 「SDOI2019」染色 题目描述 给定 \(2 \times n\) 的格点图.其中一些结点有着已知的颜色,其余的结点还没有被染色.一个合法的染色方案不允许相邻结点有相同的染色 ...

  2. 前端构建工具之gulp(一)「图片压缩」

    前端构建工具之gulp(一)「图片压缩」 已经很久没有写过博客了,现下终于事情少了,开始写博吧 今天网站要做一些优化:图片压缩,资源合并等 以前一直使用百度的FIS工具,但是FIS还没有提供图片压缩的 ...

  3. fir.im Weekly - 如何打造 Github 「爆款」开源项目

    最近 Android 转用 Swift 的传闻甚嚣尘上,Swift 的 Github 主页上已经有了一次 merge>>「Port to Android」,让我们对 Swift 的想象又多 ...

  4. 更新日志 - fir.im「高级统计」功能上线

    距离 2016 年到来只剩 10 个日夜,fir.im 也准备了一些新鲜的东西,比如「高级统计」功能和「跳转应用商店」功能,帮助你更好地管理.优化应用,欢迎大家试用反馈:) 新增高级统计功能 这次更新 ...

  5. Notepad++ 开启「切分窗口」同时检视、比对两份文件

    Notepad++ 是个相当好用的免费纯文本编辑器,除了内建的功能相当多之外,也支持外挂模块的方式扩充各方面的应用.以前我都用 UltraEdit 跟 Emeditor,后来都改用免费的 Notepa ...

  6. 「zigbee - 1」工欲善其事必先利其器 - IAR for 8051 IDE customization

    最近在实验室做一些 Zigbee 相关的事情,然而一直没在博客上记录啥东西,也不像原来在公司有动力在 Confluence wiki 上扯东扯西.直到前些阵子,跑到 feibit 论坛上(国内较大的一 ...

  7. 「C语言」文件的概念与简单数据流的读写函数

    写完「C语言」单链表/双向链表的建立/遍历/插入/删除 后,如何将内存中的链表信息及时的保存到文件中,又能够及时的从文件中读取出来进行处理,便需要用到”文件“的相关知识点进行文件的输入.输出. 其实, ...

  8. 「C语言」Windows+EclipseCDT下的C语言开发环境准备

    之前写过一篇 「C语言」在Windows平台搭建C语言开发环境的多种方式 ,讨论了如何在Windows下用DEV C++.EclipseCDT.VisualStudio.Sublime Test.Cl ...

  9. 如何对抗 WhatsApp「蓝色双勾」-- 3 个方法让你偷偷看讯息

    WhatsApp 强制推出新功能「蓝色双勾 (✔✔)」 ,让对方知道你已经看过讯息.一众用户反应极大,因为以后不能再藉口说未看到讯息而不回覆.究竟以后 WhatsApp 是否真的「更难用」? 幸好还有 ...

  10. FileUpload控件「批次上传 / 多档案同时上传」的范例--以「流水号」产生「变量名称」

    原文出處  http://www.dotblogs.com.tw/mis2000lab/archive/2013/08/19/multiple_fileupload_asp_net_20130819. ...

随机推荐

  1. VUE路由传参的实用方式

    本文讲解了VUE项目中路由之间的传值方式,涉及到的方法都是开发时常用的,希望对大家有多帮助. 1. 方式一:使用router-link标签 1.1 params 传参 首先定义好路由 const ro ...

  2. 推荐一个 C#写的 支持OCR的免费通用扫描仪软件

    NAPS2是一个开源免费软件,体积只有6M不到,支持运行在 Windows, Mac 和 Linux操作系统中,默认就带有简体中文界面,官方默认就提供绿色版,所以解压即可使用,直接可以从官方网站下载: ...

  3. Mybatis使用级联映射时 , 查询的结果为null

    错误原因 在学习多对一映射处理中的级联方式处理映射关系时 , 发现自己查询的结果有一个为为null 于是就开始对代码进行排查 , debug ,最终发现错误 , 原来是自己映射中的 property ...

  4. Java Date与时间戳的转换问题

    Java中String与Date格式之间的转换 - NemoWang - 博客园 (cnblogs.com) 主要是String类型的时间,需要使用DateFormat来进行设置转换的格式,调用fmt ...

  5. AcWing 第87场周赛题解

    T1 移动棋子 算出数值为 \(1\) 的点离 \((3, 3)\) 的距离即可. #include <iostream> #include <cstring> #includ ...

  6. .NET周刊【7月第3期 2023-07-16】

    国内文章 揭秘 .NET 中的 TimerQueue(上) https://www.cnblogs.com/eventhorizon/p/17557821.html TimerQueue 是.NET中 ...

  7. [Spring+SpringMVC+Mybatis]框架学习笔记(三):Spring实现JDBC

    上一章:[Spring+SpringMVC+Mybatis]框架学习笔记(二):Spring-IOC-DI 下一章:[Spring+SpringMVC+Mybatis]框架学习笔记(四):Spring ...

  8. 如何修改NuGet默认全局包文件夹的位置?

    由于一些历史原因,重装系统成为Windows用户解决疑难杂症的祖传手艺.受此影响,给硬盘分盘几乎成为了一种执念,少则C.D两个盘,夸张一点的5~6个盘的也不是没有. PS:macOS和Linux一直都 ...

  9. Vue Cli起别名

    vue cli 3的写法 module.exports = { configureWebpack: { resolve:{ extensions:[], alias:{ 'assets':'@/ass ...

  10. MYSQL中JSON类型介绍

    1 json对象的介绍 在mysql未支持json数据类型时,我们通常使用varchar.blob或text的数据类型存储json字符串,对mysql来说,用户插入的数据只是序列化后的一个普通的字符串 ...