首页 > 其他分享 >「闲话随笔」Yubai 数数

「闲话随笔」Yubai 数数

时间:2023-10-01 21:13:31浏览次数:35  
标签:数数 闲话 复杂度 下部 上部 Yubai 随笔

「闲话随笔」Yubai 数数

点击查看目录

目录

国庆快乐!

可是已经开学了,奥赛生只配放 7 + 3 = 2- .

衡实初中部为啥没有集训啊?可能是因为以前机房在衡实只能去衡实集训,所以就把初中带上了吧,本来不会集训的 .

诶不对好像是不是初中国庆一直不集训 .

居然已经闲话一周年了,但是好像一共没写几篇闲话 .

有开个日记记录每天的尝试,结果咕了 . 我是这样的 .

推歌:《UNDER THE TREE》.

Amazing Counting problem!

给定两个排列 \(p\) 和 \(q\),如果在 \(p\) 选了一个元素,那么在 \(q\) 中标记相同位置和相同数值的元素 .

例如 \(p:(1, 3, 2, 4), q:(1, 2, 3, 4)\),当选择 \(p_2 = 3\) 时,相同位置的 \(q_2\) 被标记,相同值的 \(q_3 = 3\) 也被标记 .

求出在 \(p\) 中选出 \(i\) 个数,\(q\) 中标记 \(j\) 个数的方案数 .

和 5k 一起想的,sto 5k orz .

考虑建二分图,发现一定连出若干个长度为偶的环 . 感性理解是对的,但是我不知道怎么写成严谨的证明 .

不难发现问题转化为求若干条不交的路径,覆盖 \(i\)个上部点和 \(j\) 个下部点 .

对于一条路径只有两种情况:一整个环或是起点和终点均为下部点,前者显然,后者考虑以一个上部点为起点时,与它相连的两个下部点必选,它就不是起点了 .

不同环互不影响,考虑对每个环单独计数 . 设 \(f_{i, j, k}\) 表示当前的环上,前 \(i\) 个点中选了 \(j\) 个上部点,\(k\) 个下部点 . 拆坏为链后前缀和转移 . 均摊下来总复杂度为 \(O(n^3)\) .

考虑合并环的贡献 . 设 \(g_{i, j, k}\) 表示前 \(i\) 个环选了 \(j\) 个上部点,\(k\) 个下部点,枚举当前环贡献多少个上部点和下部点,可以 \(O(n^5)\) 转移出答案 . 大概是 \(g_{i, j, k} = \sum_{x = 0}^{j}\sum_{y = 0}^{k}g_{i - 1, j - x, k - y}f_{i, x, y}\),上下界也许需要卡一下 .

感觉复杂度瓶颈在合并上于是仔细观察,发现是一个天然的卷积形式,于是考虑使用科技 poly-2D,可以做到总时间复杂度 \(O(n^3\log n)\) .

但是你会发现没有一个上界可以卡住,这个复杂度是非常非常松的 .

image


其实并不很好,因为原题给出了数据范围 \(n\le 3000\),应该存在一个 \(O(n^2)\) 的优秀做法,那么作者有什么美妙的解法呢?

作者亲自回复!

image

有没有老哥可以提供一个更好的解法?感觉还挺有意思的 .

image

标签:数数,闲话,复杂度,下部,上部,Yubai,随笔
From: https://www.cnblogs.com/Keven-He/p/chat_20231001.html

相关文章

  • 9.30随笔
    →信条部分早起晚睡2/88,+0举止厚重12/360,,+1穴位按摩2/30,+1每日反省1/90,+0总结→持续摆烂中→学习部分[√]单词[√]跑步→项目进度无......
  • 2023-09-30:用go语言,给你一个整数数组 nums 和一个整数 k 。 nums 仅包含 0 和 1, 每一
    2023-09-30:用go语言,给你一个整数数组nums和一个整数k。nums仅包含0和1,每一次移动,你可以选择相邻两个数字并将它们交换。请你返回使nums中包含k个连续1的最少交换次数。输入:nums=[1,0,0,1,0,1],k=2。输出:1。来自左程云。答案2023-09-30:步骤描述:1.......
  • 随笔-责任链模式
    将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。abstractclassHandler{privateHandlernext;publicvoidsetNext(Handlernext){this.next=next;}public......
  • java——mysql随笔
         索引简介:                                                                 1 ......
  • 鸿蒙DevEco studio的安装(随笔)
    首先就是按照官方文档正常安装但是我在在安装界面出现这个错误execute'ohpminstall'failed.而我在文档中没有找到解决办法,最后在一个博客里的解决办法就是重新安装(博客地址:https://www.cnblogs.com/mayism123/p/17636872.html)而重新安装的时候参考官方文档:https://develo......
  • 我的第一篇博客园随笔
    终于盼望着国庆假期的到来了,晚上闲来无事,打算完成以下老师的小任务--完成自己的博客设计。可能是CSDN的大众流行,加上现在程序员网站如雨后春笋般的出现,再加上个人博客页面越来越多,我对“博客园”的印象其实并不是很深刻,当我现在敲这篇文章,会有一种在2007年用诺基亚手机发短信......
  • 2023-09-13:用go语言,给定一个整数数组 nums 和一个正整数 k, 找出是否有可能把这个数组
    2023-09-13:用go语言,给定一个整数数组nums和一个正整数k,找出是否有可能把这个数组分成k个非空子集,其总和都相等。输入:nums=[4,3,2,3,5,2,1],k=4。输出:True。答案2023-09-13:第一种算法(canPartitionKSubsets1)使用动态规划的思想,具体过程如下:1.计算数组nums的总和sum......
  • 9.27随笔
    JavaScript拥有动态类型JavaScript拥有动态类型。这意味着相同的变量可用作不同的类型:实例varx;              //x为undefinedvarx=5;          //现在x为数字varx="John";     //现在x为字符串变量的数据类型可以使用 ......
  • linux9.20课堂随笔
    9.20课堂随笔一、文件操作1.创建文件/查看文件 2.head命令:“-n”查看前几行 3.tail命令:“-n”查看后几行 4.grep命令:对内容进行过滤,搜索关键词 5.复制文件“cp”  6.移动文件“mv” 7.删除文件“rm”二、Vim编辑器1.创建文档2.进入命令模式3.输入文本4.输......
  • 我的求职随笔第二篇
    2023.9月求职随笔这一个月过的着实丰富,刚比完数模的我回头看看,发现这个月虽没有面很多家公司但已经收获了满满的面试经验第一周(9月1日-9月7日)在网上浏览了各大招聘网站,如智联招聘、前程无忧、拉勾网等,搜索了与我的求职意向相关的岗位信息,收藏了一些感兴趣的职位,并对比了它们......