1. 程式人生 > >機試NOI:基本演算法

機試NOI:基本演算法

NOI 1.11-2.5 基本演算法學習,不斷更新ing

1.11 程式設計基礎之二分查詢

二分查詢基本思想:

設定左範圍和右範圍,當查詢的數小於中點時,右範圍更新為中點;當大於時,左範圍更新為中點。以此類推,直到左-右==-1或者與中點値相等退出

1.13 程式設計基礎之綜合應用

這章所使用的方法,大多是一些常用小技巧或小問題,例如素數、數值轉換、高精度計算等

2.1 基本演算法之列舉

列舉,不是簡單的將所有的數進行列舉求符合條件的解,而是需要根據題意,可以將列舉範圍縮小進行求解,要聰明的進行列舉

2.2 基本演算法之遞迴和自呼叫
2.3 基本演算法之遞迴變遞推
2.4 基本演算法之分治
2.5 基本演算法之搜尋

BFS和DFS:BFS常用於最短、最小求解;DFS大多數情況都可以

相關推薦

NOI基本演算法

NOI 1.11-2.5 基本演算法學習,不斷更新ing1.11 程式設計基礎之二分查詢二分查詢基本思想:設定左範圍和右範圍,當查詢的數小於中點時,右範圍更新為中點;當大於時,左範圍更新為中點。以此類推,直到左-右==-1或者與中點値相等退出1.13 程式設計基礎之綜合應用這

數字影象處理基本演算法-卷積和相關

在執行線性空間濾波時,經常會遇到兩個概念相關和卷積二者基本相似,在進行影象匹配是一個非常重要的方法。 相關是濾波器模板移過影象並計算計算每個位置乘積之和的處理卷積的機理相似,但濾波器首先要旋轉180度。 相關的計算步驟: (1)移動相關核的中心元素,使它位於輸入影象待處理

機器學習基本演算法感知

import numpy as np import matplotlib.pyplot as plt # initialization n = 2 l = 100 x1 = np.random.randint(0, 100, size=(l, n)) x2 = np.random.randint

演算法講解第2題 結構體之快速排序

