【LaTeX】CTeX数据结构模板

关于 Jupyter Nbconvert 自定义 LaTeX 模板,中文兼容与格式设置,从 Notebook 构建 LaTeX PDF 文档 最近因为有写一部数据分析教程的计划,主要的平台是 Jupyter,因此涉及到了从编辑好的 Jupyter Notebook 构建 $\LaTeX$ 文档的问题。在这个过程中我遇到了一些基本的问题,这篇随笔实际上相当于一篇快报,简单记录一下我在解决这个问题的时候踩的坑,顺便给后来看到本博客文章的人指条明路,指点一下找资料的方向。 阅读详情
\documentclass[a4paper,11pt,oneside,openany]{article}
\usepackage{CJK}
\usepackage{times}
\usepackage{listings}
\usepackage{xcolor}
\usepackage{color}
\usepackage[top=1in, bottom=1in, left=0.75in, right=0.65in]{geometry} %边距
\usepackage{indentfirst}
\setlength{\parskip}{0.7ex plus0.3ex minus0.3ex}
\begin{document}

\lstset{numbers=left,
numberstyle=\tiny, keywordstyle=\color{blue!70}, commentstyle=\color{red!50!green!50!blue!50},
frame=shadowbox, rulesepcolor=\color{red!20!green!20!blue!20},xleftmargin=0pt,xrightmargin=6pt, breakindent=0pt}

\begin{CJK*}{GBK}{com}
\title{数据结构作业-2.19}
\maketitle
\date{}

Made by CTeX. Source code  on http://blog.youkuaiyun.com/c0de4fun.  

All rights reserved.

数据结构2.19题

【题目要求】:已知线性表中的元素以值递增有序排列,并以单链表作为存储结构。要求写一个{\color{red}{\CJKfamily{hei} 高效}}的算法删除链表中值大于mink并且小于maxk的元素
且释放被删除结点的空间,并分析算法的时间复杂度。注意,mink和maxk未必在链表中。

【算法分析】:题目中强调了高效,我们在这里采取的是“空间换时间”的策略,亦根据链表中元素构造一个整个区间的二叉查找树。树上所有非
叶子结点代表的是元素的{\color{red}{\CJKfamily{hei}区间}},而叶子结点则代表对应的元素,如果我们令
\begin{equation}
 N = LengthOf(mink,maxk)
\end{equation}
那么很显然,在这棵树上搜索{\color{red}{\CJKfamily{hei}单个元素}}的时间复杂度为
\begin{equation}
TimeComplexityOfSearchSingleElement=\Theta(\lg N)
\end{equation}
因为对于区间中的每一个元素,我们都要做一次搜索(无论该元素是否存在!)
\noindent
所以,删除该链表中所有位于(mink,maxk)的元素的总体的时间复杂度为
\begin{equation}
TimeComplexity = O(N\lg N)
\end{equation}
其空间复杂度为
\begin{equation}
SpaceComplexity = O(N\lg N)
\end{equation}

【算法改进及比较】:

一、改进时间复杂度

为了改进时间复杂度,我们可以开一个hash表,将hash表的key设置为链表中元素的value,hash表的value设置为链表中元素的位置。这样我们可以在
\begin{math}
O(1)
\end{math}
的时间复杂度删除对应元素,并且对元素的存取也可以达到
\begin{math}
O(1)
\end{math}
的级别。我们选择二叉搜索树的原因,是因为觉得这道题应该考的是二分搜索:-)

二、与二分搜索的比较

事实上,这道题如果用二分搜索做,可以节省一半的空间开销,但是二分搜索在这道题中有一个问题,亦即{\color{red}{\CJKfamily{hei}区间(mink,maxk)中的元素未必全部都在链表中}}
因此需要做一些额外的处理来保证二分搜索能找到对应的区间中的元素,而这无疑增加了程序的复杂程度。

【程序源代码】:
\clearpage
\begin{lstlisting}[language={[ANSI]C}]
#include <iostream>
#include <algorithm>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <map>

