P6111 [USACO18JAN]MooTube S

该博客介绍了USACO18JAN比赛中的MooTube S问题,讨论了如何处理变量K并按权值排序解决推荐视频数的计算,强调了解决过程中动态规划的无后效性思想,并提到不能自荐的影响。

P6111 [USACO18JAN]MooTube S

在这里插入图片描述

输出格式

输出 Q 行。在第 i 行,输出 FJ 的第 i 个问题的答案。

输入输出样例

输入

4 3
1 2 3
2 3 2
2 4 4
1 2
4 1
3 1

输出

3
0
2

思路:
如果题目K只有一个值,然后求每个点的推荐的视频数,那就简单了。

但是难在K是个变量,就在要抓破头皮时,发现了洛谷竟然有题解

一开始对于每一对点,我想将这两个点之间所连的边的权值大于等于K都加进去。但还是老问题,K是个变量!

我们先将问题按K值排序(降),再按边权值将每条边进行排序(降)
因为对于一条边,如果K值大的你都能满足,那么小的也可以,换言之:你不会影响后面的结果,有点像动态规划的无后效性。
接下来,其实就是个加边的问题了。
根据题意,不能自荐,所以答案要-1(-他本身)。

#include<cstdio>
#include<iostream>
#include<cmath>
#include<cstring>
#include<string>
#include<algorithm>
#define fre(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout);
using namespace std;
const int MAX=2147483647;
const int N=5e3+10;
int n,qu,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值