1.1string類的substring()方法用於擷取字串
string substring
(int beginindex)
用途:返回乙個新字串,它是此字串的乙個子字串。該子字串始於指定索引處的字元,一直到此字串末尾
引數:beginindex - 開始處的索引(包括)
返回:指定的子字串
public string substring
(int beginindex,
int endindex)
用途:返回乙個新字串,它是此字串的乙個子字串。該子字串從指定的 beginindex 處開始, endindex:到指定的 endindex-1處結束
引數1:beginindex - 開始處的索引(包括)
引數2:endindex 結尾處索引(不包括)
返回:指定的子字串
1.2string類的clear函式用於清空重置。
2.1greater和less需要標頭檔案< functional >。
2.2兩種堆
//公升序佇列,小頂堆
priority_queue <
int,vector<
int>
,greater<
int>
> q;
//降序佇列,大頂堆
priority_queue <
int,vector<
int>
,less<
int>
>q;
//greater和less是std實現的兩個仿函式(就是使乙個類的使用看上去像乙個函式。其實現就是類中實現乙個operator(),這個類就有了類似函式的行為,就是乙個仿函式類了)
2.3
和佇列基本操作相同:
top 訪問隊頭元素題型一:有若干個活動,第i個開始時間和結束時間是[si,fi),只有乙個教室,活動之間不能交疊,求最多安排多少個活動?empty 佇列是否為空
size 返回佇列內元素個數
push 插入元素到隊尾 (並排序)
emplace 原地構造乙個元素並插入佇列
pop 彈出隊頭元素
swap 交換內容
策略:結束時間越早的活動優先
**:
#include
#include
#include
#include
using
namespace std;
const
int maxn =
1e4+10;
const
int inf =
0x3f3f3f3f
;struct d
}board[maxn]
;int
main()
sort
(board+
1,board+
1+n)
;int sum =0;
int t =
-inf;
for(
int i=
1; i<=n ;
++i)
}printf
("%d\n"
,sum);}
return0;
}
題型二:有若干個活動,第i個開始時間和結束時間是[si,fi),活動之間不能交疊,要把活動都安排完,至少需要幾個教室?
策略:按照開始時間排序優先安排活動,如果衝突,則加乙個教室。
簡單地理解一下,策略是這樣,我們把活動按照開始時間有小到大的順序排序。假設目前已經分配了k個教室(顯然k初始等於0),對於當前這個活動,
(1) 如果它能安排在k個教室裡的某乙個,則把它安排在其中的任何乙個教室裡,k不變。
(2) 否則它和每個教室裡的活動都衝突,則增加乙個教室,安排這個活動。
**:
#include
#include
#include
#include
using
namespace std;
const
int maxn =
1e4+10;
struct d
}board[maxn*2]
;int re[maxn*2]
;int
main()
sort
(board+
1,board+
1+n*2)
;//用於解決重疊點問題,從前往後或者從後往前均可
for(
int i=n*
2; i>0;
--i)
}//計算各點山高度,其實可以直接和下面的**混合
for(
int i=
1; i<=n*2;
++i)
int ma =0;
int t =0;
for(
int i=
1; i<=n*2;
++i)
printf
("%d\n"
,ma);}
return0;
}
實現:具體講解這裡跳轉 易保研機試訓練營 基礎營 特殊演算法
1.時間複雜度 2.空間複雜度 3.資料溢位 long long有時可以解決 前部用陣列等資料結構暫存中間過程某值的一組答案,在 後部直接從這組答案中查詢,不需要再計算,節省時間。用兩個一維陣列模擬二維陣列中相鄰的兩行,向下滾動,節省空間複雜度。1.從1到sqrt x 檢視x是否為素數,演算法時間複...
牛客寒假演算法基礎演算法訓練營2
1 座與重修費 題目描述 期末考試結束了,座發現很多人掛了大物,只能等著第二年重修,還要交400元的重修費。座突然想起有個學長和他講過,如果學校哪一年缺錢了,那一年的大物試卷就會特別難。現在 座有了所有人的成績,座想知道如果所有掛科的人都在第二年重修,學校能賺多少重修費?掛科是指一門課的分數小於60...
牛客寒假演算法基礎訓練營6
早知道這次題目這麼簡單就認真做了,最後一場沒心做,後面懶得想了,唉罪過罪過 1 煤氣灶 題目描述 小j開始打工,準備賺錢買煤氣灶。第一天,小j的工資為n元,之後每天他的工資都比前一天多d元。已知煤氣灶需要m元,求小j最少工作幾天才能買到煤氣灶。輸入描述 四個整數 n,m,d,x 分別表示小j第一天的...