旅行的意义 Gym - 102174L

题目链接:

旅行的意义

 Gym - 102174L

题目大意:

天天身在 11 号城市,他每到达一个旅游城市都会先花一天的时间游玩当地的旅游景点。接下来他也没有明确的目的地,所以第二天他会随机地选择该城市的一条直达线路,花费一天的时间通往下一个旅游城市。当然,如果这个城市的旅游景点太好玩的话,他可能会选择再逗留一天,但是由于假期有限,他在当前的旅游城市最多只能呆 22 天。例如,当天天在城市 CC 时,若城市 CC 有 22 条直达线路分别通往城市 AA 和城市 BB,则在第一天的游玩过后,第二天他有 1313 的可能会选择继续逗留在城市 CC 多游玩一天,但是第三天他一定不会再逗留在城市 CC 了;同时他有 1313 可能会选择立即搭乘直达城市 AA 的高铁;他也有 1313 的可能会选择立即搭乘直达城市 BB的高铁。

当天天把所有的旅游城市都游玩过后,他也就只能结束这段难忘的五一旅行假期了。现在请聪明的你帮天天提前计算一下,他本次旅行时间的期望是多少呢?

容易证明天天旅行时间的期望为 PQPQ 的形式,其中 PP 和 QQ 互质,且 Q≡?0 (mod 998244353)Q?0 (mod 998244353)。因此答案请以 P⋅Q−1 (mod 998244353)P⋅Q−1 (mod 998244353) 的形式输出,其中 Q−1Q−1 表示 QQ 在取模 998244353998244353 下的逆元。

具体思路:

dp[u][0]代表当前天天刚到达u这个城市并且玩了一天。

dp[u][1]代表当前天天打算在u这个城市玩两天。

当二维是0的时候,

dp[u][0]+=(dp[to][0]+1)*(size[u]+1).

// 在城市u已经玩了一天,并且打算用一天的时间乘车去下一个站点

dp[u][0]+=(dp[u][1])*(size[u]+1);

// 在城市u再再玩一天。

dp[u][1]+=(dp[to][0]+1)*(size[u]).

// 在城市u已经玩了两天了,只能选择继续往下一个城市走。

AC代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 # define ll long long
 4 # define inf 0x3f3f3f3f
 5 const int mod = 998244353;
 6 const int maxn = 2e5+100;
 7 int dp[maxn][2];
 8 vector<int>Edge[maxn];
 9 ll inv[maxn];
10 void init()
11 {
12     inv[1]=1;
13     for(int i=2; i<maxn; i++)
14     {
15         inv[i]=((mod-mod/i)*inv[mod%i]+mod)%mod;
16     }
17 }
18 ll dfs(int u,int type)
19 {
20     if(dp[u][type]!=-1)
21         return dp[u][type];
22     dp[u][type]=1;
23     if(type)
24     {
25         for(auto i:Edge[u])
26         {
27             dp[u][type]=(dp[u][type]+(dfs(i,type^1)+1)*inv[Edge[u].size()]%mod)%mod;
28         }
29     }
30     else
31     {
32         for(auto i:Edge[u])
33         {
34             dp[u][type]=(dp[u][type]+(dfs(i,type)+1)*inv[Edge[u].size()+1]%mod)%mod;
35         }
36         dp[u][type]=(dp[u][type]+(dfs(u,type^1)*inv[Edge[u].size()+1]%mod))%mod;
37     }
38     return dp[u][type]%mod;
39 }
40 int main()
41 {
42     init();
43     int T;
44     scanf("%d",&T);
45     while(T--)
46     {
47         int n,m,st,ed;
48         scanf("%d %d",&n,&m);
49         for(int i=0;i<=n;i++){Edge[i].clear();}
50         for(int i=1; i<=m; i++)
51         {
52             scanf("%d %d",&st,&ed);
53             Edge[st].push_back(ed);
54         }
55         for(int i=1; i<=n; i++)
56         {
57             dp[i][0]=dp[i][1]=-1;
58         }
59         ll ans=dfs(1,0);
60         printf("%lld\n",ans);
61     }
62     return 0;
63 }

原文地址:https://www.cnblogs.com/letlifestop/p/10807643.html

时间: 2024-10-27 21:10:14

旅行的意义 Gym - 102174L的相关文章

旅行的意义

旅行陌生街头看陌生的脸庞,猜猜他们的愉悦.猜猜他们的疲惫.或者猜猜他们的恋情!我们因为不尽相同的理由旅行,我们因为不尽相同的缘分相遇!但我们却只想当一个潮派玩家!我去过的地方!

登泰山

大概两年前我就开始酝酿来泰山,因为种种原因,一直未能成行.现在,我终于在泰山了. 此刻我正在泰山脚下岱宗坊边的公园.公园里人很多,有打牌的,散步的,练习网球的,做健身操的,说拉弹唱的,我身后不远处一位老先生正在拿大毛笔在地上练字.垂柳树下,清风徐来,难得的闲情逸致. 昨天早上六点左右我坐火车自开封抵达泰山.因为在火车上心情极不好,昏昏沉沉,浑浑噩噩,睡了好久,可是还是困得要命.在火车上,我旁边好像先后换了好几个人,不过我没有怎么知觉.我总是醒来又睡,睡来又醒,如果旁边真有人把我钱包掏走,那时我也

