XYLX 10.19 环游世界(travel)
来源:互联网 发布:怎么看网络稳定不稳定 编辑:程序博客网 时间:2024/04/28 04:32
XYLX 10.19 环游世界(travel)
题目描述
在 Cai0715 的世界里,总共有 N 个城市,每两个城市之间都被一条无向的道路连接。 某一天,Boboo 来 Cai0715 的世界游玩,由于这个世界太过于神奇,使他产生了一种环游世界的冲动,但他必须按照下面的规则进行环游。·他必须在一个城市开始环游,在另一个世界结束环游。·他环游世界时必须经过所有的城市一次,且只能经过一次。·他环游世界时必须经过 N-1 条道路,且只能经过 N-1 条道路。·由于某些道路的风景非常漂亮,所以 Boboo 想要在他环游世界的过程中必须经过这些道路。现在,给定你一些必须经过的道路,问 Boboo 环游世界的方案有多少种?
输入输出
输入文件
第一行,一个数 N,代表共有 N 个城市。
以下是一个 N 行 N 列的字符矩阵 A,如果 A[I][J]是 Y 则代表城市 I 和城市 J 之间这条
道路必须被经过。
输出文件
一行,一个数,Boboo 环游世界的方案数。由于最后答案可能很大,所以只需要将答案 mod 1000000007 输出即可。
样例
样例输入
3
NYN
YNN
NNN
样例输出
4
注释
【样例解释】
1、 1->2->3
2、 2->1->3
3、 3->1->2
4、 3->2->1
【数据范围】
对于 30%的数据,2<=N<=5。 对于 50%的数据,2<=N<=20。 对于 100%的数据,2<=N<=50。
分析
该题直接排列,将必走路转化为一条链每条链有两种方案,然后(链+孤立点)!*(2)^(链数)
代码如下
program travel;const mp=1000000007;var i,j,total,n,have,ans,x:longint; visited,exist:array[1..50] of boolean; father:array[1..50] of integer; map:array[1..50,1..50] of boolean; ch:char; factorial:array[0..50] of longint;procedure dfs(i,step:longint);var j:longint;begin visited[i]:=true; for j:=1 to n do begin if map[i,j] and (not visited[j]) then begin father[j]:=i; dfs(j,step+1); visited[j]:=false; end; end; if (step<>1) and (map[i,x]) then begin write(0); close(input); close(output); halt; end;end;begin assign(input,'D:/input/XYLX/10.19/travel.txt'); reset(input); assign(output,'D:/output/XYLX/10.19/travel.txt'); rewrite(output); readln(n); fillchar(exist,sizeof(exist),false); for i:=1 to n do begin for j:=1 to n do begin read(ch); if ch='Y' then begin map[i,j]:=true; exist[i]:=true; end else map[i,j]:=false; end; readln; end; for i:=1 to n do father[i]:=0; have:=0; for x:=1 to n do begin if (father[x]=0) and (exist[x]) then begin inc(total); dfs(x,0); end; if not exist[x] then begin inc(have); end; end; ans:=1; factorial[0]:=1; for i:=1 to n do factorial[i]:=((i mod mp)*(factorial[i-1] mod mp)) mod mp; for i:=1 to total do begin ans:=(ans*2) mod mp; end; ans:=(ans * (factorial[have+total] mod mp)) mod mp; write(ans); close(input); close(output);end.
我好想你
生命 随年月流去 随白发老去
随着你离去 快乐渺无音讯
随往事淡去 随梦境睡去
随麻痹的心逐渐远去
我还想你
苏打绿
开了灯 眼前的模样
偌大的房 寂寞的床
关了灯 全都一个样
心里的伤 无法分享
生命 随年月流去 随白发老去
随着你离去 快乐渺无音讯
随往事淡去 随梦境睡去
随麻痹的心逐渐远去
我好想你 好想你
却不露痕迹
我还踮着脚思念
我还任记忆盘旋
我还闭着眼流泪
我还装作无所谓
我好想你 好想你
却欺骗自己
开了灯 眼前的模样
偌大的房 寂寞的床
关了灯 全都一个样
心里的伤 无法分享
生命 随年月流去 随白发老去
随着你离去 快乐渺无音讯
随往事淡去 随梦境睡去
随麻痹的心逐渐远去
我好想你 好想你
却不露痕迹
我还踮着脚思念
我还任记忆盘旋
我还闭着眼流泪
我还装作无所谓
我好想你 好想你
却欺骗自己
我好想你 好想你
就当作秘密
我好想你
好想你
就深藏在心
陪伴是最长情的告白 相守是最温暖的承诺 等待是最青涩的恋情 微笑是最美好的回忆 宽容是最真是的爱情
- XYLX 10.19 环游世界(travel)
- XYLX 10.19 天堂(HEAVEN)
- 环游世界
- ---45块环游世界---
- 免费环游世界
- 暖暖环游世界
- XYLX 10.19 集卡片
- XYLX 10.19 H1N1(h1n1)
- xoj 1754 80人环游世界(tour)
- 最想环游的世界
- 2055: 80人环游世界
- HDU2181 哈密顿世界环游
- bzoj2055 80人环游世界
- bzoj 2055: 80人环游世界 (有上下界的费用流)
- [BZOJ2055]80人环游世界(有源汇有上下界的费用流)
- bzoj2055 80人环游世界(有源汇有上下界最小费用流)
- 30岁前,环游世界220天
- Google Earth和虚拟环游世界
- 接口测试
- template模板3
- 内核调试工具 — kdump & crash
- CoreData进阶
- Leetcode Sort Colors
- XYLX 10.19 环游世界(travel)
- Forward框架的逆袭:解析Forward+渲染
- UITextView输入中文时,在输入多行后,光标有时会上下跳动
- git命令
- 通过className获取元素的js
- 【转】使用文本文件(.txt)进行数据存取的技巧总结(相当的经典)
- 堆和栈的区别
- 系统级性能分析工具 — Perf
- 10分钟学会理解和解决MySQL乱码问题