题目描述

"dp的本质是跑一遍DAG(有向无环图)。"--jackchan
jackchan是一名大学生,他学习成绩很好,所以他有足够多的时间去旅游。jackchan想要去旅行的城市有n个,由于jackchan不想回头路,所以城市间由m条有向边连接(保证不出现环)。jackchan的旅行计划的起点不能由其他城市到达(即起点入度为0),终点不能再到达其他城市(即终点出度为0),且旅行计划至少旅行两个城市)。他想要知道一共有多少种不同的旅行计划。(不同:旅行计划的经过的城市数量不同或者出现了不同的城市)


输入格式

第一行两个整数,n,m分别表示城市数量和有向边的数量
接下来m行,每行两个整数u,v,表明u到v有一条有向边


输出格式

一个整数,表示jackchan的不同旅行计划数


样例数据

输入

input1:
5 4
2 1
3 1
4 1
5 1
input2:
10 16
1 2
1 4
1 10
2 3
2 5
4 3
4 5
4 8
6 5
7 6
7 9
8 5
9 8
10 6
10 7
10 9

输出

output1:
4
output2:
9

备注

1<=n<=100000,0<=m<=200000


操作

评测记录

优秀代码

信息

时间限制: 1s
内存限制: 128MB
评测模式: Normal

题解