BZOJ3792: 跑步

题解:

感觉被坑出翔。。。

显然我们把矩阵乘法中的点当成原图中的边就可以了。

先写opertor 在struct里面居然只能带一个变量?。。。

放到外面,然后还得加引用?

然后题目描述不清,重边怎么算?好吧,后来知道重边算两条。

然后没开ll,没取模各贡献一次WA。。。

代码:

 1 #include<cstdio>
 2 #include<cstdlib>
 3 #include<cmath>
 4 #include<cstring>
 5 #include<algorithm>
 6 #include<iostream>
 7 #include<vector>
 8 #include<map>
 9 #include<set>
10 #include<queue>
11 #include<string>
12 #define inf 1000000000
13 #define maxn 500
14 #define maxm 500+100
15 #define eps 1e-10
16 #define ll long long
17 #define pa pair<int,int>
18 #define for0(i,n) for(int i=0;i<=(n);i++)
19 #define for1(i,n) for(int i=1;i<=(n);i++)
20 #define for2(i,x,y) for(int i=(x);i<=(y);i++)
21 #define for3(i,x,y) for(int i=(x);i>=(y);i--)
22 #define for4(i,x) for(int i=head[x],y;i;i=e[i].next)
23 #define mod 45989
24 using namespace std;
25 inline ll read()
26 {
27     ll x=0,f=1;char ch=getchar();
28     while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘)f=-1;ch=getchar();}
29     while(ch>=‘0‘&&ch<=‘9‘){x=10*x+ch-‘0‘;ch=getchar();}
30     return x*f;
31 }
32 int n,m,s,tot,cnt,num[maxn],c[maxn][2];
33 struct matrix
34 {
35     int d[maxn][maxn];
36     matrix(){memset(d,0,sizeof(d));}
37 }a,b;
38 inline matrix operator *(matrix &x,matrix &y)
39 {
40     matrix z;
41     for1(i,m)
42      for1(j,m)
43       for1(k,m)
44        (z.d[i][j]+=x.d[i][k]*y.d[k][j])%=mod;
45     return z;
46 }
47 inline void print(matrix x)
48 {
49     for1(i,m)for1(j,m)cout<<i<<‘ ‘<<j<<‘ ‘<<x.d[i][j]<<endl;
50 }
51 void ksm(ll y)
52 {
53     for(;y;y>>=1,a=a*a)
54      if(y&1)b=b*a;
55 }
56 int main()
57 {
58     freopen("input.txt","r",stdin);
59     freopen("output.txt","w",stdout);
60     n=read();m=read();s=read();ll q=read();tot=1;
61     for1(i,m)
62     {
63         int x=read(),y=read();
64         c[++tot][0]=x;c[tot][1]=y;
65         c[++tot][0]=y;c[tot][1]=x;
66     }
67     m=tot;
68     for1(i,m)for1(j,m)if(i!=j&&i!=(j^1)&&c[i][1]==c[j][0])a.d[i][j]=1;
69     for1(i,m)b.d[i][i]=1;
70     ksm(q-1);
71     for1(i,m)if(c[i][0]==s)num[++cnt]=i;
72     for1(i,n)
73     {
74         int ans=0;
75         for1(j,m)if(c[j][1]==i)
76         for1(k,cnt)(ans+=b.d[num[k]][j])%=mod;
77         printf("%d\n",ans);
78     }
79     return 0;
80 }

3792: 跑步

Time Limit: 10 Sec  Memory Limit: 256 MB
Submit: 48  Solved: 21
[Submit][Status]

Description

小白非常喜欢跑步,所以他经常在校园内跑步(其实是想看美女~)。校园可以看成由N个地区,由M个道路连接。我们小白早上从一个地点出发,但是不知道怎么跑才好。小白有个习惯,不会沿着刚刚经过的道路再返回(比如从A到B经过C道路,下一次,不会再沿着C从B返回A)。
小白想知道从他出发的地点,经过Q条路,到达每个点的方案数。这样方便他去选择。

Input

第一行3个整数N,M,S,Q。表示有N个地区,M条道路,从S出发,需要经过Q条路。
下面M行,每行两个整数表示A,B之间有条道路。

Output

一共N行,每行一个整数表示从S到I的方案数(mod 45989)

Sample Input

10 20 9 10
1 5
5 10
10 4
10 2
10 7
4 3
10 9
2 8
5 6
6 1
2 10
4 7
9 10
9 6
7 3
7 3
7 2
1 8
9 7
4 5

Sample Output

17420
41928
35701
40814
31937
22933
5754
15848
43620
10819

HINT

N<=30 M<=60 Q<=10^16

时间: 2024-10-18 14:59:43

BZOJ3792: 跑步的相关文章

微信小程序(有始有终,全部代码)开发---跑步App+音乐播放器

我的微信开发者工具 开篇语 好不容易,终于把所有的基础课程全部看完了!昨天,我很高兴地开始了看别人做的项目进行深度的学习.其实也说不上是项目吧,更多的像是一种给新手看的示例代码.然后我在这些代码上面进行我自己的改进.最后也就有了接下来我会给大家带来的这篇文章中的项目.这个项目是完整的,它包括了一个原本的示例代码中带着的莫名其妙的动画组件(可能是为了更多额展示微信小程序的控件体系)以及跑步的组件,还有我后来自己加上去的一个音乐播放组件.总共也就有了三个的功能:动画效果展示:跑步的定时以及定位功能:

