acm實用拓展知識總結

2021-08-22 08:20:21 字數 3059 閱讀 1371

long

double %lf

unsigned

long

long %llu

unsigned

int %u

char s[max];

scanf(" %[^\n]", s); //遇到回車結束(讀一整行)

scanf(" %[^ ]", s); //遇到空格結束

ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);

sscanf(s, "%d", &a);

namespace fastio

}return *p1++;

}inline

bool blank(char ch)

inline

void read(int &x)

inline

void read(char &x)

inline

int readstr(char *x)

x[i] = '\0';

return i;

}}using

namespace fastio;

srand(time(0));

rand();0-32767

vector

a(n);

random_shuffle(a.begin(), a.end());

//更隨機

//sort

sort(a, a + n);

sort(a, a + n, greater());

sort(a, a + n, cmp);

sort(vec.begin(), vec.end(), [=](pii a, pii b) -> bool ); //匿名函式

//unique

sort

(a.begin(), a.end());

a.erase

(unique(a.begin(), a.end()), a.end());

//random_suffle

random_shuffle

(a.begin(), a.end());

string str = "1234";

while (next_permutation(str.begin(), str.end()))

cout << str

<< endl;

int a = ;

sort(a, a + 3);

do

while (next_permutation(a, a + 3));

可以直接 < == > = sort

string s;

cin >> s; // s = 「12345」

s += 「12345」; // s = 「1234512345」

s.erase(5, 3); // s = 「1234545」

int a = s.find(「45」); // a = 3 kmp

int b = s.find(「6」); // b = -1

int c = s.length(); // c = 7 size()

string t = s.substr(4, 2); // t = 「54」

priority_queue pq;

priority_queue, greater >pq2;//小根堆

struct cmp1 };

priority_queue, cmp1>pq3;/

find logn

insert logn

erase logn

size

empty

s.erase(2);//把2全刪

s.erase(s.find(2));//刪1個2

lower_bound(s.begin(), s.end(), 5);

s.lower_bound(5);

set

s;for (set

::iterator i = v.begin(); i != v.end(); i++) cout

<< *i << endl;

for(auto i:s) cout

<< i << endl; //auto的自動型別推斷發生在編譯期,所以使用auto並不會造成程式執行時效率的降低

//auto

vector

int, int>> v;

vector

a = ;

for (int &i : a)

for (int i : )

//container improvements

vector

string, int>> vp;

string s;int i;

while (cin >> s >> i) );

vp.emplace_back(s, i);

}//initializer list

list

string,string>> languages = , };

map,vector

> years = , },, }, , }};

//max & min

int x = max();

//unordered containers o(1)

unordered_set

//乙個無序set,使用hash作為hash函式,使用cmp進行比較

unordered_multiset

//乙個無序multiset,使用hash作為hash函式,使用cmp進行比較

unordered_map

//乙個無序map,使用hash作為hash函式,使用cmp進行比較

unordered_multimap

//乙個無序multimap,使用hash作為hash函式,使用cmp進行比較

ACM知識點總結

1 列舉 2 模擬 3 構造 4 位運算的應用 5 查詢 5.1 二分查詢 5.2 分塊查詢 5.3 雜湊查詢hash 5.3.1 線性探測法 5.3.2 字串與雜湊 6 搜尋 6.1 深度優先搜尋dfs 6.1.1 剪枝 6.1.2 人工棧dfs 6.2 寬度優先搜尋bfs 6.3 啟發式搜尋 7...

知識拓展3

一 功能最強大文字編輯器 vim 命令列模式 n yy 複製第n行 p 貼上 n dd 刪除第n行 u 恢復 插入模式 i a 底行模式 shift w 儲存q 退出 wq!強制儲存退出 如何配置vim?vim etc vim vimrc 常用配置 開啟語法高亮 syntax on 顯示行號 set...

知識拓展4

1 gdb命令 1 查詢程式源 1 search forward 用來從當前行向前查詢第乙個匹配的字串 2 reverse search 用來從當前行向前查詢第乙個匹配的字串 3 list 行號 顯示指定行前後的 4 list 函式名 顯示函式 5 list 從當前行往後顯示 6 list 從當前行...