/* 題目: 學生成績排序:成績從低到高,姓名字母從低到高(區分大小寫),年齡從低到高排序 輸入: 3 abc 20 99 bcd 19 97 bed 20 97 輸出: bcd 19 97 bed 20 97 abc 20 99 易錯點: 1對於字元指標,scanf(

演算法講解 第3題 求兩個日期相差的天數

/* 問題:求兩個日期相差的天數,連續2天預設為一天。日期形式:YYYYMMDD 輸入: 20110412 20110422 輸出: 11 思路:方法1:將2個日期都應該化為絕對秒數,然後相減,用絕對秒數之差然後除以24*3600即可 易錯點: time_t mktim

演算法講解 第6題 給n個整數,按從大到小的順序,輸出前m大的整數

/* 問題:給n個整數,按從大到小的順序,輸出前m大的整數 0<m,n<1000000,每個整數[-500000,500000] 輸入: 5 3 3 -35 92 213 -644 輸出: 213 92 3 思路: 先按從小到大用快排排好序,然後輸出排好序的陣

華為字串的連接最長路徑查找

too 小寫 while arrays 空間 i++ har cap over 這個題更應該叫做字符串字典序排序 題目描述 給定n個字符串,請對n個字符串按照字典序排列。 輸入描述: 輸入第一行為一個正整數n(1≤n≤1000),下面n行為n個字符串

華為汽水瓶

方法 new code imp subject tint 表示 next quest 題目描述 有這樣一道智力題:“某商店規定:三個空汽水瓶可以換一瓶汽水。小張手上有十個空汽水瓶,她最多可以換多少瓶汽水喝?”答案是5瓶,方法如下:先用9個空

練習總結01fabs和abs

練習 float 要求 log div mat clu 文件 std abs( )主要用於對求整數的絕對值,在“stdlib.h”(或 <cstdlib>)頭文件裏面。 而fabs( )主要是求精度要求更高的double ,float 型的絕對值,在<cm

練習01poj3278 —— 農夫和牛問題

根節點 flag pri 隊列 代碼 net break eof tails 參考來源:https://blog.csdn.net/king_way/article/details/33305017 一、題解方法 采用BFS。 因為農夫每次移動的代價相同,而廣度優先搜索算法

練習08poj3784——動態堆求解中位數

code count \n spa 更新 vector algo tor tdi 一、題解方法 建立一個最小堆和一個最大堆,不斷更新當前中位數,建立一個數組存入讀入奇數個數時的中位數。 用stl中的優先隊列存放最大堆、最小堆。 二、題解代碼 1 #include "st

練習09poj1840——Eqs

次數 進行 不能 memset 因此 ring 分配 情況 轉化 1.memset函數:對已經分配的內存進行初始化 位於memory.h頭文件和string.h頭文件 2. 常規暴力,復雜度到O(n^5) 等式轉化為a3*x3*x3*x3+a4*x4*x4*x4+a5*x5

練習總結06c語言輸入&輸出&文件讀寫

putchar 錯誤 std 機試 open() 返回 oid eof getchar 一、標準文件 c語言把所有設備當作文件。 stdin:鍵盤、標準輸入 stdout:屏幕、標準輸出 stderr:您的屏幕、標準錯誤 頭文件:stdio.h 二、getchar() &a

牛客網——華為(題2計算字元個數)(Java)

題目描述: 寫出一個程式,接受一個由字母和數字組成的字串,和一個字元,然後輸出輸入字串中含有該字元的個數。不區分大小寫。 輸入描述: 輸入一個有字母和數字以及空格組成的字串,和一個字元。 輸出描述: 輸出輸入字串中含有該字元的個數。 示例1: 輸入: ABCD

牛客網——華為(題5進位制轉換)(Java)

題目描述: 寫出一個程式,接受一個十六進位制的數值字串,輸出該數值的十進位制字串。(多組同時輸入 ) 輸入描述: 輸入一個十六進位制的數值字串。 輸出描述: 輸出該數值的十進位制字串。 示例1: 輸入: 0xA 輸出: 10 import java.ut

牛客網——華為(題17座標移動)(Java)

題目描述: 開發一個座標計算工具, A表示向左移動,D表示向右移動,W表示向上移動,S表示向下移動。從(0,0)點開始移動,從輸入字串裡面讀取一些座標,並將最終輸入結果輸出到輸出檔案裡面。 輸入: 合法座標為A(或者D或者W或者S) + 數字(兩位以內) 座標之間以;

牛客網——華為(題14字串的連線最長路徑查詢)(Java)

題目描述: 給定n個字串,請對n個字串按照字典序排列。 輸入描述: 輸入第一行為一個正整數n(1≤n≤1000),下面n行為n個字串(字串長度≤100),字串中只含有大小寫字母。 輸出描述: 資料輸出n行,輸出結果為按照字典序排列的字串。 示例1: 輸入: 9

牛客網——華為(題15求int型正整數在記憶體中儲存時1的個數)(Java)

題目描述: 輸入一個int型的正整數,計算出該int型資料在記憶體中儲存時1的個數。 輸入描述: 輸入一個整數(int型別) 輸出描述:  這個數轉換成2進位制後,輸出1的個數 示例1: 輸入: 5 輸出: 2 程式碼:  import java.ut

【華為067】24點遊戲演算法

題目描述: 給出4個1-10的數字,通過加減乘除,得到數字為24就算勝利 輸入: 4個1-10的數字。[數字允許重複,但每個數字僅允許使用一次,測試用例保證無異常數字] 輸出: true or false Java實現: import java.util.Arra

反轉一個二進位制數並輸出反轉之後二進位制的十進位制值是多少

反轉一個二進位制數並輸出反轉之後二進位制的十進位制值是多少。 用一個數組記錄二進位制反轉之後的二進位制值並根據二進位制的定義構造反轉之後的十進位制值。 package InnerClass; public class T { public static void ma