常用数据生成器

期望高度 \(O(\log)\)

/*
生成期望树高 O(logn) 级别的树
生成方法:钦定 1 为根,对于后续的节点 i,随机在 [1,i-1] 中选取一个点作为父亲
打乱方法:对所有点重新随机编号
*/
#include<random>
#include<iostream>
#include<algorithm>
#include<fstream>
#include<vector>
using namespace std;
typedef long long ll;
mt19937_64 getrnd(__builtin_ia32_rdtsc());
int rnd(ll l,ll r){return getrnd()%(r-l+1)+l;}
constexpr int N=1e7+10;
int n,p[N];
struct edge{int u,v;};
vector<edge> e;
void shuf(){for(int i=1;i<=n;i++) p[i]=i;shuffle(p+1,p+1+n,getrnd);for(edge &x:e){x.u=p[x.u];x.v=p[x.v];}
}
int main(){ofstream out("1.in");n=1e5;//节点数out<<n<<'\n';for(int i=2;i<=n;i++)e.push_back({i,rnd(1,i-1)});shuf();//随机打乱for(edge &x:e)out<<x.u<<' '<<x.v<<'\n';return 0;
}
/*
对于 n=1e5:
--以1为根:
----调用 shuf,平均树高在 20 左右浮动
----不调用 shuf,平均树高在 12 左右浮动
--随机选根:
----调用 shuf,平均树高在 22 左右浮动且方差较大
----不调用 shuf,平均树高在 20 左右浮动且方差较大
*/

期望高度 \(O(\sqrt n)\)

