题解:

感觉被坑出翔。。。

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

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

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

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

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

代码:

 #include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<string>
#define inf 1000000000
#define maxn 500
#define maxm 500+100
#define eps 1e-10
#define ll long long
#define pa pair<int,int>
#define for0(i,n) for(int i=0;i<=(n);i++)
#define for1(i,n) for(int i=1;i<=(n);i++)
#define for2(i,x,y) for(int i=(x);i<=(y);i++)
#define for3(i,x,y) for(int i=(x);i>=(y);i--)
#define for4(i,x) for(int i=head[x],y;i;i=e[i].next)
#define mod 45989
using namespace std;
inline ll read()
{
ll x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=*x+ch-'';ch=getchar();}
return x*f;
}
int n,m,s,tot,cnt,num[maxn],c[maxn][];
struct matrix
{
int d[maxn][maxn];
matrix(){memset(d,,sizeof(d));}
}a,b;
inline matrix operator *(matrix &x,matrix &y)
{
matrix z;
for1(i,m)
for1(j,m)
for1(k,m)
(z.d[i][j]+=x.d[i][k]*y.d[k][j])%=mod;
return z;
}
inline void print(matrix x)
{
for1(i,m)for1(j,m)cout<<i<<' '<<j<<' '<<x.d[i][j]<<endl;
}
void ksm(ll y)
{
for(;y;y>>=,a=a*a)
if(y&)b=b*a;
}
int main()
{
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
n=read();m=read();s=read();ll q=read();tot=;
for1(i,m)
{
int x=read(),y=read();
c[++tot][]=x;c[tot][]=y;
c[++tot][]=y;c[tot][]=x;
}
m=tot;
for1(i,m)for1(j,m)if(i!=j&&i!=(j^)&&c[i][]==c[j][])a.d[i][j]=;
for1(i,m)b.d[i][i]=;
ksm(q-);
for1(i,m)if(c[i][]==s)num[++cnt]=i;
for1(i,n)
{
int ans=;
for1(j,m)if(c[j][]==i)
for1(k,cnt)(ans+=b.d[num[k]][j])%=mod;
printf("%d\n",ans);
}
return ;
}

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

BZOJ3792: 跑步的更多相关文章

  1. 使用Python和Perl绘制北京跑步地图

    当你在一个城市,穿越大街小巷,跑步跑了几千公里之后,一个显而易见的想法是,如果能把在这个城市的所有路线全部画出来,会是怎样的景象呢? 文章代码比较多,为了不吊人胃口,先看看最终效果,上到北七家,下到南 ...

  2. 【原】移动web动画设计的一点心得——css3实现跑步

    今年3月份,由于公司业务需要,我转岗到微信产品部,离开了TID团队,人都是有感情的动物,更何况在一个团队呆了快 3 年,心中十分舍不得,鬼哥说了“天下没有不散的宴席...”,在我的世界里又多了一次离别 ...

  3. 【uoj261】 NOIP2016—天天爱跑步

    http://uoj.ac/problem/261 (题目链接) 题意 给出一棵树,给出一些起点和终点,没走一条路径耗费时间1,每个节点上有一个权值w,问有多少条路径经过这个节点时所用的时间恰好是w. ...

  4. UOJ261 【NOIP2016】天天爱跑步

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...

  5. BZOJ4719 [Noip2016]天天爱跑步

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...

  6. Unity3D为FirstPersonController添加跑步与下蹲动作

    using UnityEngine; using System.Collections; public class MyController : MonoBehaviour { ; ; ; priva ...

  7. Bzoj 1598: [Usaco2008 Mar]牛跑步 dijkstra,堆,K短路,A*

    1598: [Usaco2008 Mar]牛跑步 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 427  Solved: 246[Submit][St ...

  8. start running 开始跑步减肥

    begin 两个月前,逛超市的时候站在体重秤上称了称,一直以为自己体重很正常(BMI<25,虽然也不轻~~~),结果直接迈过超重,奔着肥胖跑去了(BMI>30,BMI计算器 http:// ...

  9. noip2016天天爱跑步

    题目描述 小c同学认为跑步非常有趣,于是决定制作一款叫做<天天爱跑步>的游戏.«天天爱跑步»是一个养成类游戏,需要玩家每天按时上线,完成打卡任务. 这个游戏的地图可以看作一一棵包含 个结点 ...

随机推荐

  1. 干净的 ef for Oracle appconfg配置

    <?xml version="1.0" encoding="utf-8"?> <configuration> <configSec ...

  2. java 两个日期之间的标准工作日(原创)

    package control; import java.text.ParseException; import java.text.SimpleDateFormat; import java.uti ...

  3. GHOST中DISK TO DISK 和DISK FROM to image的区别

    Ghost的Disk菜单下的子菜单项可以实现硬盘到硬盘的直接对拷(Disk-To Disk)、硬盘到镜像文件(Disk-To Image)、从镜像文件还原硬盘内容(Disk-From Image)。  ...

  4. Java字符串之性能优化

    基础类型转化成String 在程序中你可能时常会需要将别的类型转化成String,有时候可能是一些基础类型的值.在拼接字符串的时候,如果你有两个或者多个基础类型的值需要放到前面,你需要显式的将第一个值 ...

  5. Runtime 实现 动态添加属性

    利用动态加载为对象添加一个 block 点击属性; .h 文件 #import <UIKit/UIKit.h> @interface UIView (Tap) /** * 动态添加手势 * ...

  6. REST Design Concerns

    Less Requests, More data; one of the core RESTful API design paradigms is the concept of less API re ...

  7. Spring.net Could not load type from string value问题解决办法

    Spring.net Could not load type from string value "xxx" 错误原因可能有: 1.spring.net配置错误,注意要区别配置文件 ...

  8. CodeForces 32C

    额  找找规律吧  要用long long 才过. #include <cstdio> #include <algorithm> using namespace std; in ...

  9. wordpress如何删除没有文章的tags标签

    wordpress站点除了可以按博客category分类外,还可以在写文章的时候适当添加tags标签(当然,if you are lazy,哈哈,可以安装auto tag插件来实现),发布的posts ...

  10. firefly 环境配置所需工具

    原地址:http://www.9miao.com/question-15-59032.html http://down.9miao.com/attachment/forum/201405/19/120 ...