using namespace std;
const int EMPTY_VALUE = 0;
const int MAX_SIZE  = 10000;
int nums[MAX_SIZE];
int next[MAX_SIZE];
int tree[MAX_SIZE*2];
map<int,int> hash;
int comp(const void *a,const void *b)
{
    return *(int*)a - *(int*)b;
}
void buildTree(const int l ,const int r)
{
    int mid = (l+r)/2;
    if( l == r)
    {
        tree[mid] = hash[nums[mid]];
        return;
    }
    buildTree(l,mid);
    buildTree(mid+1,r);
}
void del(const int l, const int r, const int dest)
{
    int mid = (l+r)/2;
    if( nums[tree[mid]] == dest )
    {
        cout << "Found " << nums[tree[mid]] << " in linkTable!" << endl;
        int k = nums[tree[mid]];
        hash[nums[tree[mid]]] = 0; //First node is dummy.
        nums[tree[mid]] = EMPTY_VALUE;
        cout << "Del " << k << " successfully!" << endl;
        return;
    }
    if( r <= mid || l >= mid )
    {
        return;
    }
    else
    {
        if( nums[tree[mid]] > dest )
            del(l,mid,dest);
        if( nums[tree[mid]] < dest )
            del(mid+1,r,dest);
    }
}
int main()
{
    int num;
    hash.clear();
    memset(nums,EMPTY_VALUE,sizeof(nums));
    cout << "Please enter the Number of elements you want to sort " <<endl;
    cin >> num;
    for(int i = 1 ; i <= num ; i++)
    {
        cout << "Please enter the " << i << "th element" << endl;
        cin >> nums[i];
        hash[nums[i]] = i;
    }
    qsort(nums,num+1,sizeof(nums[0]),comp);
    buildTree(1,num);
    cout << "Please enter the boundary of [L,R] " << endl;
    int left,right;
    cout << "The left is: ";
    cin >> left;
    cout << "The right is: ";
    cin >> right;
    for(int i = left+1 ; i < right ; i++)
    {
        del(1,num,i);
    }
    cout << "The link table after deleting..." << endl;
    for(int i = 0 ; i <= num ; i++)
    {
        int cnt = 1;
        if( nums[i] != EMPTY_VALUE )
        {
            cout << nums[i] << " ";
            cnt++;
        }

        if ((cnt % 5) == 0)
            cout << endl;
    }
    return 0;
}

\end{lstlisting}
\end{CJK*}
\end{document}

从零到一:在Overleaf上定制你的专属LaTeX简历 本文详细指导如何在Overleaf上使用LaTeX制作专业简历,涵盖从模板选择、中文支持配置到内容填充和个性化调整的全流程。LaTeX简历以其排版精准、专业美观和维护便捷等优势,成为求职者和学术人士的首选工具。文章还提供了常见问题解决方法和优质模板推荐,助你快速打造出色的个人简历。 阅读详情

相关推荐

用LaTeX与Overleaf打造专业技术简历:从工具选择到内容架构

在文档排版领域,LaTeX作为一种基于标记语言的排版系统,其核心原理在于将内容与样式分离,通过编译命令生成格式精良的文档。这一特性使其在需要高度格式控制与专业排版的场景中展现出独特的技术价值,尤其适用于学术论文、技术报告等对格式一致性要求极高的领域。结合Overleaf这一云端协作平台,LaTeX的入门门槛被大幅降低,用户无需配置本地环境即可在线编辑和编译,极大地提升了工程实践的效率。对于技术求职者而言,利用LaTeX制作简历不仅能确保版面的专业与美观,其纯文本源文件也更易于进行版本控制。本文聚焦于如何将L

weixin_33693070的博客 406

LaTex各种命令汇总

函数、符号及特殊字符声调语法效果语法效果语法效果\bar{x}\acute{\eta}\check{\alpha}\grave{\eta}\breve{a}\ddot{y}\dot{x}\hat{\alpha}\tilde{\iota}函数语法效果语法效果语法效果\sin\theta\cos\theta\tan\theta\arcsin\frac{L}{r}\arccos\frac{T}{r}\a...

young951023的博客 10万+

数学建模竞赛与科研写作:从LaTeX环境搭建到机器学习模型实战指南

