演算法筆記-二分搜尋
二分搜尋是一個比循序搜尋還要有效率的常用搜尋方式,主要邏輯為反覆將搜尋範圍減半直到找到目標為止,但是除了最基本的寫法之外還有另外兩種寫法,也有很多小細節是需要注意的。
一點小細節
循環 & 終止條件
left <= right
當循環條件為 left <= right 時,代表會在 left == right + 1 時結束,此時區間為空,代表可以直接回傳 -1 ,target 不在陣列之中。
12345678910111213class Solution {public: int search(vector<int>& nums, int target) { int left = 0, right = nums.size() - 1; while(left <= right){ int mid = (left + right) / 2; if(nums[mid] == target) return mid; ...
演算法筆記-雙指針
雙指針是在陣列處理時可以利用的技巧,利用兩個指針去做判斷或是構造出窗口幫助解題,根據兩個指針的特性可以分為對撞指針、快慢指針以及滑動窗口。
對撞指針
兩個指針在數列兩端,移動方向相反,向中間移動,通常終止條件為兩指針對撞 or 滿足題目需求,兩邊指針的移動條件則要視題目需求做判斷。
LeetCode 167. Two Sum II - Input Array Is Sorted
Given a 1-indexed array of integers numbers that is already sorted in non-decreasing order, find two numbers such that they add up to a specific target number. Let these two numbers be numbers[index1] and numbers[index2] where 1 <= index1 < index2 <= numbers.length.
Return the indices of the two num ...
演算法筆記-3
三維迷宮問題
給定一個三維的迷宮,起點標示為 S ,終點標示為 E ,# 代表牆壁,. 表示道路,每次移動所需時間相同,計算出從起點到終點的最短時間。
其實就是二維迷宮的推廣而已,可以同樣用 DFS 解決,此時每次可前進的方向會有 6 個,分別為前、後、上、下、左、右,而判斷邊界時也要注意 x, y, z 都要判斷。因為題目必須判斷最短時間,因此要多加一個變數 dis 來儲存當前的最短步數。
部分程式碼:
12345678910111213141516171819202122232425//6個方向int dir[6][3] = {{1, 0, 0},{-1, 0, 0},{0, 1, 0},{0, -1, 0},{0, 0, 1},{0, 0, -1}},dis = 30000; //判斷邊界函數bool check(int a, int b, int c, int z, int y, int x){ return (0 & ...
離散筆記-卡塔蘭數
卡塔蘭數 Catalan Number
卡塔蘭數 (Catalan Number) 是組合數學中一個常在各種計數問題中出現的數列,數列的前幾項分別為:1, 1, 2, 5, 14, 42, 132, 429…
定義公式
C0=1,C1=1C_0 = 1, C_1 = 1C0=1,C1=1
一般項公式:
Cn=1n+1Cn2n=Cn2n−Cn−12nC_n = \frac{1}{n+1}C_{n}^{2n} = C_{n}^{2n} - C_{n-1}^{2n}Cn=n+11Cn2n=Cn2n−Cn−12n
遞迴公式:
Cn+1=∑i=0nCiCn−iC_{n+1} = \sum_{i=0}^{n}C_{i}C_{n-i}Cn+1=∑i=0nCiCn−i
or
Cn=∑i=1nCi−1Cn−iC_{n} = \sum_{i=1}^{n}C_{i-1}C_{n-i}Cn=∑i=1nCi−1Cn−i
應用
路徑問題
在一個 n * n 的格點中,從左下角 (0, 0) 到右上角 (n, n),每一步只能向右或向上,不穿越對角線的總路徑數。
n = 4 的情 ...
演算法筆記-2
樹的遍歷
重建樹
根據給定原始樹的先序遍歷 (preorder traversal) 和中序遍歷 (inorder traversal)重構原始樹。
前序遍歷的順序為 [根結點、左子樹、右子樹],而中序遍歷的順序為 [左子樹、根結點、右子樹],因此我們可以透過前序遍歷的第一個元素找到根結點,將其帶入中序遍歷,就可以找到左、右子樹,對左、右子樹遞迴進行此行為就可以構造出原始樹,
函式程式碼:
123456789101112131415161718TreeNode* BuildTree(string preord, string inord, int preord_left, int preord_right, int inord_left, int inord_right) { if (preord_left > preord_right) { return NULL; } //從前序遍歷中取得根結點 int preord_root = preord_left; //找到根結點在中序遍歷中的位置 in ...
演算法筆記-1
最大子數列
非循環陣列
給定長度為 N 的整數陣列A,從 A 所有可能的 subarray 中找出一個 subarray S,使得 S 中所有元素的總和是最大值。
Kadane’s Algorithm
循環遍歷整個陣列 A,在第 i 個元素時判斷 A[i] 和 cucursum + A[i] 的大小,判定在第 i 個元素時所能達到的最大值,之後將 cursum 與 maxsum 比較,取得子字串總和的最大值。
程式碼:
123456int maxsum = A[0], cursum = 0; for(int i = 0; i < N; i++){ cursum = max(cursum + A[i], A[i]); maxsum = max(maxsum, cursum);}retuen maxsum;
因為只要遍歷整個陣列一次,時間複雜度為 O(n)。
循環陣列
給定長度為 N 的 “循環” 整數陣列A,從 A 所有可能的 subarray 中找出一個 subarray S,使得 S 中所有元素的總和是最大值。
因為在尋找最大子數列 ...
CCO教學-Buff與物品總覽
CCO 教學系列文章:
CCO教學-新手入門
CCO教學-公會功能
CCO教學-公會功能plus (SUI 公會專屬)
CCO教學-快取與裝備
CCO教學-交易指南
CCO教學-賺取資源
CCO教學-Buff與物品總覽 ← 當前位置
本文將介紹遊戲中的 Buff 以及物品,如果需要找尋物品請善用 Ctrl + F。
Buff
需要開始前有 Buff 才有效:
突觸加速:減少掛機時間,最高可疊加至 80%。
校準增益:增加裝備校準的成功率,+n 車代表能以 0% 失敗讓裝備到 +n。
校準保護:校準失敗時破壞裝備。
RNG:開紫箱的傳奇和史詩掉率增加。
寵物領養:滿足需求的玩家可以領養寵物。
需要結束時有 Buff 才有效:
額葉:額葉皮質增強,最高80%,增加經驗獲取量。
BTC:交易漏洞,最高100%,影響從 NPC 獲得的 BTC 量。
物品總覽
物質類
AI核心 (AI):用於部署掛機機器人升級,同時也是玩家之間最主要的交易貨幣。
AI核心集群 (AICC,CC):由1000個AI核心組成,需要時可分解使用。
醫療科技零件 (MTP):可用於製作醫療物品、壓碎。 ...
CCO教學-賺取資源
CCO 教學系列文章:
CCO教學-新手入門
CCO教學-公會功能
CCO教學-公會教學plus (SUI 公會專屬)
CCO教學-快取與裝備
CCO教學-交易指南
CCO教學-賺取資源 ← 當前位置
CCO教學-Buff與物品總覽
本篇文章將會介紹幾種方式讓新手在遊戲初期獲取 AI 以及 BTC。
出售物品
短期快速賺錢的方式可以把背包內對新手收益不大的物品出售,如雜湊、箱子、公記等。
詳細的物品可以參考:CCO教學-新手入門 > 背包內值錢物品
掛 AI
看到標題可能會有一個疑問,掛 AI 應該會消耗 AI 核心阿,怎麼賺錢呢?
實際上掛 AI 其實也是一個會賺錢的行為,在掛 AI 時可以獲得快取、雜湊等物資,透過剛剛說到的出售物品方法,向其他玩家交易,可以獲得更多的 AI,甚至有可能運氣爆棚出了個紅快取,從此吃穿不愁。
壓碎
進行這兩種行為的前提是必須加入公會,才可以使用公會內的回收器。
打工
從老闆那裡拿到醫碎之後,在公會的回收器壓成科碎,並寄還給老闆,主要收益是老闆給的薪水,每壓 1k 醫碎的薪水約為 80~100 AI。
自雇
因為是自己當老闆,所以必須有一定 ...
CCO教學-快取與裝備
CCO 教學系列文章:
CCO教學-新手入門
CCO教學-公會功能
CCO教學-公會教學plus (SUI 公會專屬)
CCO教學-快取與裝備 ← 當前位置
CCO教學-交易指南
CCO教學-賺取資源
CCO教學-Buff與物品總覽
快取使用方式
灰白快取
由於前期練分子列印的主要方式是燒科碎或免費練,所以可以選擇存起來或是賣給其他玩家以換取 AI,等到燒科碎或免費練的效率不足後,可以拿到黑市燒換取 BTC 及分子列印經驗。
由於在黑市的收益取決於分子列印等級,所以相較於賣掉所能獲得的收益,要到130 ~ 150 等之後才能打平回本,而燒快取的時機是等有大佬開交易漏洞 100% (BTC 收入 +100%) 及額葉 (經驗收入 +80%) 時拿著討價裝 (極限為 BTC 收入 +40%)再燒,才能最大化效率以級收益。
綠黃快取
通常平時都存著,等哪天大佬開交易漏洞 100%,拿著討價裝 (極限為 BTC 收入 +40%) 再賣給 NPC 商人,而賣給 NPC 的收益與等級無關,所以只要有加成就能直接拿去賣。
紫紅快取
自己留著之後做裝自己用,通常情況下到了約 50 等後就能考慮 ...
CCO教學-交易指南
CCO 教學系列文章:
CCO教學-新手入門
CCO教學-公會功能
CCO教學-公會功能plus (SUI 公會專屬)
CCO教學-快取與裝備
CCO教學-交易指南 ← 當前位置
CCO教學-賺取資源
CCO教學-Buff與物品總覽
交易是 CCO 中非常重要的一部分,而玩家之間交易的主要貨幣是 AI 核心,可以用其來交易各種物資,而主要的交易通道有市集以及市場頻道,以下將介紹各種交易的方式。
市集
玩家可以從主頁到達市集購買物品,而在掛機時也可以從下方的市集進入 (掛機時無法購買物品),市集的主要交易貨幣為 BTC,玩家可以在自己攤位上架物品換取 BTC,在上架之前建議可以先看看市集裡面相同物品的價格。
新手時期因為印製裝備需要消耗 BTC,因此建議可以在市集尋找等級相近的裝備來穿,這樣就可以省下一筆錢,而用不到的裝備也可以丟到市集販售。
注意在市集購買物品時,可能會因為 BTC 不足,或是背包空間不足而無法購買,有些物品在市集裡面的價格會超過其價值,如公會箱以及子彈,建議在購買之前可以先在公頻或是公會頻道詢問其他大佬。
市場頻道
市場頻道也是一個物品流通的地方,該頻道主要使 ...














