博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA 11174 Stand in a Line 树dp+算
阅读量:6879 次
发布时间:2019-06-27

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

主题链接:

题意:白书的P103.

加个虚根就能够了。。。然后就是一个多重集排列。

import java.io.PrintWriter;import java.util.ArrayList;import java.util.Scanner;public class Main {	static int N = 40100;	ArrayList
[] G = new ArrayList[N]; static long mod = 1000000007; long[] way = new long[N]; long[] fac = new long[N]; int n, m; int[] father = new int[N], siz = new int[N]; long Pow(long x, long y){ long ans = 1; while(y > 0){ if(y%2 == 1L) ans = (ans*x)%mod; x = (x*x)%mod; y >>= 1; } return ans; } void dfs(int u, int fa){ siz[u] = 1; way[u] = 1L; for(int i = 0; i < G[u].size(); i++){ int v = G[u].get(i); if(v == fa)continue; dfs(v, u); siz[u] += siz[v]; way[u] = (way[u]*way[v])%mod; } way[u] = (way[u]* fac[siz[u]-1]) %mod; for(int i = 0; i < G[u].size(); i++){ int v = G[u].get(i); if(v == fa)continue; way[u] = (way[u] * Pow(fac[siz[v]], mod-2))%mod; } } void init(){ n = cin.nextInt(); m = cin.nextInt(); for(int i = 0; i <= n; i++){ father[i] = 0; G[i].clear(); } while(m-- > 0){ int u = cin.nextInt(), v = cin.nextInt(); G[v].add(u); father[u] = v; } for(int i = 1; i <= n; i++) if(father[i] == 0){ G[0].add(i); } } void work() { for(int i = 0; i < N; i++)G[i] = new ArrayList(); fac[0] = 1L; for(int i = 1; i < N; i++) fac[i] = fac[i-1]*i%mod; int T = cin.nextInt(); while(T-->0){ init(); dfs(0,0); out.println(way[0]); } } Main() { cin = new Scanner(System.in); out = new PrintWriter(System.out); } public static void main(String[] args) { Main e = new Main(); e.work(); out.close(); } public Scanner cin; public static PrintWriter out;}


版权声明:本文博客原创文章。博客,未经同意,不得转载。

本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/4656190.html,如需转载请自行联系原作者

你可能感兴趣的文章
关于【自证清白】
查看>>
手把手教你crontab排障
查看>>
订单编号
查看>>
纪念我曾经的 JAVA 姿势--转
查看>>
js 如何清除setinterval
查看>>
我为NET狂官方面试题-数据库篇答案
查看>>
聊聊eureka的delta配置
查看>>
Masonry 源码解读(下)
查看>>
Swift如何给应用添加3D Touch菜单
查看>>
JQuery文本框水印插件的简单实现
查看>>
手动fsck修复
查看>>
VBA在Excel中的应用(三)
查看>>
在 Ubuntu 16.04 上安装 LEMP 环境
查看>>
SQL Server profile使用技巧
查看>>
协议中UART的两种模式 【转】
查看>>
SharePoint 2013 Farm 安装指南——Least Privilege
查看>>
C# 温故知新 基础篇(1) C#概述
查看>>
jQuery结合lhgdialog弹出窗口,关闭时出现没有权限错误
查看>>
EXTJS学习系列提高篇:第二十八篇(转载)作者殷良胜,ext2.2打造Ext.form.ComboBox系列--分页显示...
查看>>
如何完成.Net下XML文档的读写操作
查看>>