P1269 信号放大器
P1269 信号放大器
给一棵有根树,树的边上有距离。根上有一个信号发射器,会发生强度为 h 的信号,信号会往所有的节点传播,然而每经过
一条边强度就会削减距离的大小,当信号到达某点时小于 1,则信号传递失败。树上每个节点可以放信号放大器。信号经过放大
器后会被重新放大为 h。问至少要放多少个信号才能使每个点的信号都能传输成功,或者判断无解。
$n ≤ 20000$。
来自大佬的原话:树形$DP$显然。
我怎么看不出来呢?还是太蒟了。。。
设$f[u]$为传递整个子树$u$所需的最小信号,$g[u]$表示传递整个子树$u$所需要的最少的信号放大器
若不放放大器,则
$g[u]=\sum g[v]$
$f[u]=max(f[u],f[v]+dis[u,v])$
考虑放的情况:当$f[v]+dis[u,v]>h$时必须在$v$放一个信号放大器,则$f[u]=1,g[u]++$
时间复杂度$ O(n)$
%%GEOTCBRL%%
#include<iostream>
#include<cstdio>
#include<vector>
#include<cmath>
#include<cstdlib> #define N 1010101
using namespace std; int f[N],g[N],h,n; vector<pair<int,int> >G[N]; bool flg=true; void dfs(int u,int fa){
int siz=G[u].size(),Tim=,son=;
for(int i=;i<siz;i++){
int v=G[u][i].first,tim=G[u][i].second;
if(v==fa){
Tim=tim;
continue;
}
if(tim>=h) {
printf("No solution.\n");
exit();
}
dfs(v,u);
++son;
g[u]+=g[v];
f[u]=max(f[u],f[v]+tim);
}
if(!son) g[u]=,f[u]=;
else{
if(u!=&&f[u]+Tim>h){
f[u]=;
g[u]++;
}
}
} int main()
{
scanf("%d",&n);
for(int v,w,k,i=;i<=n;i++){
scanf("%d",&k);
while(k--){
scanf("%d%d",&v,&w);
G[i].push_back(make_pair(v,w));
// G[v].push_back(make_pair(i,w));
}
}
scanf("%d",&h);
dfs(,); printf("%d\n",g[]); return ;
}
P1269 信号放大器的更多相关文章
- 题解—— 洛谷 p1269 信号放大器(贪心)
深刻的教训,不要写错读入 #include <cstdio> #include <algorithm> using namespace std; ; ; ,u[MAXM],v[ ...
- 自制wifi信号放大器
自制wifi信号放大器 只要家里安装了一台无线路由器,在家里的任何地方都可以使用带上网功能的电子产品上网,但是由于距离的问题,WiFi信号有强弱之分,离无线路由器稍微远点,信号就有所降低,上网速度受影 ...
- "手机信号放大器" 让手机信号增强的办法
我的住处信号及其的差,电话基本打不进来,放大器的话便宜的也得一百多,于是自己尝试各种办法让自己的手机有信号,于是奇迹般的成功了: 将手机放于铁缸内,并45度角斜放,刚好淹没手机为佳.于是信号奇迹般的3 ...
- 如何使用ESP8266、ESP8285做一个WiFi中继(WiFi信号放大器)
准备工作 准备一个深圳四博智联科技有限公司的ESP-F 模组.或者四博智联科技的NODEMCU 当我们拿到ESP-F模块后,可以按照以下接线进行测试: 即 VCC.EN 接 3.3v.GPIO15 G ...
- POJ P2318 TOYS与POJ P1269 Intersecting Lines——计算几何入门题两道
rt,计算几何入门: TOYS Calculate the number of toys that land in each bin of a partitioned toy box. Mom and ...
- 面包板入门电子制作(class1)视频 全套30集高清
面包板入门电子制作(class1)套件(30集高清) 本套件以电子制作中最基础的元器件在面包板上搭建电路,用启发性的视频教学方式,使学习者熟悉电子电路基础.发挥想像力.在创新设计和制作中学会独立设计和 ...
- 二模 (12)day2
第一题: 题目大意: 有N颗糖,两个人轮流取,每次只能取质数颗,不能取的输.求先取者若必胜,最少需要多少步胜利.(N<=10000) 解题过程: 1.看到N的范围比较小,先打个素数表,然后dp即 ...
- 系统运维-hub, repeater, switch, router初览
repeater, hub, switch, router都是针对与osi的7层网络模型的不同层而产生的设备,逐一概览如下: repeater:中继器 是网络物理层的一种连接设备,工作在osi的物理层 ...
- DP 动态规划
p1269 马棚 题目: 每天,小明和他的马外出,然后他们一边跑一边玩耍.当他们结束的时候,必须带所有的马返回马棚,小明有K个马棚.他把他的马排成一排然后跟随它走向马棚,因为他们非常疲劳,小明不想让他 ...
随机推荐
- ios23--动画做弹出提示框toast
) { /* [UIView animateWithDuration:2.0 animations:^{ // 执行动画 self.showHUB.text = @"当前购物车已空,赶紧买买 ...
- SQLyog软件里无法插入中文(即由默认的latin1改成UTF8编码格式)
问题详情: 无法插入中文? 解决办法: 需要修改编码格式,由默认的latin1改为utf8. 改成, 成功!
- android 3G移植【转】
本文转载自:http://blog.csdn.net/hanmengaidudu/article/details/17028383 一 开发环境简介 内容 说明 3G模块 华为EM820W(WCDMA ...
- Java文件实时监控Commons-io
今天看到一网友写的 Java 文件监控,实时监控文件加载 ,突然想到Commons-io中已有此功能的实现,先温习下 写个简单的Demo: 有三种方式: 1.java common.io 内部实 ...
- 洛谷P2827 蚯蚓——思路题
题目:https://www.luogu.org/problemnew/show/P2827 思路... 用优先队列模拟做的话,时间主要消耗在每次的排序上: 能不能不要每次排序呢? 关注先后被砍的两条 ...
- 测试-Swagger:Swagger
ylbtech-测试-Swagger:Swagger The Best APIs are Built with Swagger Tools. Swagger 是一款RESTFUL接口的文档在线自动生成 ...
- 830C
分块+二分 这道题思路很巧妙 我们大概可以推出一个式子sigma(d-[(ai-1)%d+1])<=k,要求求出d的最大值 然后我们化简一下,sigma(d-[(ai-1)-[(ai-1)/d] ...
- 【SpringMVC框架】非注解的处理器映射器和适配器
参考来源: http://blog.csdn.net/acmman/article/details/46968939 处理器映射器就是根据URL来找Handler,处理器适配器就是按照它要求的 ...
- 1、DOS基本命令
命令dir能给列出当前目录下面的所有文件.程序和子目录.所有目录(Windows 中称为文件夹)的目录名前面都有一个<DIR>标记.文件和程序名前面显示有这些文件和程序的大小. 想说的是, ...
- Asp.net:MVC认识
用MVC框架好长一段时间,发现每天都是写业务代码,不想每天只为了工作而写代码,想把工作中认识的MVC框架,遇到的问题,有时候天天在用,但是不知道里面是什么东西,什么原理,为啥這样写等一系列问题.进行梳 ...