LaTeX作为学术论文排版的标准工具,通过内容与格式分离的哲学,实现了专业、美观的文档输出,其核心价值在于提升科研工作的规范性与效率。在机器学习领域,模型是解决预测、分类与优化问题的数学框架,从经典的线性回归、逻辑回归,到集成学习代表随机森林,再到处理序列数据的Transformer,不同模型适用于不同的数据模式与问题场景。掌握这些基础模型与算法的原理及适用条件,是进行有效数据分析和数学建模的基石。本文聚焦于数学建模与科研实践,系统梳理了从LaTeX环境配置、论文模板使用,到常用机器学习模型(如随机森林、T

weixin_30633405的博客 486

CTex学习

CTex学习 版面设计 \documentclass[12pt, a4paper, openany, twoside]{book} 12pt:指定普通文本的字体大小,章节标题、页眉、页脚等其他文本字体相应自动改变 a4paper:指定智障的大小为A4纸 twoside:指定当页码为奇数时出现在右边,为偶数时出现在左边 openany:总是在下一页开始新的一章 命令学习 \newcommand ...

Wandering的博客 1445

LaTeX图表双语标题进阶:从基础配置到自定义样式与子图排版

本文详细介绍了LaTeX中实现图表双语标题的进阶技巧,包括基础配置、样式定制和子图排版。通过bicaption和ccaption宏包的使用示例,帮助用户解决中英文对照标题的格式问题,提升学术论文和技术报告的排版质量。

weixin_33788244的博客 480

数学建模竞赛全流程实战指南:从团队组建到论文写作

数学建模是一种将现实世界复杂问题抽象为数学语言,并通过计算求解来指导决策的核心方法论。其原理在于通过建立变量、约束与目标函数之间的数学关系,模拟系统行为。这项技术的价值在于培养系统化、定量化的科学思维与解决开放性问题能力,是科研创新与工程优化的基础。在应用场景上,数学建模广泛渗透于工业控制、金融分析、交通物流、人工智能模型构建及各类学科竞赛中。本文聚焦于全国大学生数学建模竞赛,深入剖析团队角色配置、**Python与MATLAB工具链**的实战应用,以及如何通过**LaTeX**高效撰写专业论文,为参赛者提

weixin_30652897的博客 434

在Latex中显示中文

Latex显示中文字体

u011375991的博客 1万+

ctex 模板 源代码

ctex模板源代码,仅供初学者使用,主要还是收集了一些网上的资料,自己做了个简单的模板,,主要涉及简单的摘要,关键字格式,简单的公式引用格式,简单的图片引用格式,以及简单的参考文献格式。

使用CTEX生成中文pdf

现在说起来,我第一次学习LATEX的时候还是在2013年读书的时候。导师叫我去学习以便于未来写论文比较方便。当时由于主要用的是英文,所以没有什么大问题。然而当时在上课的时候,我就发现LATEX其实对部分西欧语言支持是比较好的,但是对于中文还是不行。这个问题最好是让LATEX编译器兼容UTF-8,甚至是unicode。虽然中间出现了CJK的解决办法,但是过于复杂,配置成功率不高,而且产生的问题也无法解决。最近经过一个朋友推荐,我发现CTEX还是可以用一用的。所以在这里写一下我的做法,给大家参考。这一步很简单,

超级喵窝窝的博客 4755

latex-tree:LaTeX的文档树视图

乳胶树 LaTeX的文档树视图。 产品特点 根据显示的文档树part , chapter , section , subsection , subsubsection , paragraph和subparagraph一个LaTeX文档中的标签。 (希望如此)准确生成树视图项目,并考虑到标题中的注释,换行符,怪异的符号等,并且将忽略文档中的注释行(请参见上面的屏幕快照中的示例)。 单击树状视图中的项目将光标(并滚动文本编辑器)定位到LaTeX文件中的相应位置。 单击树状视图后,文本编辑器将聚焦,因此您可以移动光标或立即开始键入(可以在设置中关闭)。 树状视图中的相应项目将根据当前光标位置突出显示(可以在设置中关闭)。 支持使用\include和\input多文件LaTeX文档(更多详细信息,) 基本 安装 在“设置”的“安装”页面上搜索latex-tree ,然后单击“安装”。 显示树状视图 在命令面板中使用“ Latex Tree: Toggle Tree View ”命令。 或者,使用键盘绑定ctrl-alt-m (对于macOS为cmd-alt-m )切换树形视图。 多

Proteus快速入门(最详细教程)

Proteus 是一款用于嵌入式单片机仿真的软件,用于在打PCB板之前对软件程序和硬件电路的正确性进行仿真验证。1.所以Proteus一般会和Keil软件进行联合仿真,在Proteus中绘制系统的电路图,在Keil软件中编写对应的程序后生成Hex文件。2.Proteus的仿真结果仅供参考,只能在一定程度上验证系统的可能性。实际实物系统还需要进行进一步的调试。以上即为本次分享的Proteus入门教程的全部内容,希望可以能够帮助到各位道友。

ediykk的博客 15万+

CTex应用学习笔记

CTex应用学习笔记 1.图片格式转换:png–>eps 方法一:在线免费网站转换 方法二:CTex自带的转换功能 方法二的具体步骤: step1:将需要转换的图片与tex文档放在同一文件夹 如下图,GS-A.png为待转换的图片,model2019.tex为CTex代码部分 step2:打开model2019.tex,点击CTex运行器中的“命令提示符” 该操作会使得命令提示符一打开执行路径就是.tex文件所在的路径 step3:可先执行下述代码块查看bmeps命令的相关属性 bmeps -h

weixin_46441115的博客 864

weblogic启动异常故障处理(boot认证失败)

root 用户生成的文件属主为 root,WebLogic进程将无权读取,直接导致认证失败。· ⚠️ 密码必须完全一致:第3步 AdminAccount 命令中设置的密码,与第5步所有 boot.properties 文件中 password= 字段的值,必须保证完全一致。如果您的域下配置了受管服务器实例(如 ms_server1、ms_server2 等),必须逐一更新各实例下的免密启动文件,确保实例重启时密码与AdminServer保持一致,否则实例启动会因认证失败而报错。此步骤至关重要,必须执行。

weixin_53389944的博客 222

【2025最新】中山大学LaTeX论文模板终极指南:从安装到排版的完整攻略

中山大学LaTeX论文项目模板(sysu-thesis)是专为中山大学师生打造的免费学位论文排版工具,严格遵循学校格式规范,提供封面、摘要、目录、参考文献等全套标准化模块,帮助毕业生快速完成符合要求的论文文档。 ## ???? 为什么选择中山大学LaTeX模板? ### ✅ 严格符合学校规范 模板内置中山大学本科生毕业论文(设计)写作与印制规范要求,无需手动调整字体、行距、页眉页脚等格式细节。规范...

gitblog_00206的博客 1208

【yolo】YOLOv8模型导出完全指南:从PT到ONNX及其他格式的完整实践

摘要:本文全面介绍了YOLOv8模型从PT格式导出为ONNX等部署格式的完整流程与最佳实践。重点解析了关键参数(如format、imgsz、simplify)的作用机制,特别强调输入尺寸imgsz会自动继承训练尺寸的特性,并提供了ONNX、TensorRT等格式的典型导出配置方案。文章还总结了常见问题解决办法,推荐使用simplify优化模型性能,同时分享了通过C#实现模型重命名的实用技巧。最后指出"训练决定能力,导出定义接口"的核心原则,帮助开发者高效完成模型部署转换。

songhuangong123的博客 1917

ubuntu系统禁止/开启内核自动更新

内核自动更新会导致驱动和内核版本不对应,导致驱动无法使用,所以需要禁止自动更新内核。本文介绍ubuntu系统禁止/开启内核更新的方法。

m0_50105717的博客 5289

程序员如何用LaTeX打造专业简历:Overleaf实战与模板解析

在求职过程中,一份结构清晰、专业美观的简历是程序员展示技术能力的关键。LaTeX作为学术界和出版界的排版标准,以其内容与样式分离、格式统一严谨的特性,成为制作高质量技术文档的理想工具。其核心价值在于通过严谨的语法和强大的扩展性,自动生成印刷品质感的文档,显著提升内容的专业性和可读性。在工程实践中,LaTeX尤其适合呈现代码、数学公式和结构化信息,广泛应用于技术报告、学术论文和项目文档的编写。结合Overleaf这一在线协作平台,LaTeX的学习和使用门槛大大降低,无需配置本地环境即可实时编译和预览,特别适合

weixin_34248487的博客 471

UG NX二次开发(C#)-外部模式-批量删除某些图层中的体对象和曲线对象

在 UG NX中,有时需要批量删除某文件夹下多个.prt文件中固定一些图层中的体对象和曲线对象,这时如果采用手动逐个打开模型,并选择针对的图层删除,即耗时也容易遗漏,因此采用外部模式来处理比较方便。本文介绍批量删除某些图层中的体对象和曲线对象。

GimiGimmy 3035

3个步骤解决LaTeX-Workshop常见问题:从编译失败到高效写作

LaTeX-Workshop是Visual Studio Code中功能最全面的LaTeX扩展,集成了实时预览、智能补全、语法检查和编译管理等功能。然而,许多用户在从传统LaTeX编辑器迁移时,常遇到编译失败、预览空白、智能提示失效等问题。本文将为你提供一套系统的问题诊断和优化方案,助你快速掌握这个强大的LaTeX写作工具。 ## 🔍 核心痛点:为什么你的LaTeX-Workshop不工作?

gitblog_00272的博客 454

【从零开始学习 UVM】1.1、UVM 概述 —— Preface

【从零开始学习 UVM】1.1、UVM 概述 —— Preface

努力,加油每一天鸭~ 826

智能门禁:AI Agent的访客意图识别

随着人工智能技术的飞速发展,智能门禁系统已经成为现代安全管理的关键环节。本文深入探讨了AI Agent在访客意图识别中的应用,通过详细的分析和实例讲解,揭示了智能门禁系统的核心工作原理、算法实现及其在安全领域的重要作用。文章结构清晰,逻辑严谨,旨在为广大技术爱好者提供一次全面的技术盛宴。在当今社会,门禁系统已成为各类建筑和机构不可或缺的安全设施。随着信息安全意识的增强,传统门禁系统的局限性逐渐显现。例如,在访客管理方面,传统方法通常依赖于人工登记、身份验证等手段,不仅效率低下,而且容易出现漏洞。

AI架构师小马 711

从Overleaf入门到LaTeX精通:云端协作与本地高效排版全攻略

LaTeX作为学术论文和技术报告排版的行业标准,以其内容与格式分离的核心哲学,确保了文档排版的精确性和一致性。其工作原理是通过编译引擎处理.tex源文件,结合宏包和文档类定义,自动生成高质量PDF。这一技术价值在于实现了复杂公式、参考文献和交叉引用的自动化管理,显著提升了学术写作效率。在应用场景上,LaTeX广泛用于期刊投稿、学位论文撰写和技术文档制作。本文聚焦于如何通过Overleaf这一云端协作平台降低LaTeX学习门槛,并深入解析了从基础排版到高级绘图(如TikZ)的进阶路径,同时探讨了与本地VSCo

congji3817的博客 462

手把手教你学Simulink——基于Simulink的滑模控制器车辆稳定性仿真建模示例

本文详细介绍了基于Simulink的滑模控制器在车辆稳定性控制中的应用。通过建立二自由度车辆动力学模型(含魔术公式轮胎),设计横摆角速度与质心侧偏角滑模控制器,在Simulink中实现直接横摆力矩控制。文章包含完整的建模流程:从参考模型设计、滑模控制器推导(含等效控制和边界层法),到MATLAB参数设定和Simulink模块搭建。通过双移线测试和路面突变场景验证,证明该控制器能在低附着路面(μ=0.3)将横摆角速度误差控制在±5%以内,显著提升车辆稳定性。同时提供了工程实践要点和扩展方向(如高阶滑模、自适应

MHD0815的博客 106

算法作业Latex-20161024

\documentclass[UTF8]{article} \usepackage{tikz} \usepackage{CTEX} \usepackage{amssymb} \usepackage{amsmath} \usepackage{xcolor} \begin{document} \title{Algorithm homework 2} \author{****\\ 21...

weixin_30824277的博客 92

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

要使用 R Markdown,首先需要安装 R 和 RStudio,接着安装 rmarkdown 包

“From Template”栏目代表着可对不同写作模板进行选择。如果你需要使用特定的写作模板,可以选择From Template栏目。这些模板可以帮助你快速创建格式化良好的报告。例如,你可以选择CteX中文套装模板来创建中文报告,并输出为PDF格式。

MD Code 244

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Python Tabulate 表格格式化:终端数据可读性的基础设施

表格格式化是结构化数据在终端、日志、CLI 和自动化报告中实现人眼高效解析的基础能力。其核心原理在于纯文本环境下的字符级排版计算,通过列宽推导、对齐控制与格式协议(tablefmt)达成跨平台一致输出。技术价值体现在零依赖、可预测性与轻量级,显著降低数据理解成本。典型应用场景包括 Pandas DataFrame 终端展示、运维监控日志、自动化日报生成及中文报表对齐。本文深入解析 Python Tabulate 的设计哲学与工程实践,覆盖中文对齐、数值精度、性能临界点及 CLI 工具集成等关键问题。

weixin_30245867的博客 456

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

上一篇: 【ZOJ3228】白濑肆の完美算法教室补番作,0.7%达成 白濑肆×AC自动机
下一篇: 开坑预告,2013年新番来袭。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值