CTEX学习二

这篇博客详细介绍了CTEX的进阶使用技巧,包括如何优化配置、解决常见问题和提升编辑效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这次是个作业哦!

\documentclass[a4paper]{ctexart}
\usepackage{indentfirst}
\usepackage{listings}
\usepackage{graphicx}
\usepackage{geometry}
\usepackage{float}%%控制图片的相对位置
\usepackage{amssymb}%%导入数学包
\usepackage{color} %%设置字体的颜色
\geometry{left=2.5cm,right=2cm,top=2.5cm,bottom=2.5cm}
\author{软工1班  163x0  mouse}
\title{算法设计第一次作业}
\begin{document}
\maketitle
\noindent {\color{blue}1、铺砖问题的实现}

\hangafter=1\setlength{\hangindent}{2em}输入:预留一块砖和m 

\hangafter=1\setlength{\hangindent}{2em}输出:铺砖方案

\lstset{escapeinside=``}
\begin{lstlisting}[language=java,frame=shadowbox]
 package test;

/**
 *
 * @author Mouse
 *
 */

import java.util.Scanner;

public class play {
	public static int count = 0; // `第count块L型`

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		// `特殊方块坐标`
		System.out.println("`请给定特殊方块的横坐标:`");
		int dr = sc.nextInt();
		System.out.println("`请给定特殊方块的纵坐标:`");
		int dc = sc.nextInt();
		System.out.println("`请给定方盘的边长:`");
		int SIZE = sc.nextInt();
		int[][] walls = new int[SIZE][SIZE];
		walls[dr][dc] = -1;
		System.out.println("`覆盖前:`");
		show(walls);

		wallBoard(walls, 0, 0, dr, dc, SIZE);
		System.out.println("`覆盖后:`");
		show(walls);

	}

	/**
	 *
	 * @param walls
	 * @param sr
	 *            `盘左上角编号`
	 * @param sc
	 *            `盘右上角编号`
	 * @param dr
	 *            `特殊砖行号`
	 * @param dc
	 *            `特殊砖列号`
	 * @param SIZE
	 *            `盘的边长`
	 */
	public static void wallBoard(int[][] walls, int sr, 
     int sc, int dr, int dc,int SIZE) {
		if (SIZE == 1)
			return;
		int newSize = SIZE / 2;
		int newCount = count;
		count++;

		/*
		 * `左上角`
		 */
		if (dr < sr + newSize && dc < sc + newSize) {
			wallBoard(walls, sr, sc, dr, dc, newSize);
		} else {
	  walls[sr + newSize - 1][sc + newSize - 1] = newCount;
			wallBoard(walls, sr, sc, 
             sr + newSize - 1, sc + newSize - 1,newSize);
		}

		/*
		 * `右上角`
		 */
		if (dr < sr + newSize && dc >= sc + newSize) {
	wallBoard(walls, sr, sc + newSize, dr, dc, newSize);
		} else {
		walls[sr + newSize - 1][sc + newSize] = newCount;
			wallBoard(walls, sr, sc + newSize,
            sr + newSize - 1, sc + newSize,newSize);
		}

		/*
		 * `左下角`
		 */
		if (dr >= sr + newSize && dc < sc + newSize) {
			wallBoard(walls, sr + newSize, sc,
                 dr, dc, newSize);
		} else {
	 walls[sr + newSize][sc + newSize - 1] = newCount;
			wallBoard(walls, sr + newSize, sc,
            sr + newSize, sc + newSize - 1,newSize);
		}

		/*
		 * `右下角`
		 */
		if (dr >= sr + newSize && dc >= sc + newSize) {
			wallBoard(walls, sr + newSize, 
            sc + newSize, dr, dc, newSize);
		} else {
			walls[sr + newSize][sc + newSize] = newCount;
			wallBoard(walls, sr + newSize, sc + newSize, 
              sr + newSize, sc+ newSize, newSize);
		}
	}

	private static void show(int[][] walls) {
		for (int i = 0; i < walls.length; i++) {
			for (int j = 0; j < walls[i].length; j++) {
		System.out.printf("%4d", walls[i][j]);
			}
			System.out.println();
		}
		System.out.println("---------------------");

	}

}
\end{lstlisting}

