2018 Wannafly summer camp Day8--连通块计数
连通块计数
题目描述:
小 A 有一棵长的很奇怪的树,他由 n 条链和 1 个点作为根构成,第 i条链有 ai 个点,每一条链的一端都与根结点相连。
现在小 A 想知道,这棵长得奇怪的树有多少非空的连通子树,你只需要输出答案对 998244353 取模的值即可
输入:
第一行一个正整数 n
第二行 n 个正整数 a1…an
1≤n≤10^5
1≤ai≤10^7
输出:
输出答案对998244353 取模后的值
2
1 1
6
包含中心的联通块数量 ∏(ai+1)--(1<=i<=n)
不包含中心的联通块数量∑(ai(ai+1)/2)--(1<=i<=n),也就是C(ai+1,2),每条链选择2条边截断
#include <cstdio>
#include <cstring>
#include <cmath>
#include<algorithm>
#include<iostream>
using namespace std;
typedef long long ll;
const ll mo=;
const int maxn=1e7+;
int n;
ll a[],ans=;
ll fun[maxn];
ll kpow(ll a,ll b)
{
ll res=;
while(b>)
{
if(b&) res=res*a%mo,b--;
a=a*a%mo;
b/=;
}
return res%mo;
}
ll C(ll n,ll m)
{
if(n<m) return ;
return fun[n]*kpow(fun[m]*fun[n-m]%mo,mo-)%mo;
}
void init(){
fun[]=;
for(int i=;i<=maxn;i++)
fun[i]=fun[i-]*i%mo;
}
int main()
{
init();
cin>>n;
for(int i=;i<n;i++){
cin>>a[i];
ans+=C(a[i]+,);
ans%=mo;
}
ll b=;
for(int i=;i<n;i++){
b*=(a[i]+);
b%=mo;
}
cout<<(ans+b)%mo<<endl;
return ;
}
2018 Wannafly summer camp Day8--连通块计数的更多相关文章
- 2018 Wannafly summer camp Day3--Travel
Travel 描述 题目描述: 魔方国有n座城市,编号为1~n.城市之间通过n-1条无向道路连接,形成一个树形结构. 澜澜打算在魔方国进行mm次旅游,每次游览至少一座城市.为了方便,每次旅游游览的城市 ...
- 2018 Wannafly summer camp Day2--Utawarerumono
Utawarerumono 描述 题目描述: 算术是为数不多的会让久远感到棘手的事情.通常她会找哈克帮忙,但是哈克已经被她派去买东西了.于是她向你寻求帮助. 给出一个关于变量x,y的不定方程ax+by ...
- 2018 Wannafly summer camp Day2--New Game!
New Game! 描述 题目描述: Eagle Jump公司正在开发一款新的游戏.泷本一二三作为其员工,获得了提前试玩的机会.现在她正在试图通过一个迷宫. 这个迷宫有一些特点.为了方便描述,我们对这 ...
- 2018 Wannafly summer camp Day8--区间权值
区间权值 小Bo有\(n\)个正整数\(a_1\)--\(a_n\),以及一个权值序列\(w_1\)--\(w_n\),现在她定义\(f(l,r)=(\sum_{i=l}^r a_i^2) *w_{r ...
- 2018 Wannafly summer camp Day3--Shopping
Shopping 描述 题目描述: 你要买n件物品,其中有一些是凳子. 商场正在举行促销活动,如果购物车中有至少一个凳子,那么你可以半价购买这个购物车中最贵的一个物品. 你有m辆购物车,请最小化你的花 ...
- 2018 Wannafly summer camp Day3--Knight
Knight 题目描述: 有一张无限大的棋盘,你要将马从\((0,0)\)移到\((n,m)\). 每一步中,如果马在\((x,y)(x,y)\),你可以将它移动到 \((x+1,y+2)(x+1,y ...
- Wannafly Winter Camp Day8(Div1,onsite) E题 Souls-like Game 线段树 矩阵乘法
目录 Catalog Solution: (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 Catalog @ Problem:传送门 Portal 原题目描述在最下面. 简单的 ...
- 2019 wannafly winter camp
2019 wannafly winter camp Name Rank Solved A B C D E F G H I J K day1 9 5/11 O O O O O day2 5 3/11 O ...
- 6_13古代象形符号(UVa1103)<图的连通块的应用>
给出一幅黑白图像,每行相邻的四个点压缩成一个十六进制的字符.然后还有题中图示的6中古老的字符,按字母表顺序输出这些字符的标号. 输出说明:For each test case, display its ...
随机推荐
- 005hystrix.stream信息聚合Turbine
1.POM配置 和普通Spring Boot工程相比,仅仅添加了Turbine和Spring Boot Starter Actuator依赖 <dependencies> <!--添 ...
- <Android 基础(二十)> CoordinatorLayout Behavior
介绍 Interaction behavior plugin for child views of {@link CoordinatorLayout}. A Behavior implements o ...
- 2 (自我拓展)部署花的识别模型(学习tensorflow实战google深度学习框架)
kaggle竞赛的inception模型已经能够提取图像很好的特征,后续训练出一个针对当前图片数据的全连接层,进行花的识别和分类.这里见书即可,不再赘述. 书中使用google参加Kaggle竞赛的i ...
- mybatis ${}使用注意事项
${key}有值, ${key,jdbcType=VARCHAR}没有值 总结:${}使用时不要指定jdbcType等属性,指定这些反而取不到值,这也是跟#{}的一个区别.以上只是开发中遇到的情况,具 ...
- Android中如何在Eclipse中关联源代码?(图文)
关联源代码 1.删除工程里面的Android Depandencies,删除后会报错,不要理会.看下面 2.添加libs目录下的Android-support-v4.jar包 选中-->右键-- ...
- web项目开发流程
对于一个web项目,在实际编码之前,有一些通用的步骤来planning a website: 0.Defining the project (predr0->dr0) 对于外部项目,客户一般会发 ...
- pt-archiver(数据导入导出工具)
数据导入导出工具pt-archiver 工具可以将MySQL的表数据导出到一个新表或者一个文件,也有自己的应用场景,比如数据归档,删除数据,数据合并等. 具体用法: pt-archiver [OPTI ...
- web服务器、app(应用)服务器、DB后端性能瓶颈和分析
性能测试day07_性能瓶颈和分析 https://www.cnblogs.com/leixiaobai/p/9463748.html 其实如果之前都做的很到位的话,那么再加上APM工具(dynaTr ...
- ios 线程同步
https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/Multithreading/ThreadSafe ...
- StringUtils工具类介绍
1 abbreviate方法缩写一段文字 StringUtils.abbreviate("abcdefghijklmno", -1, 10) = "abcdefg...& ...