/*
生成期望树高 O(sqrtn) 级别的树
生成方法:随机生成一个 Prüfer 序列,根据此构造一棵树
打乱方法:对所有点重新随机编号
*/
#include<random>
#include<iostream>
#include<algorithm>
#include<fstream>
#include<queue>
using namespace std;
typedef long long ll;
mt19937_64 getrnd(__builtin_ia32_rdtsc());
int rnd(ll l,ll r){return getrnd()%(r-l+1)+l;}
constexpr int N=1e7+10;
int n,p[N],deg[N];
struct edge{int u,v;};
vector<int> prufer;
vector<edge> e;
priority_queue<int,vector<int>,greater<int>> leaf;
void prufer_decoding(){for(int i=1;i<=n;i++) deg[i]=1;for(int &v:prufer) ++deg[v];for(int i=1;i<=n;i++) if(deg[i]==1) leaf.push(i);for(int &v:prufer){int u=leaf.top();leaf.pop();e.push_back({u,v});--deg[u],--deg[v];if(deg[v]==1) leaf.push(v);}vector<int> remain;for(int i=1;i<=n;i++) if(deg[i]==1) remain.push_back(i);e.push_back({remain[0],remain[1]});
}
void shuf(){for(int i=1;i<=n;i++) p[i]=i;shuffle(p+1,p+1+n,getrnd);for(edge &x:e){x.u=p[x.u];x.v=p[x.v];}
}
int main(){ofstream out("1.in");n=1e5;//节点数out<<n<<'\n';for(int i=1;i<=n-2;i++) prufer.push_back(rnd(1,n));//随机生成 Prüfer 序列prufer_decoding();//根据 Prüfer 序列还原树shuf();//随机打乱for(edge &x:e)out<<x.u<<' '<<x.v<<'\n';return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/909888.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

沧州建设网站公司网络服务推广

文章目录 图像轮廓查找轮廓绘制轮廓轮廓的面积与周长多边形逼近与凸包外接矩形项目总览【车辆统计】视频加载【车辆统计】去背景【车辆统计】形态学处理【车辆统计】逻辑处理【车辆统计】显示信息【车辆统计】 图像轮廓 查找轮廓 # -*- coding: utf-8 -*- import cv2 import n…

12306网站建设多少钱如何提高百度权重

php中文网最新课程每日17点准时技术干货分享异常处理是软件开发过程中无法逃避的问题。对于一套设计良好代码高效的程序&#xff0c;出现异常的可能性会比较低&#xff0c;但这并不意味着不会出现异常,有些异常甚至会引起严重的后果&#xff0c;所以如何及时的发现程序中的异常…

优秀的集团网站微信公众号制作网页

1、什么是事务 在实际的业务开发中&#xff0c;有些业务操作要多次访问数据库。一个业务要发送多条SQL语句给数据库执行。需要将多次访问数据库的操作视为一个整体来执行&#xff0c;要么所有的SQL语句全部执行成功。如果其中有一条SQL语句失败&#xff0c;就进行事务的回滚&a…

个人两字印章在线制作网站百度关键词查询排名

鲸参谋监测的京东平台10月份牛奶乳品市场销售数据已出炉&#xff01; 10月份&#xff0c;牛奶乳品整体销售上涨。鲸参谋数据显示&#xff0c;今年10月&#xff0c;京东平台上牛奶乳品的销量将近1700万&#xff0c;同比增长1%&#xff1b;销售额将近17亿&#xff0c;同比增长约5…

谁可以做网站优化排名推广网站制作用到什么技术

在本文中&#xff0c;我将展示如何在Apache Aries Blueprint xml文件中添加一些内联脚本。 我不一定会称其为最佳实践&#xff0c;但我一直认为这种功能可能有用。 可能当我被迫使用xml来模拟命令式编程结构&#xff08;例如使用Apache Ant时&#xff09;时&#xff0c;我开始…

大庆网站制作公司地址大学生网页设计作业成品

MD[Gitlab 安装手册] Gitlab 安装手册 说明: Gitlab最低配置1核2g,建议配置2核4g以上且单独部署,如有多项目CI/CD要求,可以4核8g 1. 安装相关依赖(安装policycoreutils) [rootsjclinux ~]# yum -y install policycoreutils openssh-server openssh-clients postfix 2. 启动s…

做网站每年要交不费用吗成都公司注册地址托管

一.什么是死锁&#xff1f; 死锁是由于两个或以上的线程互相持有对方需要的资源&#xff0c;导致这些线程处于等待状态&#xff0c;无法执行。 二.产生死锁的四个必要条件 1.互斥性&#xff1a;线程对资源的占有是排他性的&#xff0c;一个资源只能被一个线程占有&#xff0c;直…

中国做铁塔的公司网站网站建设企业服务

目录 力扣724. 寻找数组的中心下标 解析代码 力扣724. 寻找数组的中心下标 724. 寻找数组的中心下标 LCR 012. 寻找数组的中心下标 1991. 找到数组的中间位置&#xff08;三道一样的题&#xff0c;一鱼三吃&#xff09; 难度 简单 给你一个整数数组 nums &#xff0c;请…

基于RSSI修正的定位算法分析

分析和实现基于RSSI(接收信号强度指示)修正的定位算法 % 基于RSSI修正的定位算法分析 clear; clc; close all;%% 1. 参数设置 fprintf(设置定位系统参数...\n);% 环境参数 n = 2.5; % 路径损耗指数 (…

接口测试流程+jmeter并发+面试题(总结) - 指南

接口测试流程+jmeter并发+面试题(总结) - 指南2025-09-22 17:49 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display…

c# 反射动态添加Attribute

//测试类 var type = typeof(TestClass);//给类对象添加、获取特性 TypeDescriptor.AddAttributes(type, indexAttr); //var attr = TypeDescriptor.GetAttributes(type)[typeof(DynamicCacheBufferAtrribute)] as Dyn…

wordpress站内链接跳转优秀企业宣传册样本

这段代码是 _make_causal_mask 函数中处理滑动窗口局部注意力的部分。这里的目的是创建一个额外的掩码,以便在自注意力机制中只考虑每个位置附近的一定数量的位置,而不是所有之前的位置。这通常用于减少计算复杂性和提高长序列处理的效率。 代码分析如下: diagonal = past_k…

网站开发搭建合同范本如何建立免费网站

转载请说明出处~本文教程翻译jni官方文档的部分内容。要查看Jni官方文档&#xff0c;请点击这里先感叹一下时光如水&#xff0c;岁月不留人哇有木有&#xff01;&#xff01;&#xff01;认真想想在XMU的这三年&#xff0c;真的改变了我好多。我还清楚地记得学习C语言写的第一个…

重庆商城网站建设百度收录的网站标题 --

第一轮 说说HaspMap底层原理&#xff1f;再说说它跟HaspTable和ConcurrentHashMap他们之间的相同点和不同点&#xff1f; 讲讲jdk1.7和1.8的区别&#xff1f; 几种内置的线程池 MySQL事务隔离级别以及MVCC机制 Redis缓存雪崩、缓存穿透以及如何解决&#xff1f; 分布式架构…

广东品牌网站建设报价做门户网站 cms

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点&#xff0c;AB训练集各由5张二值化的图片组成&#xff0c;让A中有3个1&#xff0c;B中全是0&#xff0c;统计迭代次数并排序。 在3*5的空间内分布3个点有19种可能&#xff0c;但不同的分布只有6种 差值就诶够 …

旅游网站建设的目标青岛最大的设计院

1、集合元素处理&#xff08;传统方式&#xff09; 现在有两个ArrayList集合存储队伍当中的多个成员姓名&#xff0c;要求使用传统的for循环&#xff08;或增强for循环&#xff09;依次进行一下若干操作步骤&#xff1a; 第一个队伍只要 名字为 3 个字 的成员姓名&#xff1b;存…

手机网站模板网深圳小企业网站建设

本文旨在编写一个简单的shell外壳程序&#xff01;功能类似于shell的一些基本操作&#xff01;虽然不能全部实现shell的一些功能&#xff01;但是通过此文章&#xff0c;自己写一个简单的shell程序也是不成问题&#xff01;并且通过此文章&#xff0c;可以让读者对linux中一些环…

我做的静态网站怎么发布到网上手机网站规格

随着人工智能的不断发展&#xff0c;ChatGPT&#xff08;OpenAI&#xff09;和文心一言都代表了当前先进的自然语言处理技术。它们在智能回复、语言准确性和知识库丰富度等方面都有各自的优势。在下面的比较中&#xff0c;我们将从多个角度探讨这两个AI助手&#xff0c;帮助你更…

农业产品如何建网站一个空间可以做几个网站吗

FPGADDRSERDESUSB3.0方案&#xff0c;设备包含发送端接收端&#xff0c;物料上采用光纤通讯&#xff0c;数据只能单向传输&#xff0c;避免反向攻击&#xff0c;确保系统安全 客户应用:高安全、高可靠性要求的场景 主要性能: 1.支持USB3.0传输&#xff0c;实测可达到350MB/s 2.…

MyBatis-Plus 全方位深度指南:从入门到精通

在 Java 的世界里,数据持久化是任何企业级应用的基石。MyBatis 以其轻量、灵活以及对 SQL 的完全掌控而备受开发者喜爱。然而,随着项目复杂度的增加,开发者们发现自己陷入了编写大量重复性 CRUD(创建、读取、更新、…