\begin{figure}[H]
\centering
\scalebox{0.65}{\includegraphics{mouse.png}}
\caption{测试截图}
\end{figure}

\noindent 2、证明题

\hangafter=1\setlength{\hangindent}{2em}{\color{blue}(1) O(f)+O(g)=O(f+g)}

证明:

设F(N)=O(f)则存在正常数C1和 N1使得对所有的N$\geqslant$N1 有F(N)$\leqslant$C1f(N)

设G(N)=O(g)则存在正常数C2和N2使得对所有的N$\geqslant$N2 有G(N)$\leqslant$C2g(N)

令C3=max$\{$C1,C2$\}$,N3=max$\{$N1,N2$\}$,则对所有的N$\geqslant$N3,有
F(N)$\leqslant$C1f(N)$\leqslant$C3f(N);
G(N)$\leqslant$C2f(N)$\leqslant$C3g(N);

故有:
O(f)+O(g)=F(N)+G(N)$\leqslant$C3f(N)+C3g(N)=C3(f(N)+g(N))=O(f+g);
因此有:O(f)+ O(g)= O(f+g)


\hangafter=1\setlength{\hangindent}{2em}{\color{blue}(2) O(f)$\cdot$O(g)=O(f$\cdot$g)}

证明:

设F(N)=O(f)则存在正常数C1和 N1使得对所有的N$\geqslant$N1 有F(N)$\leqslant$C1f(N)

设G(N)=O(g)则存在正常数C2和N2使得对所有的N$\geqslant$N2 有G(N)$\leqslant$C2g(N)

故有:

O(f)$\cdot$O(g)=F(N)$\cdot$G(N)$\leqslant$C1$\cdot$C2$\cdot$f(N)$\cdot$g(N)=O(f$\cdot$g)

因此有 O(f)$\cdot$O(g)=O(f$\cdot$g)



\hangafter=1\setlength{\hangindent}{2em}{\color{blue}(3) 如果g(N)=O(f(N))$\Rightarrow$O(f)+O(g)=O(f)}

证明:

因为g(N)=O(f(N))则存在正常数C1和 N1使得对所有的N$\geqslant$N1 有G(N)$\leqslant$C1f(N)

设F(N)=O(f)  则存在正常数C2和 N2使得对所有的N$\geqslant$N2 有F(N)$\leqslant$C2f(N)

设G(N)=O(g)  则存在正常数C3和N3使得对所有的N$\geqslant$N3

有G(N)$\leqslant$C3g(N)

因此有:
O(f)+O(g)=F(N)+G(N)$\leqslant$C2F(N)+C3G(N)$\leqslant$C2F(N)+C3C1F(N)

令C4=max$\{$C1C3,C2$\}$

原式 $\leqslant$C4F(N)=O(f)

所以有如果g(N)=O(f(N))$\Rightarrow$O(f)+O(g)=O(f)

\hangafter=1\setlength{\hangindent}{2em}{\color{blue}(4) O(cf(N))=O(f(N)) c是正整数}

证明:

设F(N)=O(cf(N)) 则存在正常数C1和 N1使得对所有的N$\geqslant$N1
 有F(N)$\leqslant$C1cf(N)即O(cf(N))=O(f(N))
 所以等式成立
 
 \hangafter=1\setlength{\hangindent}{2em}{\color{blue}(5) f=O(f)}
 
 证明:
 
 如果存在常数C和自然数N0,使得当N$\geqslant$N0时,有f(n)$\leqslant$Cf(n),
 
 则称函数f(n)当N充分大时上有界,且f(n)是它的一个上界,则有f(n)=O(f(n))
 
 因此 f=O(f)
 
\end{document}  

运行效果为:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值