BZOJ3792: 跑步
题解:
感觉被坑出翔。。。
显然我们把矩阵乘法中的点当成原图中的边就可以了。
先写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
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
41928
35701
40814
31937
22933
5754
15848
43620
10819
HINT
N<=30 M<=60 Q<=10^16
BZOJ3792: 跑步的更多相关文章
- 使用Python和Perl绘制北京跑步地图
当你在一个城市,穿越大街小巷,跑步跑了几千公里之后,一个显而易见的想法是,如果能把在这个城市的所有路线全部画出来,会是怎样的景象呢? 文章代码比较多,为了不吊人胃口,先看看最终效果,上到北七家,下到南 ...
- 【原】移动web动画设计的一点心得——css3实现跑步
今年3月份,由于公司业务需要,我转岗到微信产品部,离开了TID团队,人都是有感情的动物,更何况在一个团队呆了快 3 年,心中十分舍不得,鬼哥说了“天下没有不散的宴席...”,在我的世界里又多了一次离别 ...
- 【uoj261】 NOIP2016—天天爱跑步
http://uoj.ac/problem/261 (题目链接) 题意 给出一棵树,给出一些起点和终点,没走一条路径耗费时间1,每个节点上有一个权值w,问有多少条路径经过这个节点时所用的时间恰好是w. ...
- UOJ261 【NOIP2016】天天爱跑步
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...
- BZOJ4719 [Noip2016]天天爱跑步
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...
- Unity3D为FirstPersonController添加跑步与下蹲动作
using UnityEngine; using System.Collections; public class MyController : MonoBehaviour { ; ; ; priva ...
- Bzoj 1598: [Usaco2008 Mar]牛跑步 dijkstra,堆,K短路,A*
1598: [Usaco2008 Mar]牛跑步 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 427 Solved: 246[Submit][St ...
- start running 开始跑步减肥
begin 两个月前,逛超市的时候站在体重秤上称了称,一直以为自己体重很正常(BMI<25,虽然也不轻~~~),结果直接迈过超重,奔着肥胖跑去了(BMI>30,BMI计算器 http:// ...
- noip2016天天爱跑步
题目描述 小c同学认为跑步非常有趣,于是决定制作一款叫做<天天爱跑步>的游戏.«天天爱跑步»是一个养成类游戏,需要玩家每天按时上线,完成打卡任务. 这个游戏的地图可以看作一一棵包含 个结点 ...
随机推荐
- php异步加载、多线程fsockopen()、fputs()
index.php <?php function test() { $fp=fsockopen("localhost", 80, $errno, $errstr, 30); ...
- 百度地图api的实现
获取客户端IP地址经纬度所在城市 <?php $getIp=$_SERVER["REMOTE_ADDR"]; echo 'IP:',$getIp; echo ''; $con ...
- Perl内置变量速查表
[ 文件句柄 ] $| 如果非零, 则在对当前选定的文件执行写或打印操作后强制清除缓冲区 $% 当前选中文件句柄的当前页码 $= 当前选中文件句柄的当前页面长度 $- 当前选中文件句柄的页面剩余长度 ...
- SharpDeveloeper开发ASP.NET MVC汗流浃背
今天好不容易休息了一天,上网狂了一圈,突然想起了以前的一个轻量级的开发工具"SharpDeveloper",于是就下载试着来开发一下ASP.NET,但是老魏没有想到的是,虽然官方提 ...
- Lua基础之语法
目录:1.输出2.注释3.控制语句4.赋值语句5.运算符6.关键字7.变量类型8.其他 原文地址http://blog.csdn.net/dingkun520wy/article/details/49 ...
- dnf脚本的研究
[player number] 2 8 [pvp start area]0 0 0 00 0 0 00 0 0 0[dungeon]62[/dungeon][type] `[normal]`[gre ...
- R语言编程艺术# 数据类型向量(vector)
R语言最基本的数据类型-向量(vector) 1.插入向量元素,同一向量中的所有的元素必须是相同的模式(数据类型),如整型.数值型(浮点数).字符型(字符串).逻辑型.复数型等.查看变量的类型可以用t ...
- centos7 下手动安装MySQL-5.6.32-1.linux_glibc2.5.x86_64.rpm-bundle
由于centos7默认不再是mysql数据库,所以度算手动安装一个. 全程参考http://www.2cto.com/database/201501/371451.html 这里摘抄以下这个链接的内容 ...
- 团体程序设计天梯赛-练习集L1-017. 到底有多二
L1-017. 到底有多二 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 一个整数“犯二的程度”定义为该数字中包含2的个数与其 ...
- nginx上用fastcgi配置python环境
费了2天的功夫,翻阅了无数的中文.英文资料,终于搞定.写下此文留待以后翻阅用 本文环境,centOS 5.4 ,Nignx-0.8.49, Python 2.6.5 ========== ...