首页 > 其他分享 >LGP8474题解

LGP8474题解

时间:2022-08-15 13:35:15浏览次数:50  
标签:LGP8474 log int 题解 sqrt prod dp mod

很萌萌的数数题。

考虑设 \(dp[n]\) 表示 \(n\) 的答案。

考虑对于一个长度为 \(n\) 的排列,令排列的所有元素 \(+1\),然后塞一个 \(1\) 进去。

容易发现,逆序对增加的数量和 \(1\) 塞的位置有关。如果 \(1\) 塞到 \(p[i]\),那么会增加 \(i-1\) 个逆序对。

所以就有 \(dp[n]=dp[n-1]\times(\sum_{i=1}^{n}2^{i-1})=dp[n-1]\times(2^n-1)=\prod_{i=1}^{n}(2^i-1)\)。

随便写一下就可以 \(O(n)\)。

接下来考虑 \(O(\sqrt{n}polylogn)\) 的做法。

我们知道快速阶乘算法。于是我们可以考虑像他那样分块。

设 \(B=\lfloor\sqrt{n}\rfloor\),那么如果我们求出了多项式 \(f(x)=\prod_{i=1}^{B}(2^ix-1)\) 就可以使用 chirp-Z 变换做到 \(O(\sqrt{n}\log n)\)。

考虑倍增。设 \(F_n(x)=\prod_{i=1}^{n}(2^ix-1)\),那么对于 \(F_n(x)\to F_{n+1}(x)\) 可以直接卷一项。

对于 \(F_n(x)\to F_{2n}(x)\),考虑 \(\prod_{i=n+1}^{2n}(2^ix-1)=\prod_{i=1}^{n}(2^i(2^nx)-1)\),可以对 \(F_n(x)\) 复合一个 \(2^nx\) 来解决。

复杂度 \(T(n)=T(n/2)+O(n\log n)\)。

总复杂度 \(O(\sqrt{n}\log n)\)。如果有 polylog 算法撅我。

\(O(n)\) 的代码:

#include<cstdio>
const int mod=1e9+7;
int n,ans(1);
signed main(){
	scanf("%d",&n);for(int pw2(2),i=1;i<=n;++i)ans=(pw2-1ll)*ans%mod,pw2*=2,pw2>=mod&&(pw2-=mod);printf("%d",ans);
}

标签:LGP8474,log,int,题解,sqrt,prod,dp,mod
From: https://www.cnblogs.com/lmpp/p/16587957.html

相关文章

  • Gym102798 CCPC2020威海E加强版 题解
    原题link把\(m\)和\(a_i\)的上界改成\(200\),其他不变.基本思路:枚举\(S\),求出\(p(S)\)表示集合\(S\)中的怪兽被打死的概率,答案就是\(\sum_{S}|S|p(S)\).而这......
  • AtCoder Beginner Contest 264部分题解(a~d)
    A题题目大意:打印“atcoder"中从第l个到第r个字母参考代码:#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#defineIOSios_base::sync_with_std......
  • 【问题解决】解决使用aliyuncdn加速的域名证书不同步问题
    今天登录上博客发现好家伙资源链全挂了,进去一看发现是证书到期了,但是我回服务器查看证书发现证书已经更新而且是有效状态,清缓存一类的都尝试过了,依旧不行,然后网上找到了一......
  • AcWing周赛62-64 中比较有意思的小题题解
    AcWing周赛62-64(选讲)感觉比较思维4502.集合操作https://www.acwing.com/problem/content/4505/根据题意,肯定要使得所取的最大值最大,平均值最小。又因为每次放进来的的......
  • T265119 拯救公主--题解
    题目描述公主索菲亚被关在一个有大小一样的方格构成的四四方方的迷宫里面,索菲亚就站在其中一个方格子上,拯救方案是这样的:要用一些地砖把公主所在的方格子之外的格子都铺上......
  • CF1712题解(E,F)
    E题意是让你求满足\(lcm(i,j,k)\geqi+j+k\)的三元组个数。我们通常都有一个直观感觉,lcm应该是各数之积级别的,换句话说,不满足\(lcm(i,j,k)\geqi+j+k\)的三元组个数......
  • LeetCode Pow(x, n)算法题解 All In One
    LeetCodePow(x,n)算法题解AllInOnejs/ts实现Pow(x,n)50.Pow(x,n)https://leetcode.cn/problems/powx-n/https://www.youtube.com/watch?v=ZTACajQOb2Er......
  • 2022“杭电杯”中国大学生算法设计超级联赛(8) 题解
    A.Theramore考虑只对长度为3的子串进行操作,发现偶数位置的字符不会出现在奇数位置,奇数位置的字符不会出现在偶数位置。对奇偶位置字符进行排序即可。#include<bits/std......
  • 表达式 题解
    零、写在前面\(\texttt{洛谷の题目链接}\)与\(\texttt{Topsの题目链接}\)以及\(\texttt{Hydroの题目链接}\)这道题是\(\texttt{CSP-2020}\)普及组的第三题,但个......
  • 【题解】做题记录(2022.8)
    (之前的就暂时不补了就从以后的开始记)8.12CF1606CBanknotes题目分析:显然第\(i\)种货币可以用来组成\(a_{i+1}-a_{i}\)位,为了使得\(k\)最小,显然从低到高位依次......