HihoCoder1192 简单的树嵌入 dfs、构造
2024-08-26 20:55:12
题目传送门:http://hihocoder.com/problemset/problem/1192
大意:给出一棵$N$个点的树,边权为$1$,要求给每个点构造$M$个权值$v_1...v_M$,使得对于任意$i,j$,都有$dis(i,j)=\sum\limits_{i=1}^M |v_i-v_j|$。$N \leq 100$,要求构造出的答案满足$M \leq 100,-100 \leq v \leq 100$
$N \leq M$是这道题最好的构造性质
构造如下:每一次继承父亲的权值,并且将它自己的编号对应的权值变为$1$即可。易知这种构造方案符合条件
#include<bits/stdc++.h> using namespace std; struct Edge{ int end , upEd; }Ed[]; ] , N , cntEd , m[][]; ]; inline void addEd(int a , int b){ Ed[++cntEd].end = b; Ed[cntEd].upEd = head[a]; head[a] = cntEd; } void dfs(int now){ vis[now] = ; for(int i = head[now] ; i ; i = Ed[i].upEd) if(!vis[Ed[i].end]){ ; j < N ; j++) m[Ed[i].end][j] = m[now][j] + (j == Ed[i].end); dfs(Ed[i].end); } } int main(){ ios::sync_with_stdio(); cin.tie(); cout.tie(); cin >> N; ; i < N ; i++){ int a , b; cin >> a >> b; addEd(a , b); addEd(b , a); } dfs(); cout << N << endl; ; i < N ; i++){ ; j < N ; j++) cout << m[i][j] << ' '; cout << endl; } ; }
最新文章
- 一个简单的CSS3+js 实现3D BOX
- BWA MEM算法
- java中用spring实现数组类型输出
- android NDK 生成so 文件流程-ecplice
- Spring @Service生成bean名称的规则
- 08.C# System.Nulable<;T>;和空引用操作符(四章4.2-4.4)
- 苹果公司给出的检测 advertisingIdentifier 的方法
- json 基础
- 应用emailAutoComplete.js来自动显示邮箱后缀列表
- 使用EasyUI导入的js顺序
- 如何用PowerPoint制作闪烁的星星
- git 在苹果系统中的一些命令
- PHP面试题之算法解析
- 【MSP是什么】MSP认证之项目群管理
- deb安装了些啥?
- 高级java高并发,高性能,分布式,高可用,负载均衡,系统架构实战
- 一个简单的MVC框架的实现
- Redis 持久化之RDB和AOP
- MSSQL 2000 错误823恢复
- centos7上keepalived的安装和配置
热门文章
- Spring表单验证(Spring Validation)
- Android JNI c/c++调用java 无需新建虚拟机
- exception is feign.RetryableException: Connection refused (Connection refused) executing GET http://......
- vmare连接远程服务器的问题
- VS 函数,方法上方 引用等显示
- jquery常用表单操作
- Asp.net MVC通过自定义特性实现Action日志记录
- Linux 运行进程实时监控pidstat命令详解
- Android 电池系列
- 为PHP7安装Windows Server 2012 R2过程记录