原创 PAT甲級 1006 Sign In and Sign Out (25分)

這道題已經說明是同一天內了,所以的話把時間單位劃爲一致,再從unlock的時間中選取最小的,lock時間中選取最大,就能得到答案了。題很簡單,輸入id的時候要採用cin>>,直接scan的話會報錯,注意這點就好了。以下是代碼。 #

原创 PAT甲級 1002 A+B for Polynomials (25分)

用數組下標代表指數,數組的值代表係數 #include<bits/stdc++.h> using namespace std; main() { double poly[1005]={0}; int cnt = 0; for

原创 PAT甲級 1003 Emergency (25分) 便於理解的floyd算法!

求最小路徑無非就是3種方法,floyd,djkstra以及prim算法,看了看網上關於這道題的大部分是djkstra,這裏提供另一種想法,floyd的思路,供大家參考一下。同時,因爲三重循環的關係,floyd的時間複雜度高於其他2

原创 PAT甲級 1010 Radix (25分)

這道題還是很值得思考的,坑點也很多。一開始思路很亂,瞎寫了一番之後,只能拿到13分,看了 這位博主 的解法之後,纔有了思路,所以代碼差不太多,在我這看不懂的也可以去他那試試。還有要注意的是對於可能出現的大數據處理都用long l

原创 PAT甲級 1005 Spell It Right (20分)

這道題的主要思路就是將輸入的數各位相加,再用英文將各位輸出。但要考慮到輸入的數是很大的,用int,double是無法解決的,所以考慮用字符串解決。在各位相加後得到sum,再將sum的各位存入數組中,最後反向輸出即可。 #inclu

原创 PAT甲級 1027 Colors in Mars (20分)

又是進制轉換和字符串的應用,簡單的題,詳細看代碼把。 #include<bits/stdc++.h> using namespace std; string into(int x) { string temp; if(x==0

原创 PAT甲級 1028 List Sorting (25分)

又是排序!建立結構體,分情況寫cmp函數然後sort就能解決了。 #include<bits/stdc++.h> using namespace std; struct student { int id; string nam

原创 PAT甲級 1011 World Cup Betting (20分)

沒啥特別的,按照題目意思來就ok了。 #include<bits/stdc++.h> main() { double res=1; int id[3]; for(int i=0;i<3;i++) { double

原创 PAT甲級 1021 Deepest Root (25分)

總結來說,考察了2個點,一個是連通分量的判斷,要想是一棵樹,那肯定只能有1個連通分量,另一個是dfs的運用吧。當然,其實判斷連通分量的時候就要用到dfs了,只是這道題後續還要用一次。 分析一下題意吧,首先判斷是不是一棵樹,如果不是

原创 PAT甲級 1001 A+B Format (20分)

這道題理解了的話,做起來就不難。一開始我用的是int來處理,只能拿16分,後來看了柳神的代碼,改用string後,纔拿的滿分。關鍵是對於逗號輸出的處理,柳神的代碼處理的很巧妙,我這裏取巧了些。 #include<bits/stdc

原创 PAT甲級 1018 Public Bike Management (30分)詳細註釋

當時當作大作業寫的,代碼註釋的很詳細,看代碼吧。主要就是dfs和Dijkstra然後有個反向路徑的過程。 #include <bits/stdc++.h> using namespace std; int Cmax,N,Sp,M;

原创 PAT甲級 1017 Queueing at Bank (25分)

分析一下題意先,8點前來的統一等到8點,這段時間也需要統計等待時間,17點之後的統一不受理。之後按照到達時間排序,每個窗口去匹配,最快的窗口進行受理。詳細看代碼吧。 #include<bits/stdc++.h> using na

原创 PAT 甲級 1009 Product of Polynomials (25分)

這道題大意就是多項式乘法,按照正常思維逐項相乘就好了,要注意的結果的指數可能大於2000,結果數組開大點,這道題應該就沒什麼問題了。 #include<bits/stdc++.h> using namespace std; mai

原创 PAT甲級 1025 PAT Ranking (25分)

排序的一道題,比較複雜的是地區排名,我用了一個二維數組來解決 #include<bits/stdc++.h> using namespace std; struct test{ long long number; int fi

原创 PAT甲級 1015 Reversible Primes (20分)

這道題有點坑爹… 題目的意思就是一個數 先轉換爲對應的進制數,再對轉換後的進制數反轉,再轉換爲十進制數進行判斷是否是素數。比如23,23->10111->11101->29,還有一個坑點是你轉換後的數可能會溢出的。所以用long