原创 PAT甲級 1075 PAT Judge (25 分) (模擬)

題目鏈接:傳送門 思路:分數用-2表示未提交,-1表示編譯未通過,用結構體直接模擬排序即可。 代碼: #include <bits/stdc++.h> using namespace std; const int maxn =

原创 pat甲級 1094 The Largest Generation (25 分)(dfs或者bfs)

題目鏈接: 傳送門 思路:直接dfs或者bfs記錄每層的節點數即可 代碼: dfs: #include <bits/stdc++.h> using namespace std; const int maxn = 105; v

原创 PAT甲級 1055 The World's Richest (25 分) (模擬)

題目鏈接:傳送門 思路:因爲數據量不大,按照題意模擬排序輸出即可。 代碼: #include <bits/stdc++.h> using namespace std; const int maxn = 1e5 + 5; s

原创 pat甲級 1115 Counting Nodes in a BST (30 分)(平衡二叉樹)

題目鏈接:傳送門 思路:使用結構體構建二叉樹結構,然後模擬平衡二叉樹過程即可,最後記錄第一大和第二大的節點的數量即可,代碼寫醜了,可以直接用數組表示二叉樹每層的節點數的。。 代碼: #include <bits/stdc++.h>

原创 PAT甲級 1054 The Dominant Color (20分) (模擬)

題目鏈接:傳送門 思路:直接存儲數字出現次數,保存一個出現次數最大的數即可。(題意是選取佔得面積大於50%的,但是其實選取最大的也行,應爲題目應該是保證一定有大於50%的數) 代碼: #include <bits/stdc++.h

原创 PAT甲級 1103 Integer Factorization (30 分) (dfs)

題目鏈接:傳送門 思路:因爲N的大小隻有400,直接暴力即可,應爲序列是非增序,所以每層遞歸從最大可能值遞歸到1,順便加個減支條件:如果後面元素全取最大值仍不滿足條件則不用再繼續搜索了。順便加了個快速冪。 不過dfs算複雜度不方便

原创 pat甲級 1106 Lowest Price in Supply Chain (25 分)(dfs)

題目鏈接:傳送門 思路:直接dfs算售價和最小售價葉節點的數量。 代碼: #include <bits/stdc++.h> using namespace std; const int maxn = 1e5 + 5; boo

原创 編譯原理:LL1(1)文法的語法分析器(通過文法構造分析表)

參考了大佬的代碼,思路以後補上,先把代碼貼在這裏: (使用了一些c++11的特性) #include <bits/stdc++.h> using namespace std; const int maxn = 1005; s

原创 pat甲級 1100 Mars Numbers (20 分) (字符串處理)

題目鏈接:傳送門 思路:數的大小小於100,所以直接判輸輸入的是字母還是數字分情況處理即可,代碼又寫醜了,對兩種情況都採用了循環來處理(但其實最多兩位數,直接判斷就行了。。) 代碼: #include <bits/stdc++.h

原创 pat甲級 1070 Mooncake (25 分) (貪心)

題目鏈接:傳送門 思路:物品是可分割的,於是每次加上單價最高的物品即可。 代碼: #include <bits/stdc++.h> using namespace std; const int maxn = 1005; s

原创 pat甲級 1037 Magic Coupon (25 分) (貪心)

題目鏈接:傳送門 思路:把兩個給出的組存入數組,從小到大排序,然後先從0下標開始計算負數,兩兩配對,然後算正數,同理。 有一個需要注意的點我本來是隻是從0-n-1掃描一遍,把正數加入答案的,扣了幾分,因爲配對順序可能會錯,本來應該

原创 PAT甲級 1045 Favorite Color Stripe (30分) (dp)

題目鏈接:傳送門 思路:由題意知道,首先輸入的顏色序列中,顏色是不重複的,於是可以記錄每個顏色的出現位置f[a[i]]。然後遍歷待去重的串,對每個字符,根據剛纔記錄的位置,可以判斷這個字符只能出現在j <= f[a[i]]的位置,

原创 pat甲級 1028 List Sorting (25 分) (stl)

題目鏈接:傳送門 思路:使用stl中的sort直接排序即可。 代碼: #include <bits/stdc++.h> using namespace std; const int maxn = 1e5 + 5; struc

原创 PAT甲級 1022 Digital Library (30 分) (模擬)

題目鏈接:傳送門 思路:使用map存儲待查字符串即可,使用vector存儲讀入的鍵值,在讀入數據後統一排序。 代碼: #include <bits/stdc++.h> using namespace std; map <str

原创 PAT甲級 1071 Speech Patterns (25分) (模擬)

題目鏈接:傳送門 思路:直接遍歷字符串,篩選出單詞,然後計數即可。 代碼: #include <bits/stdc++.h> using namespace std; map <string , int> mp; int