十招记忆术让你更年轻

一般人发现自己容易忘东忘西.反应变慢时,先是沮丧,接着怀疑将来老了是否会得到失智症.事实上,大脑皮质厚度的确会随着年纪增长逐渐下降,高明科技也无法逆转神经老化死亡的自然时钟. “但只要常常用脑,就可以让大脑不要老得那么快,而且愈用愈灵光,”中央大学认知神经科学研究所所长洪兰解释,人在年轻时大脑皮质厚度差不多,聪明才智没有特别差异,但年纪愈大.厚度差距会愈大.也就是说,一个62岁常用脑的人,大脑活化程度可以跟40岁的人一样. 原理在于,母体中的小胎儿大脑神经细胞以每分钟25万个的速度成长,出生时已

Stay教你程序员泡妞攻略

七天大长假,得瑟的人们又要粗来秀恩爱晒旅途了,苦逼的程序员们要么加班(说好的三倍呢),要么宅家自lu.想想都觉得悲哀.一来我们抱怨生活只有代码,二来只让代码充斥自己的生活.在Stay看来,学会生活要比学会技术重要的多. 如果你认为努力学好技术就能超越Stay,那就too young too simple了.言归正传,今天要跟我们特殊的程序员群体说下怎么泡妞.以下技巧不仅仅对程序员适用. 首先你得有妞,然后扭一扭,泡一泡,舔一舔,然后就是你从岛国片上学到的内容了. 先花点时间想想你周围每天是些什么

白扯之聊聊我们的情怀

这周科研时间占据了60%的,睡觉30%,最后那可怜的10%时间留给了前端,现在整个人处于蒙圈状态.今天我们不聊科研,不聊前端,来,来,我们聊一聊情怀. 作为一位伪文艺程序媛平时除了听周杰伦的悲伤情歌以外,最喜欢的就是民谣.为了证明这一切我还特意买了把吉他,好吧,它至今还被遗弃在宿舍的某个角落里.之所以要聊到民谣还要从今天单曲循环的一首歌曲说起, 好想被风刮走 刮遍整个地球的那种 在我爱的城市停 走 停 走 是谁把冲动 说成青春期躁动 以为还十五六 这首歌出自万岁爷的<蜜蜂>,如果你以为it i

风雨扬州路

又是一年清明节,这次又一个人出行,原本目的地是扬州,因买不到车票,就先转站到了镇江. 去扬州,仅仅是由于一句诗词,"烟花三月下扬州",就像去年,我也由于一句话"毕竟西湖六月中,风光不与他时同"到了杭州. 然而这次出发前,我并没有做不论什么旅游规划. 我仅仅想随遇而安,走到哪里是哪里. 到了镇江.出了火车站,我居然不知道要去哪里.我向南顺着路就那样一直走着. 路上遇到一家饭馆,想进去,犹豫了下没进,想着前面应该还有非常多. 但是我错了.后面居然没有饭馆了.我走了好久.

厦一站 · 鼓浪屿

Mar 15.2015 --行走在海上花园的慢时光里 厦门,鼓浪屿.       在许多人的眼中,那里是一个浪漫文艺的地方--       在我的眼中,那里是一个诗情画意的地方-- 在还没有去厦门旅游之前,我像许多人一样,对厦门这座海上花园充满无限的憧憬,向往那怡然自得的环岛路,向往那中西合璧的厦大校园,向往那有着"万国建筑博览会"之称的音乐之乡--鼓浪屿. 对于厦门的印象,环岛路.厦大校园.鼓浪屿,仅此而已,而来过厦门之后,边走边看,慢慢发现,仿佛一时之间打开了一扇窗,通向诗意的世界

思考在路上——土包子的“拱形之旅”

 土 包 子 的 “拱 形 之 旅” 摘要:又是一年盛夏日,也是土包子背起行囊远行的日子了.作为一个土包子,常听说这么一句话,旅行是一件“花钱买罪受”的事,抱着将信将疑的态度我开启了自己的拱形之旅(我要验证一下这个说法的可靠性).之所以成为拱形之旅,因为从地图上看的话我的路线:蚌埠-泰安-青岛-南京-杭州构成了一个拱形,无奈才疏学浅只能以“形”给自己此次的旅程命名啦!经过约一个星期的漂泊,通过亲身体验发现,旅行是一次肉体与灵魂分离的活动.伴随着肉体上各种折磨的同时,精神上却在享受着各种盛宴.为了

《从你的全世界路过》的句子语录

1.我希望有个如你一般的人. 如这山间清晨一般明亮清爽的人, 如奔赴古城道路上阳光一般的人, 温暖而不炙热,覆盖我所有肌肤. 由起点到夜晚,由山野到书房, 一切问题的答案都很简单. 我希望有个如你一般的人,贯彻未来,数遍生命的公路牌.--张嘉佳<从你的全世界路过>   2.我们在同一个时区,却有一辈子的时差.--张嘉佳<从你的全世界路过>3.我觉得这个世界美好无比.晴时满树花开,雨天一湖涟漪,阳光席卷城市,微风穿越指间,入夜每个电台播放的情歌,沿途每条山路铺开的影子,全部是你不经意