「考试」$5T$
啊因为最近题实在是好啊,只能四五篇四五篇写了。
T1.
括号序列的确简单。
当我们维护左右$cnt$后。
到一个左括号的地方的话。
答案就是:
$$\sum\limits_{i=1}^{min(lc,rc)}\binom{lc-1}{i-1}\binom{rc}{i}$$
因为要固定一个来去重。
等价于:
$$\sum\limits_{i=0}^{n}\binom{n}{i}\binom{m}{i}=\sum\limits_{i=0}^{n}\binom{n}{n-i}\binom{m}{i}$$
这个东西其实是范德蒙恒等式。
它等于:
$$\binom{n+m}{n}$$
其实就是从$n$中选$n-i$个,从$m$中选$i$个,等价于从$n+m$个里面选$n$个。
考场上打了个表发现这个东西是生成函数:
$$f(x)=\sum\limits_{i=0}^{n}x^i$$
的几次幂的某项系数。
猛地想起来和之前某道前缀和的题相似。
这个函数的幂的系数全都是二项式系数!
然后就一分钟了无力会天。。。
想想这个函数为什么是二项式系数形式。
因为$f(x)$的意义很丰富。
而$f^n(x)[m]$的含义就是:
从小于等于的自然数里选出$n$个,使得加和为$m$的方案,那么这个东西其实就是$\binom{n+m-1}{n-1}$
也就是个插板了。
T2.
旁边$cbx$循环展开$A$了,但是其实正解又是$meet\ in\ the\ middle$。
其实更像$BSGS$...
预处理走$k$步和$k$百步的最短路即可。
复杂度就可以过得去了。
又被根号算法教做人。
T3.
和蚯蚓兄很类似了。
用队列代替优先队列。
每次从$15$个队头里选出最小的一个并$pop$,然后计数,然后分别加入$15$个队列中,要求让质因子从小到大加入,那么加入的编号只能是单调不降的,不然会重复。
T4.
记忆化搜索或者$dp$都可以$A$。
我采用了营长的$dp$,定义状态$dp[i][s]$为长度为$i$的序列状态为$s$的情况下的方案。
状态采用$8$进制压位,状态看似很多但是其实六个质因子的情况下状态数只有$7000*12$,四个只有$200*12$。
考虑一个更优秀的方式$dp$
我们发现第一位是没有用的。
因为在转移的过程中会让$s$变化,而且只向大变化,那么拿掉他。
状态就只有$7000$了,转移复杂度是$2^6$的,比大部分记忆化搜索的状态数要少一点,转移复杂度低一点。
详细说一下怎么$dp$
状态$s$代表六个质因子的状态,我们用$0-7$来分别代表:
$0$这一位没数占用。
$1-6$这一位编号为$1-6$的数占用。
$7$这一位有两个数占用了。
%%%营长状态定义。
这样的话就可以转移了。
枚举质因子集合转移。
当前一个质因子集合可以转移,当且仅当:
对应的每一个质因子所包含的被占用的数集合中有不超过一个不同数,且没有任何一个是7。
转移到的状态就是把为0的位置全部填成我的编号并且把有数的位置变成7。
可以解决问题。
T5.
概率算法了。
代入任何两个人的信息。高斯消元解出四个参量,然后代入$n$个人求解,看得到解决的是否超过了$n/2$个人,
容易发现这样失败的概率最高是$\frac{3}{4}$,那么解50次方程,全都失败的概率就是$\left(\frac{3}{4}\right)^{50}$
可以通过了。
「考试」$5T$的更多相关文章
- 「考试」 Or
不得不说是一道多项式神题了. 虽然说颓代码颓的很厉害不过最终A掉了. 好好讲一讲这道题. 涉及的知识点是:高阶导数,NTT,指数型母函数,泰勒公式,以及意志力和数学推导能力. 那就开始了. 一个测试点 ...
- Linux 小知识翻译 - 「RAID」
最近术语「RAID」变得比较有名.「RAID」是指将多个HDD组合起来使用,从而提高存储可靠性的一种技术. 那么,关于 RAID 中的 「RAID 0」「RAID 1」「RAID 5」等各种「RAID ...
- 正则表达式从入门到放弃「Java」
正则表达式能做什么? 正则表达式可以用来搜索.编辑或处理文本. 「都懂它可以处理文本,可到底是怎么回事?」 正则表达式的定义 百度百科:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特 ...
- Scala 学习(10)之「集合 」
数组 定长数组 Array:采用()访问,而不是[],下标从 0 开始. val array1 = new Array[String](5) //创建数组 println(array1) //返回数组 ...
- JavaScript OOP 之「创建对象」
工厂模式 工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程.工厂模式虽然解决了创建多个相似对象的问题,但却没有解决对象识别的问题. function createPers ...
- Facebook 发布「流程」
时不时就会在面试过程中碰到有候选人问 Facebook 是否采用 Scrum 之类的敏捷方法,偶尔也会有中国的朋友问及 Facebook 上线流程.我通常会简单说几句,然后说「如果你真感兴趣的话,去搜 ...
- 「30天自制操作系统」 Stop & 「OS67 」 Start
废话 整个十月都没有再写一点什么, 其实没什么好写的, 把书里的东西码出来贴在博客里实在没什么意思, 况且书里已经写得够详细了. 这本书给我最深刻的感觉是, 作者通过简化一些细节, 一步一步地模拟整个 ...
- jvm系列(十):如何优化Java GC「译」
本文由CrowHawk翻译,是Java GC调优的经典佳作. 本文翻译自Sangmin Lee发表在Cubrid上的"Become a Java GC Expert"系列文章的第三 ...
- spring cloud 入门,看一个微服务框架的「五脏六腑」
Spring Cloud 是一个基于 Spring Boot 实现的微服务框架,它包含了实现微服务架构所需的各种组件. 注:Spring Boot 简单理解就是简化 Spring 项目的搭建.配置.组 ...
随机推荐
- Kafka0.11之RoundRobinPartitioner/HashPartitioner(Scala):
RoundRobinPartitioner/HashPartitioner: import java.util import java.util.concurrent.atomic.AtomicLon ...
- 阿里云Centos操作Mysql
1. CentOS7 yum方式安装MySQL5.7 2.Centos下mysql导入sql 3.Centos设置远程 4.CentOS下mysql数据库常用命令总结 5.centos出现“Fire ...
- Kylin构建Cube过程详解
1 前言 在使用Kylin的时候,最重要的一步就是创建cube的模型定义,即指定度量和维度以及一些附加信息,然后对cube进行build,当然我们也可以根据原始表中的某一个string字段(这个字段的 ...
- JZOJ10004 列车调度
[JZOJ100041]列车调度 Description Input Output Sample Input Sample1: 3 1 2 3 Sample2: 9 1 3 2 4 8 6 9 5 7 ...
- bugku 程序员本地网站
提示从本地访问,怎样让服务器认为你是从本地进行访问的: 使用burp抓包并在包中进行修改加入X-Forwarded-For: 127.0.0.1 X-Forwarded-For: 简称XFF头,它代表 ...
- 基于STM32F1与NRF24L01模块的SPI简单通信
一.前言 1.简介: 本文是基于STM32F1,将数据发送至NRF模块的寄存器,并将数据重新读取,通过串口发送出来的简单SPI单通信. 2.SPI简介: 调过STM8的都已经对SPI有所了解,调法都一 ...
- Python高级核心技术97讲 ☝☝☝
Python高级核心技术97讲 ☝☝☝ Python高级核心技术97讲 系列教程 学习 教程 Python的标准整数类型是最通用的数字类型.在大多数32位机器上,标准整数类型的取值范围是-2**31 ...
- CSP2019 考前复习
动态规划 [NOIP2016]愤怒的小鸟(状压+思维) 多组数据题 共有i只猪,给出每只猪的坐标,鸟的飞行轨迹为经过原点的抛物线,求最少要多少只鸟能消灭所有的猪 \[ 猪数量n<=18 \] 看 ...
- shark恒破解笔记6-摆脱NAG
1.打开软件后,发现是未注册,然后点击关闭按钮,会弹出窗口 我们的目的就是为了能够去掉这个弹窗. 2.对这个程序进行查壳,没有什么发现 3.载入OD里面,F9运行起来,随后切换到程序主界面点击关闭按钮 ...
- PHP range
1.函数的作用:生成范围内的数据 2.函数的参数: @param mixed $start @param mixed $end @param mixed $step 3.例子: <?php $n ...