题目大意:

给你n个点,每个点只有一条出路,请问每个点走了k步之后走过的权值和、
权值最小的边的权值。

考场想法:

考试时就先打了个暴力,然后发现一定会形成一个环,所以就想到了可以判环,然后
按照规律求答案,可是这种方法太麻烦了,所以就放弃了。

正解:

可以用倍增,求出每个i的2^j步到达的点(f)、权值和(len)、权值最小值(m),
如下:
f[i][j]=f[f[i][j-1]][j-1];
len[i][j]=len[i][j-1]+len[f[i][j-1]][j-1];
m[i][j]=Min(m[i][j-1],m[f[i][j-1]][j-1]);

代码:

#include<bits/stdc++.h>
using namespace std;
long long k,k1,ans1,ans2,a[36],m[100005][36],len[100005][36],n,u,f[100005][36];
long long Min(long long x,long long y)
{
if(x<y) return x;
return y;
}
int main()
{
scanf("%lld%lld",&n,&k);
for(int j=1;j<=35;j++)
{
for(int i=0;i<n;i++)
{
m[i][j]=1e10;
}
}
for(int i=0;i<n;i++) scanf("%lld",&f[i][0]);
for(int i=0;i<n;i++)
{
scanf("%lld",&m[i][0]);
len[i][0]=m[i][0];
}
a[0]=1;
for(int j=1;j<=35;j++)
{
a[j]=a[j-1]*2;
for(int i=0;i<n;i++)
{
f[i][j]=f[f[i][j-1]][j-1];
len[i][j]=len[i][j-1]+len[f[i][j-1]][j-1];
m[i][j]=Min(m[i][j-1],m[f[i][j-1]][j-1]);
}
}
for(int i=0;i<n;i++)
{
u=i;
ans1=0;
ans2=1e10;
k1=k;
for(int j=35;j>=0;j--)
{
if(k1<a[j]) continue;
k1=k1-a[j];
ans1=ans1+len[u][j];
ans2=Min(ans2,m[u][j]);
u=f[u][j];
}
printf("%lld %lld\n",ans1,ans2);
}
return 0;
}

100026. 【NOIP2017提高A组模拟7.7】图的更多相关文章

  1. [JZOJ 100026] [NOIP2017提高A组模拟7.7] 图 解题报告 (倍增)

    题目链接: http://172.16.0.132/senior/#main/show/100026 题目: 有一个$n$个点$n$条边的有向图,每条边为$<i,f(i),w(i)>$,意 ...

  2. JZOJ 100029. 【NOIP2017提高A组模拟7.8】陪审团

    100029. [NOIP2017提高A组模拟7.8]陪审团 Time Limits: 1000 ms  Memory Limits: 131072 KB  Detailed Limits   Got ...

  3. JZOJ 5328. 【NOIP2017提高A组模拟8.22】世界线

    5328. [NOIP2017提高A组模拟8.22]世界线 (File IO): input:worldline.in output:worldline.out Time Limits: 1500 m ...

  4. JZOJ 5329. 【NOIP2017提高A组模拟8.22】时间机器

    5329. [NOIP2017提高A组模拟8.22]时间机器 (File IO): input:machine.in output:machine.out Time Limits: 2000 ms M ...

  5. JZOJ 5307. 【NOIP2017提高A组模拟8.18】偷窃 (Standard IO)

    5307. [NOIP2017提高A组模拟8.18]偷窃 (Standard IO) Time Limits: 1000 ms Memory Limits: 262144 KB Description ...

  6. JZOJ 5286. 【NOIP2017提高A组模拟8.16】花花的森林 (Standard IO)

    5286. [NOIP2017提高A组模拟8.16]花花的森林 (Standard IO) Time Limits: 1000 ms Memory Limits: 131072 KB Descript ...

  7. JZOJ 5305. 【NOIP2017提高A组模拟8.18】C (Standard IO)

    5305. [NOIP2017提高A组模拟8.18]C (Standard IO) Time Limits: 1000 ms Memory Limits: 131072 KB Description ...

  8. 【NOIP2017提高A组模拟9.17】信仰是为了虚无之人

    [NOIP2017提高A组模拟9.17]信仰是为了虚无之人 Description Input Output Sample Input 3 3 0 1 1 7 1 1 6 1 3 2 Sample O ...

  9. 【NOIP2017提高A组模拟9.17】猫

    [NOIP2017提高A组模拟9.17]猫 题目 Description 信息组最近猫成灾了! 隔壁物理组也拿猫没办法. 信息组组长只好去请神刀手来帮他们消灭猫.信息组现在共有n 只猫(n 为正整数) ...

  10. 【NOIP2017提高A组模拟9.17】组合数问题

    [NOIP2017提高A组模拟9.17]组合数问题 题目 Description 定义"组合数"S(n,m)代表将n 个不同的元素拆分成m 个非空集合的方案数. 举个例子,将{1,2,3}拆分成2 个 ...

随机推荐

  1. kvm虚拟机添加在线快照

    1-1.创建默认快照--一般为一串数字 virsh snapshot-create 虚拟机名称 1-2.创建自定义名称快照 virsh snapshot-create-as 虚拟机名称 快照名称 2. ...

  2. 1005.Django自定义过滤器及标签

    一.关于自定义 自定义的引入 内置函数--------->自定义函数 内置模块--------->自定义模板 内置过滤器------>自定义过滤器 内置标签---------> ...

  3. WEB开发日志1

    2020/6/11 23:23 今天做系统时,用到二级菜单,菜单下方放了一个<iframe>标签,但二级菜单的菜单项太多,导致一部分菜单项被<iframe>覆盖,从而无法再选中 ...

  4. 01 docker容器技术基础入门

    本章内容: 1.container是什么? 2.LXC技术介绍 3.namespaces-名称空间,实现资源隔离 4.容器的资源分配--Cgroup,实现资源分配 5.LXC与dockers ---- ...

  5. XML元素限定

    XML元素限定的意义:XML 用于数据交换,而标签又是可以任意定义的,为了让 XML 的编写者和使用者之间能正确交流----->需要对标签等约定.在 XML 中有两种约定方法 dtd 格式和 x ...

  6. java 通过反射以及MethodHandle执行泛型参数的静态方法

    开发过程中遇到一个不能直接调用泛型工具类的方法,因此需要通过反射来摆脱直接依赖. 被调用静态方法示例 public class test{ public static <T> T get( ...

  7. Inno 设置文件或注册表ACL(访问控制权限)

    欢迎访问我的个人博客:xie-kang.com 在[Files]区段或者[Registry]区段中可以设置Permissions属性,从而达到指定操作ACL(访问控制权限),使用方法如下: <用 ...

  8. mysql 排序ROW_NUMBER() RANK() DENSE_RANK()

    with 月业绩 as (SELECT 年份,月份, ROUND(sum(总业绩)/100000) 业绩 FROM `myj` group by 年份,月份) select * ,ROW_NUMBER ...

  9. Spring--bean管理(easy)

    bean作用范围 利用同一个BookDao设置出来两个不同的对象,得到相同的地址: (默认为单例,即表现为同一个地址) 要是想要得到不同的地址,就需要我们在接口实现类的上面加上这样一个注解:(双例) ...

  10. 被冰封的 Bug:Fishhook Crash 修复纪实

    作者:郝连福,业界资深计算机技术专家,现任声网Agora 首席前端架构师.先后担任过 Principal Engineer/Engineering Director(UTStarcom).Sr. ar ...