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个马棚.他把他的马排成一排然后跟随它走向马棚,因为他们非常疲劳,小明不想让他 ...
随机推荐
- 视频生成 量产 win 转 linux ffmpeg linux 安装 对批量视频的尽可能短时间生成
环境准备 Welcome to aliyun Elastic Compute Service! [root@mytest ~]# pip install baidu-aip Looking in in ...
- QQ空间说说 视频播放
http://182.254.8.83/vwecam.gtimg.com/1006_d81d60f3c83844a5ad6a184149d4ccbb.f0.mp4?sha=78A27CF4908AB5 ...
- ios33--线程安全
// // ViewController.m // 05-掌握-线程安全 // // 多线程下载文件:每个线程下的部分可能是交错的,到时候就拼接不了.除非每个线程下载的不是交错的,而是从头到尾依次分开 ...
- Linux/Android——Input系统之frameworks层InputManagerService (六)【转】
本文转载自:http://blog.csdn.net/u013491946/article/details/72638954 版权声明:免责声明: 本人在此发文(包括但不限于汉字.拼音.拉丁字母)均为 ...
- YTU 2639: 改错题:类中私有成员的访问
2639: 改错题:类中私有成员的访问 时间限制: 1 Sec 内存限制: 128 MB 提交: 431 解决: 297 题目描述 /* 改错题: 设计一个日期类和时间类,并编写全局函数displ ...
- 用nginx搭建基于rtmp或者http的flv、mp4流媒体服务器
http://itindex.NET/detail/48702-nginx-rtmp-http 一.流媒体播放方式 1. HTTP方式 这种方式要下载FLV视频文件到本地播放,一旦FLV视频文件下载 ...
- Java序列化系列教程(上)
一定义以及相关概念 互联网的产生带来了机器间通讯的需求,而互联通讯的双方需要采用约定的协议,序列化和反序列化属于通讯协议的一部分.通讯协议往往采用分层模型,不同模型每层的功能定义以及颗粒度不同,例如: ...
- 基于.Net Core的API框架的搭建(3)
5.加入缓存支持 我们希望为项目增加缓存支持,我们选择Redis做为缓存数据库. 首先,我们在Services目录增加一个缓存接口类ICacheService: using System; using ...
- spring cloud config搭建说明例子(一)-简单示例
服务端 ConfigServer pom.xml添加config jar <dependency> <groupId>org.springframework.cloud< ...
- 对mysql修改库里面所有的引擎mysaim 为 innodb
1.查看当前数据引擎的命令: show engines; 2. USE `[DBNAME]`; SELECT GROUP_CONCAT(CONCAT( 'ALTER TABLE ' ,TABLE_NA ...