原创 NOIP2005年提高組複賽上機試題

A. 誰拿了最多獎學金 某校的慣例是在每學期的期末考試之後發放獎學金。發放的獎學金共有五種,獲取的條件各自不同: 院士獎學金,每人8000元,期末平均成績高於80分(>80),並且在本學期內發表1篇或1篇以上論文的學生均可獲得;

原创 NOIP2019年普及組複賽上機試題

A. 數字遊戲 小 K 同學向小 P 同學發送了一個長度爲 8 的 01 字符串 來玩數字遊戲,小 P 同學想要知道字符串中究竟有多少個 1。 注意:01 字符串爲每一個字符是 0 或者 1 的字符串,如“101”(不含雙引號)爲

原创 NOIP2019年提高組複賽上機試題

A. 格雷碼 通常,人們習慣將所有 n 位二進制串按照字典序排列,例如所有 2 位二進制串按字典序從小到大排列爲:00,01,10,11。 格雷碼(Gray Code)是一種特殊的 n 位二進制串排列法,它要求相鄰的兩個二進制串間

原创 數的三次方根

給定一個浮點數n,求它的三次方根。 輸入格式 共一行,包含一個浮點數n。 輸出格式 共一行,包含一個浮點數,表示問題的解。 注意,結果保留6位小數。 數據範圍 −10000≤n≤10000−10000≤n≤10000−10000≤

原创 斐波那契數列的五種解法

定義 a0=1,a1=1,an = an−1 + an−2,求 an是多少。 爲了避免考慮整數溢出問題,我們求 an % p 的值,p=109+7。 遞歸 const int mod = 1000000007; void f(in

原创 遞歸實現指數型枚舉

從 1~n 這 n 個整數中隨機選取任意多個,輸出所有可能的選擇方案。 輸入格式 輸入一個整數n。 輸出格式 每行輸出一種方案。 同一行內的數必須升序排列,相鄰兩個數用恰好1個空格隔開。 對於沒有選任何數的方案,輸出空行。 本題有

原创 遞歸實現組合型枚舉

從 1~n 這 n 個整數中隨機選出 m 個,輸出所有可能的選擇方案。 輸入格式 兩個整數 n,m ,在同一行用空格隔開。 輸出格式 按照從小到大的順序輸出所有方案,每行1個。 首先,同一行內的數升序排列,相鄰兩個數用一個空格隔開

原创 地宮取寶

XXX國王有一個地宮寶庫,是 n×mn×mn×m 個格子的矩陣,每個格子放一件寶貝,每個寶貝貼着價值標籤。 地宮的入口在左上角,出口在右下角。 小明被帶到地宮的入口,國王要求他只能向右或向下行走。 走過某個格子時,如果那個格子中的

原创 Java設計模式之單例模式

單例模式 單例模式(Singleton Pattern)是 Java 中最簡單的設計模式之一。這種類型的設計模式屬於創建型模式,它提供了一種創建對象的最佳方式。 這種模式涉及到一個單一的類,該類負責創建自己的對象,同時確保只有單個

原创 機器人跳躍問題

機器人正在玩一個古老的基於DOS的遊戲。 遊戲中有N+1座建築——從0到N編號,從左到右排列。 編號爲0的建築高度爲0個單位,編號爲 i 的建築高度爲H(i)個單位。 起初,機器人在編號爲0的建築處。 每一步,它跳到下一個(右邊)

原创 翻硬幣

小明正在玩一個“翻硬幣”的遊戲。 桌上放着排成一排的若干硬幣。我們用 * 表示正面,用 o 表示反面(是小寫字母,不是零)。 比如,可能情形是:oo*oooo 如果同時翻轉左邊的兩個硬幣,則變爲:oooo***oooo 現在小明的

原创 帶分數

題目描述 100 可以表示爲帶分數的形式:100 = 3 + 69258 / 714 還可以表示爲:100 = 82 + 3546 / 197 注意特徵:帶分數中,數字 1∼9 分別出現且只出現一次(不包含 0)。 類似這樣的帶分

原创 激光炸彈

一種新型的激光炸彈,可以摧毀一個邊長爲 R 的正方形內的所有的目標。 現在地圖上有 N 個目標,用整數Xi,Yi表示目標在地圖上的位置,每個目標都有一個價值Wi。 激光炸彈的投放是通過衛星定位的,但其有一個缺點,就是其爆炸範圍,即

原创 Java設計模式之抽象工廠模式

抽象工廠模式 抽象工廠模式(Abstract Factory Pattern)是圍繞一個超級工廠創建其他工廠。該超級工廠又稱爲其他工廠的工廠。這種類型的設計模式屬於創建型模式,它提供了一種創建對象的最佳方式。 在抽象工廠模式中,接

原创 數的範圍

給定一個按照升序排列的長度爲n的整數數組,以及 q 個查詢。 對於每個查詢,返回一個元素k的起始位置和終止位置(位置從0開始計數)。 如果數組中不存在該元素,則返回“-1 -1”。 輸入格式 第一行包含整數n和q,表示數組長度和詢