博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CF1172B Nauuo and Circle
阅读量:4700 次
发布时间:2019-06-09

本文共 978 字,大约阅读时间需要 3 分钟。

很有意思的题。

考虑dp,设\(f_i\)表示\(i\)这棵字树的答案。

显然有\(f_i=deg_x!\prod_{j\in son[i]}f_j\)

由于根节点是钦定的,所以答案还要乘上一个\(n\)

代码:

#include
#include
#include
#include
using namespace std;#define rg registervoid read(int &x){ char ch;bool ok; for(ok=0,ch=getchar();!isdigit(ch);ch=getchar())if(ch=='-')ok=1; for(x=0;isdigit(ch);x=x*10+ch-'0',ch=getchar());if(ok)x=-x;}const int maxn=2e5+10,mod=998244353;int n,f[maxn],in[maxn],fac[maxn];int cnt,pre[maxn*2],nxt[maxn*2],h[maxn];int mul(int x,int y){return 1ll*x*y-1ll*x*y/mod*mod;}void add(int x,int y){ pre[++cnt]=y,nxt[cnt]=h[x],h[x]=cnt; pre[++cnt]=x,nxt[cnt]=h[y],h[y]=cnt;}void dfs(int x,int fa){ f[x]=fac[in[x]]; for(rg int i=h[x];i;i=nxt[i]) if(pre[i]!=fa)dfs(pre[i],x),f[x]=mul(f[x],f[pre[i]]);}int main(){ read(n);fac[0]=1; for(rg int i=1;i<=n;i++)fac[i]=mul(fac[i-1],i); for(rg int i=1,x,y;i

转载于:https://www.cnblogs.com/lcxer/p/11404455.html

你可能感兴趣的文章
redmine 一键安装
查看>>
021-异步注册登录(检测用户名)
查看>>
gitlab、github账户密码修改后,记得修改本地账户的git凭据
查看>>
2019年春季学期第二周作业
查看>>
深入浅出 Java 中的包装类
查看>>
SQL点点滴滴_修改数据库的兼容级别
查看>>
赋予ANDROID模拟器root权限2.2
查看>>
requests:json请求中中文乱码处理
查看>>
Error:“const char*”类型的实参与“wchar_t”类型的形参不兼容
查看>>
C# 时间格式转换
查看>>
iOS百度地图SDK集成详细步骤
查看>>
linux下cetos7无线网络设置办法
查看>>
7.24 面向对象
查看>>
C++ primer 第七章之 类的静态成员
查看>>
mac Xvim 语法高亮
查看>>
解决PHP生成校验码时“图像因其本身有错无法显示”的错误
查看>>
Android中的文件存储
查看>>
git 教程
查看>>
JDBC,Hibernate,MyBatis的优缺点
查看>>
关于struct函数以及重载
查看>>