NOIP 模拟29 B 侥幸
这次考得好纯属是侥幸,我T3打表试数试了两个小时,没有想打T2的正解(其实是打不出来)所以这个T3A掉纯属是侥幸,以后还是要打正解
(以下博客最好按全选观看,鬼知道为啥这个样子!)
在这里也口胡一下我的打表找规律的方法!:
首先使用一个next_permutation暴力出来n<=8的解,
0
500000004
500000005
250000005
250000008
416666681
416666690
291666705
我们发现n==2的时候就是2的逆元,那么我们就可以推测出线性递推的柿子是
f[i]=a*f[i-1]+b*inv[i];a和b都是常数 那么我们就可以愉快的枚举常数找规律了!
然后一个小时就过去了,当我发现两个常数都是定值的时候没有解,就尝试一下定一个常数然后凑另一个常数,然后就愉快的发现
f[i]=f[i-1]+(pow(2,i-1)-1)*inv[i];这里的b常数有很多中情况,我们要找的是普遍规律,所以就可以暴力实验求解;
但是这只是我的侥幸,如果这个常数是一个极大值,并且其中一个并不是定值,那么我就凉凉了!
所以打表模拟常数是考试的时候的冒险行为,成则名垂千古,败则一败涂地!(危险动作,请勿模仿!)
由于T3我是打表找规律A的,所以现在填一下正解的坑:
////////以下的博客博主出锅了!正在抢修!//////////
UPD:19.8.22 21:16 抢修完毕
设f[i]表示i个数的sigama(就是题目公式中的分子)然后我们考虑线性递推公式:
我们可以分为两种情况:
1 结尾的数字就是i,那么这个i就不对最终的步数有额外的贡献,所以直接转移,
2 然后枚举没每一个结尾的数字,就可以得到转移的额外贡献是$ \sum (f[i-1]+(i-1)!*g[k])(1<=k<i)$
所以我们可以得出柿子为
$ f[i]=f[i-1]+\sum(f[i-1]+(i-1)!*g[k])(1<=k<i) $
合并就可以得到:
$ f[i]=f[i-1]*i+(i-1)!*(2^{i-1}-1) $
那么重点就是这个g数组
$g[i]$我们可以设他为以i为结尾的插到他该在的位置所需要的步数,他之前的都是有序的!
然后我们通过归纳可以发现,显然$ g[1]=1$
$g[2]=g[1]+1=2$
$g[3]=g[1]+g[2]+1=4$
.........
那么我们通过归纳就可以的出$g[i]=(2^{i-1} )$;
然后利用高考数学的知识稍转化一下就可以了!
NOIP 模拟29 B 侥幸的更多相关文章
- noip模拟29[简单的板子题](虽然我不会)
\(noip模拟29\;solutions\) 这次考试给我最大的伤害,让我意识到了差距 这场考试可以说是非常的简单,就是简单到,看两眼,打个表就有结果了 但是呢?我考得非常的完蛋,只有30pts 据 ...
- NOIP模拟 29
T1第一眼觉得是网络流 看见4e6条边200次增广我犹豫了 O(n)都过不去的赶脚.. 可是除了网络流板子我还会什么呢 于是交了个智障的EK 还是用dijkstra跑的 居然有50分!$(RP--)$ ...
- Noip模拟29(瞎眼忌) 2021.8.3
T1 最长不下降子序列 在此记录自己的瞎眼... 考场上像一个傻$der$,自己为了防范上升序列和不下降序列的不同特意的造了一组$hack$数据来卡自己:(第一行是序列长度,第二行是序列) 6 1 5 ...
- 2021.8.3考试总结[NOIP模拟29]
T1 最长不下降子序列 数据范围$1e18$很不妙,但模数$d$只有$150$,考虑从这里突破. 计算的式子是个二次函数,结果只与上一个值有关,而模$d$情况下值最多只有$150$个,就证明序列会出现 ...
- NOIP 模拟 $29\; \rm 最近公共祖先$
题解 \(by\;zj\varphi\) 首先考虑,如果将一个点修改成了黑点,那么它能够造成多少贡献. 它先会对自己的子树中的答案造成 \(w_x\) 的贡献. 考虑祖先时,它会对不包括自己的子树造成 ...
- NOIP 模拟 $29\; \rm 完全背包问题$
题解 \(by\;zj\varphi\) 一道 \(\rm dp\) 题. 现将所有种类从小到大排序,然后判断,若最小的已经大于了 \(\rm l\),那么直接就是一个裸的完全背包,因为选的总数量有限 ...
- NOIP 模拟 $29\; \rm 最长不下降子序列$
题解 \(by\;zj\varphi\) 观察这个序列,发现模数很小,所以它的循环节很小. 那么可以直接在循环节上做最长上升子序列,但是循环节中的逆序对会对拼接后的答案造成影响. 没有必要找逆序对个数 ...
- noip模拟29
这次终于是早上考试了 早上考试手感不错,这次刷新了以前的最高排名- %%%cyh巨佬 \(rk1\) %%%CT巨佬 \(t2\) 90 纵观前几,似乎我 \(t3\) 是最低的-- 总计挂分10分, ...
- 「题解」NOIP模拟测试题解乱写I(29-31)
NOIP模拟29(B) T1爬山 简单题,赛时找到了$O(1)$查询的规律于是切了. 从倍增LCA那里借鉴了一点东西:先将a.b抬到同一高度,然后再一起往上爬.所用的步数$×2$就是了. 抬升到同一高 ...
随机推荐
- .Net Core AA.FrameWork应用框架介绍
开发多年,一直在从社区获取开源的便利,也深感社区力量的重要性,今天开源一个应用基础框架AA.FrameWork,也算是回馈社区,做出一点点贡献,希望能够帮助类似当年入行的我. AA.FrameWork ...
- layui navTree 动态渲染菜单组件介绍
navTree.js 简介 extends/navTree.js 是一个基于 layui 扩展的模块化组件,用于构建后台布局系统中的垂直导航菜单与水平导航菜单. extends/navTree.js ...
- 算法学习之剑指offer(六)
题目1 题目描述 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. import java.util.*; public cl ...
- Java总结---继承(不断完善ing..)
java三大特性:封装.继承.多态 继承 一.目的:实现代码的复用 二.简单例子(A继承了C): public class A extends C { //检测哪些可以在子类里使用 public vo ...
- Ubuntu 终端中文回显乱码
参考文章 : http://wiki.ubuntu.org.cn/%E4%BF%AE%E6%94%B9locale 所用 Ubuntu的版本 : 猜想是这样的: 1.字符的编码和显示时,所处的环境不是 ...
- Swoole 的微信扫码登录
微信应用的便捷,扫码登录方式越来越被现在的应用所使用.它因为不用去记住密码,只要有微信号即可方便快捷登录.微信的开放平台原生就有支持扫码登录的功能,不过大部分人还是在用公众平台,所以扫码登录只能自行实 ...
- vue-cli2、vue-cli3脚手架详细讲解
前言: vue脚手架指的是vue-cli它是vue官方提供的一个快速构建单页面(SPA)环境配置的工具,cli 就是(command-line-interface ) 命令行界面 .vue-cli是 ...
- 【RabbitMQ 实战指南】一 延迟队列
1.什么是延迟队列 延迟队列中存储延迟消息,延迟消息是指当消息被发送到队列中不会立即消费,而是等待一段时间后再消费该消息. 延迟队列很多应用场景,一个典型的应用场景是订单未支付超时取消,用户下单之后3 ...
- C++ 构造函数的执行过程(一) 无继承
引言 C++ 构造函数的执行过程(一) 无继承 本篇介绍了在无继承情况下, C++构造函数的执行过程, 即成员变量的构建先于函数体的执行, 初始化列表的数量和顺序并不对构造函数执行顺序造成任何影响 ...
- java中的无穷大和无穷小
double型和float型都可以如下表示无穷大和无穷小 import static java.lang.Double.NEGATIVE_INFINITY;import static java.lan ...