CF822F Madness
题意:给你一棵边权都为1的树,要求选择互不相交的若干条路径,这些路径包含有所有点。
在每一条路径上选择一条边,放置一个动点,设置一个方向,它开始在该路径上来回运动,速度为1。每个点上都有一个停表,当有一个动点经过这个点时它清零。设res_i表示i停表的历史最大显示时间。设得res_1,res_2,res_3,……序列的字典序最小。
n<=100。(数据范围有时候是唬人的)
标程:
#include<bits/stdc++.h>
using namespace std;
const int N=;
int n,u[N],v[N],head[N],rd[N],cnt,To[N];
double ans[N];
struct node{int to,next;}num[N*];
void add(int x,int y)
{num[++cnt].to=y;num[cnt].next=head[x];head[x]=cnt;}
void dfs(int x,int fa,double lst)
{
double e=2.0/rd[x];//注意用2.0/而不是2/!
for (int i=head[x];i;i=num[i].next)
if (num[i].to!=fa)
{
lst+=e;while (lst>) lst-=;
int id=(i+)/;
if (lst<=) To[id]=x,ans[id]=lst;
else To[id]=num[i].to,ans[id]=lst-;
dfs(num[i].to,x,lst+);
}
}
int main()
{
scanf("%d",&n);
for (int i=;i<n;i++) scanf("%d%d",&u[i],&v[i]),add(u[i],v[i]),add(v[i],u[i]),rd[u[i]]++,rd[v[i]]++;
dfs(,-,);
printf("%d\n",n-);
for (int i=;i<n;i++) printf("1 %d %d %d %.8lf\n",i,u[i]+v[i]-To[i],To[i],ans[i]);
return ;
}
易错点:1.注意double的除法。
2.注意lst表示到动点到儿子的距离。往下一层dfs的时候注意变更。
题解:贪心+构造
发现当每一条边都独立为一条路径时,经过路径上每一个点的时间间隔是最小的。
因此发现某动点一来一回时间间隔为2,对于i点的停表,历史最大时间为2/deg[i]。一定可以构造出来。
dfs按照树的结构构造一下即可。
CF822F Madness的更多相关文章
- Javascript Madness: Mouse Events
http://unixpapa.com/js/mouse.html Javascript Madness: Mouse Events Jan WolterAug 12, 2011 Note: I ha ...
- 【BZOJ3958】[WF2011]Mummy Madness 二分+扫描线+线段树
[BZOJ3958][WF2011]Mummy Madness Description 在2011年ACM-ICPC World Finals上的一次游览中,你碰到了一个埃及古墓. 不幸的是,你打开了 ...
- 【BZOJ 3958】 3958: [WF2011]Mummy Madness (二分+扫描线、线段树)
3958: [WF2011]Mummy Madness Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 96 Solved: 41 Descripti ...
- JavaScript Madness: Dynamic Script Loading
Introduction I've developed some pretty seriously Javascript intensive sites, where the sheer quanti ...
- BZOJ4065 : [Cerc2012]Graphic Madness
因为两棵树中间只有k条边,所以这些边一定要用到. 对于每棵树分别考虑: 如果一个点往下连着两个点,那么这个点往上的那条边一定不能用到. 如果一个点往下连着一个点,那么这个点往上的那条边一定不能用到. ...
- BZOJ 3958 Mummy Madness
Problem BZOJ Solution 算法:二分+扫描线 快要2019年了,就瞎写一篇博客来凑数,不然感觉太荒凉了-- 答案是可二分的,那么二分的依据是什么呢?不妨设当前二分的答案为\(mid\ ...
- Codeforces 1464F - My Beautiful Madness(树的直径)
Codeforces 题面传送门 & 洛谷题面传送门 树上数据结构大杂烩(?) 首先考虑什么样的点能够在所有路径的 \(d\) 邻居的交集内.显然如果一个点在一条路径的 \(d\) 邻居内则必 ...
- openswan-ipsec.conf配置说明
Name ipsec.conf - IPsec configuration and connections Description The optional ipsec.conf file speci ...
- Canvas实例
<!doctype html> <html> <head> <meta charset="utf-8" /> <title&g ...
随机推荐
- jenkins+jacoco配置代码覆盖率
一.服务器端配置 1.在代码部署服务器中安装jacoco,用于手工/接口测试覆盖率监听收集 2a.正常情况下,可在服务器中代码部署模块下的default文件夹中,修改tomcat文件如下 其中,inc ...
- java 生成随机数字+字母组合 和字母组合
生成随机数包含数字,字母 /** * 生成随机数当作getItemID * n : 需要的长度 * @return */ private static String getItemID( int n ...
- &与&&,|与||的区别
今天在做leetcode的时候,遇到了运算符的不同而导致结果不一致的问题.记录一下提醒自己 中文名称与英文名称 &:按位与(Bitwise and) &&:逻辑与(logica ...
- 并发新构件之PriorityBlockingQueue:优先阻塞队列
PriorityBlockingQueue:优先阻塞队列:是带有优先级的阻塞队列,一个无界阻塞队列,它使用与类 PriorityQueue 相同的顺序规则,并且提供了阻塞获取操作.虽然此队列逻辑上是无 ...
- ECMS清除挂马以及后台升级实战(从ecms6.6~ecms7.0)
当时状况 Windows Server 2008 R2 Enterprise + 帝国CMS6.6 + MySql server软件: Microsoft-IIS/7.5 操作系统: WINNT ...
- SharpDx
layout category title permalink posts_by_category SharpDX SharpDX 系列 /post/sharpdx
- zepto-touch事件
<!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...
- 【优化】EXPLAIN--type
EXPLAIN执行计划中type字段分为以下几种: ALL INDEX RANGE REF EQ_REF CONST,SYSTEM NULL 自上而下,性能从最差到最好 type = ALL,全表扫描 ...
- MaxCompute 表(Table)设计规范
表的限制项 表(Table)设计规范 表设计主要目标 表设计的影响 表设计步骤 表数据存储规范 按数据分层规范数据生命周期 按数据的变更和历史规范数据的保存 数据导入通道与表设计 分区设计与逻辑存储的 ...
- NX二次开发-UFUN设置环境变量UF_set_variable
NX9+VS2012 #include <uf.h> #include <stdio.h> UF_initialize(); //UFUN方式 //设置环境变量 int a = ...