题目链接:

http://172.16.0.132/senior/#main/show/100026

题目:

有一个$n$个点$n$条边的有向图,每条边为$<i,f(i),w(i)>$,意思是$i$指向$f(i)$的边权为$w(i)$的边,现在小A想知道,对于每个点的$s_i$和$m_i$。
$s_i$:由$i$出发经过$k$条边,这$k$条边的权值和。
$m_i$:由$i$出发经过$k$条边,这$k$条边的权值最小值。

题解:

倍增即可(倍增的套路,转移是唯一的,体现在本题中是每个点出度为1)

$to[i][k]$表示节点i经过$2^k$个节点到达哪个节点,转移$to[i][k]=to[to[i][k-1]][k-1]$,边权和和路径最小值同理

#include<algorithm>
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
typedef long long ll; const int N=1e5+;
const int M=;
const int inf=1e9;
int n;
ll k;
int to[N][M],mi[N][M];
ll sum[N][M];
inline ll read()
{
char ch=getchar();
ll s=,f=;
while (ch<''||ch>'') {if (ch=='-') f=-;ch=getchar();}
while (ch>=''&&ch<='') {s=(s<<)+(s<<)+ch-'';ch=getchar();}
return s*f;
}
int main()
{
n=read();k=read();
for (int i=;i<n;i++) to[i][]=read();
for (int i=;i<n;i++) {sum[i][]=read();mi[i][]=sum[i][];}
for (int i=;i<M;i++)
{
for (int j=;j<n;j++) to[j][i]=to[to[j][i-]][i-];
for (int j=;j<n;j++)
{
sum[j][i]=sum[j][i-]+sum[to[j][i-]][i-];
mi[j][i]=min(mi[j][i-],mi[to[j][i-]][i-]);
}
}
for (int i=;i<n;i++)
{
ll s=,kk=k;
int m=inf,p=i;
for (int j=M-;j>=;j--)
{
if (!kk) break;
if ((1ll<<j)<=kk)
{
kk-=1ll<<j;
s+=sum[p][j];
m=min(m,mi[p][j]);
p=to[p][j];
}
}
printf("%lld %d\n",s,m);
}
return ;
}

最新文章

  1. Tomcat7安装配置 for Ubuntu
  2. mac--又发现了一款mac快捷键神器
  3. 将图片的二进制字节字符串在HTML页面以图片形式输出
  4. Eclipse构建Maven项目
  5. Xen虚拟机磁盘镜像模板制作(一)—Windows Server 2008(2012)
  6. Android中获取应用程序(包)的信息-----PackageManager的使用(一)
  7. Linux FTP服务安装和远程登录失败
  8. eclipse 代码中突然出现特殊字符
  9. System.Security.Cryptography.RSA.FromXmlString 系统找不到指定的文件和X509读取证书文件系统找不到指定的文件异常
  10. 路径规划算法之Bellman-Ford算法
  11. Django之setting文件
  12. Java并发编程-ReentrantLock源码分析
  13. iOSTableview 禁止下拉,允许上拉
  14. Learning Git by Animations
  15. C#读写txt文件的两种方法介绍[转]
  16. ZOJ 3769 Diablo III(分组背包)
  17. HDU 2553(N皇后)(DFS)
  18. nodejs做中间层,向后端取数据
  19. How to write educational schema.
  20. Yarn源码分析之MapReduce作业中任务Task调度整体流程(一)

热门文章

  1. Java-SpringCloud:Spring Cloud 是什么
  2. 运算符 and or ont
  3. centos7安装mysql(转载)
  4. Neo4j下执行cypher-shell时,Connection refused问题解决?
  5. MyBatis数据持久化(十一)Mybatis3、Spring4、Struts2整合开发
  6. Android设计模式——抽象工厂方法模式
  7. DataBaseFactory基础了解
  8. .NET Datatable常用系列一
  9. Guitar Pro 的双十一特惠活动,正在如火如荼进行中...
  10. Kattis - Speed Limit