新春好跑步,以及数据库“读写分离”的点滴考虑

新春的好日子: 小风吹来: 花一样的味道: 满满的幸福滋味. 迈开步子在宽敞的马路上跑步,步伐轻盈,多么美好的事情. 跑步总是枯燥的,只有奔跑奔跑: 跑步是孤独的,每个人的都有自己的节奏: 跑步的时候总爱瞎想,昨天和一些同学聊到了数据库的"读写分离". 在我有限的认识中,我一直认为数据库"读写分离",是为了提升数据库的瓶颈,因为数据库写总是相对比较少,而读取可能总是比较多,甚至高几个数量级. 比如一个电子商务网站,把某一个产品上架,可能一个月才需要写一次,但是每天都

牛跑步

133. [USACO Mar08] 牛跑步 ★★★   输入文件:cowjog.in   输出文件:cowjog.out   简单对比时间限制:1 s   内存限制:128 MB $Bessie$准备用从牛棚跑到池塘的方法来锻炼. 但是因为她懒,她只准备沿着下坡的路跑到池塘,然后走回牛棚. $Bessie$也不想跑得太远,所以她想走最短的路经. 农场上一共有$M (1 <= M <= 10,000)$条路,每条路连接两个用$1..N(1 <= N <= 1000)$标号的地点.

当你躲在被窝里点外卖时,看看比你忙碌100倍的领导者们是如何坚持跑步的?!

随着国人的生活水平的不断提升,吃饱穿暖已经不再是人们渴求的事情,更多的目光则被放到了健康上面. 不久前,<中国青少年体育发展报告(2015)>正式公布,显示出的情况令人咋舌,大学生的体质堪忧,在耐力方面甚至赶不上中学生. 年年都有大学生在校进行体测时猝死的情况发生,导致不少大学为避免类似情况纷纷取消1000米跑步测试,改为其他项目,加上大学生基本上是属于放养教育,很少有学生会主动锻炼,也就给健康埋下了极大的隐患. 今年4月份,美网站就评选出了全球最健康的10个国家. 如果你问中国排在第几,我只

互联网巨头跑步入场 加速布局跨境电商

巨大的国内需求和日益宽松的政策环境,使跨境电商市场日益火爆.据商务部公布的全球贸易格局报告预测,2016年我国跨境电商进出口额将增长至6.5万亿元,年增速将超30%.面对如此巨大的市场诱惑,一向嗅觉敏锐的互联网企业已跑步入场.目前,包括阿里巴巴.京东.亚马逊.唯品会等互联网企业均已纷纷上线跨境电商业务,并针对与之息息相关的跨境物流等难点问题,展开积极布局. 市场前景诱人 毫无疑问,诱人的市场前景是跨境电商市场日益火爆的主要原因.据电子商务研究机构中国电子商务研究中心的数据,2014年我国跨境电商

【NOIP2016】天天爱跑步(树上差分)

题意: 小c同学认为跑步非常有趣,于是决定制作一款叫做<天天爱跑步>的游戏.?天天爱跑步?是一个养成类游戏,需要 玩家每天按时上线,完成打卡任务.这个游戏的地图可以看作一一棵包含 N个结点和N-1 条边的树, 每条边连接两 个结点,且任意两个结点存在一条路径互相可达.树上结点编号为从1到N的连续正整数.现在有个玩家,第个玩家的 起点为Si ,终点为Ti  .每天打卡任务开始时,所有玩家在第0秒同时从自己的起点出发, 以每秒跑一条边的速度, 不间断地沿着最短路径向着自己的终点跑去, 跑到终点后该

天天爱跑步[NOIP2016]

时间限制:2 s   内存限制:512 MB [题目描述] 小C同学认为跑步非常有趣,于是决定制作一款叫做<天天爱跑步>的游戏.<天天爱跑步>是一个养成类游戏,需要玩家每天按时上线,完成打卡任务. 这个游戏的地图可以看作一棵包含n个结点和n-1条边的树,每条边连接两个结点,且任意两个结点存在一条路径互相可达.树上结点编号为从1到n的连续正整数. 现在有m个玩家,第i个玩家的起点为Si,终点为Ti.每天打卡任务开始时,所有玩家在第0秒同时从自己的起点出发,以每秒跑一条边的速度,不间断

luogu P1353 [USACO08JAN]跑步Running

题目描述 The cows are trying to become better athletes, so Bessie is running on a track for exactly N (1 ≤ N ≤ 10,000) minutes. During each minute, she can choose to either run or rest for the whole minute. The ultimate distance Bessie runs, though, depe

【BZOJ1598】牛跑步 [A*搜索]

牛跑步 Time Limit: 10 Sec  Memory Limit: 162 MB[Submit][Status][Discuss] Description BESSIE准备用从牛棚跑到池塘的方法来锻炼. 但是因为她懒,她只准备沿着下坡的路跑到池塘, 然后走回牛棚. BESSIE也不想跑得太远,所以她想走最短的路经. 农场上一共有M 条路, 每条路连接两个用1..N标号的地点. 更方便的是,如果X>Y,则地点X的高度大于地点Y的高度. 地点N是BESSIE的牛棚;地点1是池塘. 很快, B