首页 > 其他分享 >[ARC106F] Figures 题解

[ARC106F] Figures 题解

时间:2023-12-12 23:34:19浏览次数:36  
标签:ch limits 题解 sum ARC106F long Figures binom prod

题目链接

点击打开链接

题目解法

这么神仙的推式子题

看到生成树计数,第一反应是 \(prufer\) 序列
考虑在 \(prufer\) 序列上搞这个东西
可以得到 \(ans=\sum\limits_{\sum\limits_{i=1}^n d_i=n-2}\binom{n-2}{d_1,d_2,...,d_n}\times \prod a_i^{\underline{d_i+1}}\)
考虑拆式子,\(ans=\sum\limits_{\sum\limits_{i=1}^n d_i=n-2}\frac{(n-2)!}{\prod\limits_{i=1}^nd_i!}\times \prod \frac{a_i!}{(a_i-d_i-1)!}\)
发现有一个类似组合数的形式,拆成组合数看一看(为什么要拆组合数?因为前面有 \(\sum\) 的所有情况的 \(\prod\),拆成组合数可能可以用范德蒙德卷积):\(ans=(n-2)!\prod\limits_{i=1}^n a_i\sum\limits_{\sum\limits_{i=1}^n d_i=n-2}\prod\limits_{i=1}^n\binom{a_i-1}{d_i}\)
可以发现后面的 \(\sum\limits_{\sum\limits_{i=1}^n d_i=n-2}\prod\limits_{i=1}^n\binom{a_i-1}{d_i}\) 是范德蒙德卷积,值为 \(\binom{\sum a_i-n}{n-2}\)
所以最后答案为 \((n-2)!\binom{\sum a_i-n}{n-2}\prod\limits_{i=1}^n a_i=\prod\limits_{i=1}^n a_i(\sum a_i-n)^{\underline{n-2}}\)

时间复杂度 \(O(n)\)
关键在于中间推式子那一部分想到拆成组合数计算

#include <bits/stdc++.h>
#define F(i,x,y) for(int i=(x);i<=(y);i++)
#define DF(i,x,y) for(int i=(x);i>=(y);i--)
#define ms(x,y) memset(x,y,sizeof(x))
#define SZ(x) (int)x.size()-1
#define pb push_back
using namespace std;
typedef long long LL;
typedef unsigned long long ull;
typedef pair<int,int> pii;
template<typename T> void chkmax(T &x,T y){ x=max(x,y);}
template<typename T> void chkmin(T &x,T y){ x=min(x,y);}
inline int read(){
    int FF=0,RR=1;
    char ch=getchar();
    for(;!isdigit(ch);ch=getchar()) if(ch=='-') RR=-1;
    for(;isdigit(ch);ch=getchar()) FF=(FF<<1)+(FF<<3)+ch-48;
    return FF*RR;
}
const int P=998244353;
int main(){
    int n=read(),s=0,ans=1;
    F(i,1,n){ int x=read();s=(s+x)%P,ans=1ll*ans*x%P;}
    F(i,0,n-3) ans=1ll*ans*(1ll*s-n-i+2*P)%P;
    printf("%d\n",ans);
    fprintf(stderr,"%d ms\n",int(1e3*clock()/CLOCKS_PER_SEC));
    return 0;
}

标签:ch,limits,题解,sum,ARC106F,long,Figures,binom,prod
From: https://www.cnblogs.com/Farmer-djx/p/17898119.html

相关文章

  • 问题解决
    howtomeasuressolutionsaddresstheimportanceofspeaking abilityandhowtodevelopit.Astherapid developmentofglobalization,itisofgreatnecessityforyoungstertoimproveourspeakingability.Howtoaddressthisproblem?Thefollowingsoluti......
  • AtCoder Beginner Contest 332 题解
    A-OnlineShopping题目链接AtcoderLuogu简要题意共有\(n\)件商品,第\(i\)件商品的价格为\(p_i\)日元,数量为\(q_i\)件。除了购买商品所需的的钱数,还要支付运费:如果所买商品的总价小于\(s\)日元,那么要支付运费\(k\)日元。问所需要的钱数是多少。简要思路模拟......
  • cdr 小问题解决方案
    1,插件卸载不干净1.1:插件自带的卸载1.2:点击cdr文件夹,选择路径CorelDRAWGraphicsSuiteX8\Draw\plugins64,删除其中所有的"*.cpg"文件(如果你安装了其他插件,这里也会有其他插件的cpg文件,请仔细辨认。或者直接全部删了,到时再安装一下你需要保留的插件)。 2,cdr矩形,对象属性无法更......
  • 【POJ 2418】Hardwood Species 题解(映射)
    描述阔叶树是一种植物群,具有宽阔的叶子,结出果实或坚果,通常在冬天休眠。美国的温带气候造就了数百种阔叶树种的森林,这些树种具有某些生物特征。例如,虽然橡树、枫树和樱桃都是硬木树,但它们是不同的物种。所有硬木树种加起来占美国树木的40%。另一方面,软木,或针叶树,从拉丁语的意思是......
  • luogu P9753题解
    题意描述有一个字符串,请你求出有多少个字串可以经过若干次,使它变成空串其中每次操作可以从字符串中删除两个相邻的相同字符,操作后剩余字符串会拼接在一起。##思路1可以枚举左端点,再枚举右端点,一边枚举一边判断是否合法时间复杂度$O(n^2)$空间复杂度$O(n)$##思......
  • ARC166 B Make Multiples 题解
    LinkARC166BMakeMultiplesQuestion给出\(N\)个整数,\(A_1...A_N\),还有三个数\(a,b,c\)我们可以给\(A_i\)加上\(1\)需要使得数组\(A\)满足,存在一个数是\(a\)的倍数,一个数是\(b\)的倍数,一个数是\(c\)的倍数求最少的操作次数Solution考虑对于每个数的操作......
  • CF1901 D Yet Another Monster Fight 题解
    LinkCF1901DYetAnotherMonsterFightQuestion现在给你一堆怪物,你拥有法术(一个法术可以连续攻击这n个所有怪物),你可以选择任意一个怪物作为法术的第一个攻击目标(伤害为\(x\)),然后除了第一个攻击目标可以任意,其他攻击目标只能为曾经攻击目标的相邻怪物。然后伤害依次递减,\(x......
  • CF1764H Doremy's Paint 2 题解
    题目链接先断环成链,由于对于多组询问不好一起处理,我们先考虑单组询问的处理方式。一个很暴力的想法是每次模拟题目要求的操作并且最后数颜色,我们这是在通过下标进行操作最后再数颜色,而很多对于下标的操作都是不必要的,考虑直接枚举颜色进行判定。对于每种颜色,它对于最后答案有贡......
  • UVA1658 Admiral 题解
    LinkUVA1658AdmiralQuestion给出一个图,找出\(1\simn\)的两条,使得路径和最小Solution可以把点拆开,把除了\(1\)和\(n\)的点\(i\),拆成\(i\)和\(i'\),\(i\)到\(i'\)连一条费用为\(0\),容量为\(1\)的边,如果原来有一条边\(u-v\),那么就建立一条\(u'->v\),费......
  • P2341 受欢迎的牛 G 题解
    LinkP2341[USACO03FALL/HAOI2006]受欢迎的牛GQuestion牛栏中有\(N\)头奶牛,和一些\(M\)对爱慕关系,A->B表示A爱慕B。每个奶牛都喜欢自己,被所有奶牛喜欢就是一头明星奶牛,求明星奶牛的数量Solution考虑一个强连通分量里面的奶牛是相互爱慕的,先根据强连通分量缩点,缩......