FJWC2019 直径
题目描述
你需要构造一棵至少有两个顶点的树,树上的每条边有一个非负整数边权。树上两点 i,j 的距离dis(i,j) 定义为树上连接i 和j 这两点的简单路径上的边权和。
我们定义这棵树的直径为,所有满足 1≤i<j≤n 的 (i,j) 中, dis(i,j) 最大的。如果有多个这样的 (i,j),那么均为直径。
你需要构造一个恰有 k 个直径的树。可以证明在给定的限制下一定有解。
你构造的树需要保证 2≤n≤5000,且每条边的边权满足 50≤w≤10^5。
对于所有数据,满足 1≤k≤5000000。
Solution
构造题真是有意思…[然而本蒟蒻不会x]
构造一棵挂了三个菊花的图…
大概长这样?

我图画的还是好丑啊
我们要干一件事情我们使得每个菊花图内的每一个分叉都能和另一个菊花的任意一个分叉形成一条直径
这时候我们设左边那棵菊花的节点数为a,下面那棵的节点数为b,右边那棵的节点数为c
那么这个图的直径的数量就是ab+bc+ac
然后我们感性理解打表一下发现,a,b,c最大为1500的时候,就可以做出K的所有情况。
我好菜啊都不会构造
Code
- #include <bits/stdc++.h>
- using namespace std;
- int a,b,c,K;
- int main()
- {
- freopen("diameter.in","r",stdin);
- freopen("diameter.out","w",stdout);
- scanf("%d",&K);
- for (a=1;a<=1500;a++)
- for (b=a;b<=1500;b++)
- for (c=b;c<=1500;c++)
- if (a*b*1ll+b*c*1ll+a*c*1ll==K)
- goto sinian;
- a=b=c=-2;
- sinian:
- if (a==-2||K<=2000)
- {
- printf("%d\n",K+1);
- printf("1 2 2\n");
- for (int i=2;i<=K;i++)
- printf("%d %d 0\n",i,i+1);
- }
- else
- {
- printf("%d\n",a+b+c+1);
- printf("1 2 6666\n");
- printf("1 3 6666\n");
- printf("1 4 6666\n");
- --a;--b;--c;
- for (int i=5;i<a+5;i++)
- printf("2 %d 0\n",i);
- for (int i=a+5;i<a+b+5;i++)
- printf("3 %d 0\n",i);
- for (int i=a+b+5;i<a+b+c+5;i++)
- printf("4 %d 0\n",i);
- }
- return 0;
- }
FJWC2019 直径的更多相关文章
- fjwc2019 D2T1 直径 (构造)
#181. 「2019冬令营提高组」直径 (这题构造题是我考场上唯一一A的题........) 先看这个特殊的Subtask4 Subtask 4(20pts):$\sqrt{1+8k}$ 为整 ...
- DFS序+线段树 hihoCoder 1381 Little Y's Tree(树的连通块的直径和)
题目链接 #1381 : Little Y's Tree 时间限制:24000ms 单点时限:4000ms 内存限制:512MB 描述 小Y有一棵n个节点的树,每条边都有正的边权. 小J有q个询问,每 ...
- 【bzoj3124】 Sdoi2013—直径
http://www.lydsy.com/JudgeOnline/problem.php?id=3124 (题目链接) 题意 求树的直径以及直径的交. Solution 我的想法超麻烦,经供参考..思 ...
- poj2631 求树的直径裸题
题目链接:http://poj.org/problem?id=2631 题意:给出一棵树的两边结点以及权重,就这条路上的最长路. 思路:求实求树的直径. 这里给出树的直径的证明: 主要是利用了反证法: ...
- PCB上过孔via钻孔的直径如何设置 是任意的吗 谈谈PCB钻孔工艺及规格
PCB上过孔via钻孔的直径如何设置,是不是可以随便填入一个直径尺寸就行了?比如我的走线宽度是6mil,那我的via过孔直径也设置为6mil,节约布线空间岂不是更好?这样的设计板厂是否都能按照设计规格 ...
- codeforces 734E(DFS,树的直径(最长路))
题目链接:http://codeforces.com/contest/734/problem/E 题意:有一棵黑白树,每次操作可以使一个同色连通块变色,问最少几次操作能使树变成全黑或全白. 思路:先进 ...
- poj1985 Cow Marathon (求树的直径)
Cow Marathon Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 3195 Accepted: 1596 Case ...
- POJ1849Two[DP|树的直径](扩展HDU4003待办)
Two Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 1390 Accepted: 701 Description Th ...
- VIJOS1476旅游规划[树形DP 树的直径]
描述 W市的交通规划出现了重大问题,市政府下决心在全市的各大交通路口安排交通疏导员来疏导密集的车流.但由于人员不足,W市市长决定只在最需要安排人员的路口安放人员.具体说来,W市的交通网络十分简单,它包 ...
随机推荐
- Zookeeper 源码(三)Zookeeper 客户端源码
Zookeeper 源码(三)Zookeeper 客户端源码 Zookeeper 客户端主要有以下几个重要的组件.客户端会话创建可以分为三个阶段:一是初始化阶段.二是会话创建阶段.三是响应处理阶段. ...
- Java程序设计——对象序列化
对象序列化的目标是将对象保存到磁盘中或允许在网络中直接传输对象,对象序列化机制允许把内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制流持久保存在磁盘上,通过网络将这种二进制流传输到另 ...
- 推送安霸A7L实时视频至RTMP服务器(1)
使用librtmp进行H264与AAC直播 (转:http://www.codeman.net/2014/01/439.html) 1.帧的划分 1.1 H.264帧 对于H.264而言每帧的界定符为 ...
- 使用word 2010 发布csdn博客
目前大部分的博客作者在用Word写博客这件事情上都会遇到以下3个痛点: 1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.使用Word写 ...
- Oracle EBS FND User Info API
1. 与用户信息相关API PKG. --和用户处理有关的API FND_USER_PKG; --和用户密码处理有关的API FND_WEB_SEC; --和用户职责处理有关的API ...
- SqlServer 的一个坑
以前一直以为sqlserver 在做ddl 操作的时候是锁表的,而oracle 是锁行,感觉oracle 要比sqlserver 先进一些,但是这是我的认识错误.其实sqlserver 也是可以锁行的 ...
- Cockroachdb 四、用户管理及授权
四 用户管理及授权 用户管理 简介# Create a user:cockroach user set <username> <flags> # List all users: ...
- Spring中ApplicationContext和beanfactory区别---解析二
一.BeanFactory 和ApplicationContext Bean 工厂(com.springframework.beans.factory.BeanFactory)是Spring 框架最核 ...
- java提示找不到或无法加载主类
背景 默许jdk的配置大家都没有问题,执行java,javac无报错,但今天在尝试在本地起来kafka的时候,提示java 找不到或无法加载主类,然后日志中提示 Files 找不到或无法加载主类:C: ...
- sharepoint excute power shell
Add-PSSnapin microsoft.sharepoint.powershell$UPA = Get-SPServiceApplication | ? {$_.typeName -like ' ...