原创 關於字符串的輸入

這裏所要分享的字符串是指略微複雜一點的輸入,一般的字符串就不在贅述。 1.stringstream的使用 UVA10815 給出一句英文要得到單詞 例如: Adventures in Disneyland. 這句話輸入可以用cin輸入得

原创 2019藍橋杯省賽A組模擬賽(1)

1.這道題我是用公式寫的 首先介紹log函數 引入#include<cmath> 以e爲底:log(exp(n)) 以10爲底:log10(n) 以m爲底:log(n)/log(m) 那麼求10000階乘我們只需要從log10(1)+..

原创 UVA11853

題目大意:給你一個內部有若干個圓的正方形,問能否從左邊界走到右邊界。 思路其實不好想,思路分爲兩部分,先判斷可行性,從上邊界出發從障礙物上如果可以到達下邊界,那麼則證明其無解,很好理解,障礙物將圖分成兩部分,無論怎麼走都走不到右邊界,那麼

原创 UVA12171

題目大意: 給你一些長方體的座標,算他們的體積(包括被圍起來的體積),面積就是外表面的面積。就想象成將這些長方體放進水裏,在水佔的體積和水接觸的表面積。 分析: 最原始的想法就是按座標bfs,可以找出體積和表面積,但這一題的數組卻開不下 

原创 UVA816

這道題雖然只是搜索的題目只是bfs搜索,但個人感覺要學習的地方其實挺多的,這道題的輸入就並不簡單,還是用到了stringstream來切割每一行要讀入的字符,自己感覺這個東西真的挺有用的。而用數字來表示方向並且把轉向也轉變爲數字的變化,這

原创 歐拉回路

歐拉回路的問題用程序語言來描述就是能否從一個無向圖中的一個節點出發走出一條道路,每條邊恰好經過一次。 不難發現在歐拉道路中,進和出是相對應的概念。除了終點和起點,其他的度數應該也是偶數。即終點和起點的度爲奇數時,該無向圖存在歐拉道路,且道

原创 拓撲排序

有n個變量,m個二元組(u,v),分別表示u<v,要求你給這n個變量排序,把每個變量看成一個點,"小於"關係看成有向邊,則得到一個有向圖。如果圖中存在有向環,則不存在拓撲排序,反之則存在。在訪問完一個節點後把它加到拓撲排序的首部,因爲有向

原创 UVA122

本題的基本思路就是先建樹,然後在遍歷二叉樹,用線性表把數據存起來。 劉汝佳書中提到c語言字符串的靈活性,即把“指向字符的指針”看成字符串,下面的sscanf(&s[1],"%d",&v)中&s[1]即從s[1]開始的字符串。代碼實現應該並

原创 二叉搜索樹

二叉搜索樹的主要操作有插入,搜索,刪除。 在介紹操作之前,先引入節點 struct Node { int key; Node *parent,*left,*right; }; 節點有4個屬性,鍵值,父親指針,左子節點指針,右子節點

原创 UVA12657

這道題是對雙向鏈表的模擬,個人認爲程序的點睛之筆當屬flag的使用,而我最開始沒有想到這麼做,每次遇到4操作就要把鏈表反過來一次,編程複雜度和時間複雜度都高,記錄flag的奇偶性,從而對2,3兩個操作進行變化,思維確實十分巧妙。雖然題目不

原创 UVA11988

這道題並不困難,重要的是用cur的值來表示光標位置的這種思想。無論是HOME鍵還是END鍵實質都是光標位置的變化,用數組來表示鏈表也是本題應該學習的。 #include<bits/stdc++.h> using namespace st

原创 矩陣鏈乘 UVA442

題目並不複雜,代碼相對也比較好寫,只是想記錄解析表達式的方法,用棧來處理解析式,遇到字母時入棧,遇到右括號時出棧計算,並將結果壓回棧中。 #include<bits/stdc++.h> using namespace std; stru

原创 UVA210

這道題其實並不簡單,因爲我最開始沒有寫出來。。。。。。。 但看完題解之後感覺這道題似乎沒什麼難度,額,好像每次都是這樣。。。。。 題目中有兩個隊列,等待隊列,阻止隊列,等待隊列可以直接用隊列寫,而阻止隊列只能用deque來寫,因爲要將元素

原创 字符串總結

字符串輸入輸出 getchar()與putchar() #include <iostream> //#include <cstring> using namespace std; int main() {     char a;  

原创 map的妙用 UVA156

題目大意: 輸入一些單詞,找出所有滿足如下條件的單詞:該單詞不能通過字母重排,得到輸入文本的另外一個單詞。在判斷是否滿足條件時,字母不分大小寫,但在輸出時應保留輸入的大小寫,按字典序排列。 分析思路: 將所有單詞標準化,用map來統計。