簽到題,可以使用stoi將字串轉換為數字,然後試除法判斷是否為素數。
#include
#include
using
namespace std;
bool
check
(const string &s)
intmain()
//取子串
使用unordered_set來做,比set效率高,如果不要求集合有序的話。
#include
#include
#include
#define ac cin.tie(0);cin.sync_with_stdio(0);
using
namespace std;
unordered_set<
int> set1;
int arr[20]
[1010];
bool vis[20]
;int n, m;
//是否為集合元素的差
bool
check
(int a)
return
false;}
intmain()
//本輪有人被淘汰
if(tmp.
size()
)}} vector<
int> ans;
//求最後的勝者
for(
int i =
1; i <= n; i++)if
(!vis[i]
) ans.
push_back
(i);
if(ans.
size()
)else
cout <<
"no winner."
;return0;
}
簡單的圖論題,細心即可/
#include
#include
#define ac cin.tie(0);cin.sync_with_stdio(0);
using
namespace std;
const
int maxn =
510;
bool g[maxn]
[maxn]
, vis[maxn]
;int arr[maxn]
;int n, r, k, m;
intmain()
cin >> m;
while
(m--
)for
(int j = i +
1; j <= n; j++)}
if(cnt < k)
cout <<
"error: too few species."
;else
if(cnt > k)
cout <<
"error: too many species."
;else
if(m)
cout << endl;
}return0;
}
模擬題,需要很細心,使用優先佇列解決,注意把題意理解了,樣例手算一遍。
#include
#include
#include
#define ac cin.tie(0);cin.sync_with_stdio(0);
using
namespace std;
const
int maxn =
100010
;struct node
;//優先排op為false的,也就是本次run的,run相同則按照大小順序排序
bool
operator
<
(const node &b)
const
} arr[maxn]
;int n, m;
priority_queue q;
intmain()
int pos =0;
//前m個元素入隊
for(
int i =
0; i < m; i++
) q.
push
(arr[pos++])
;while
(true
)//輸出結果
for(
int i =
0; i < v.
size()
; i++)if
(q.empty()
)break
; vector pre;
while
(!q.
empty()
)//本輪run結束了,進行下一輪run,原本下一輪run的元素將op重新置為false,開始新一輪排序,
for(node &a:pre)
cout << endl;
}//while
return0;
}
pat衝衝衝!!! PAT甲級2019春季真題題解
簽到題,素數不需要用篩法,直接o sqrt n 即可。熱身題,字串處理,使用集合判斷。稍難,圖論 並查集,還有要理解題意 個人認為pat最難的點 include include include define ac cin.tie 0 cin.sync with stdio 0 using names...
題解 2021PAT春季甲級
7 1 arithmetic progression of primes 篩法預處理區間內的素數 因為已知數列長度,如果知道數列第 一 二個數即可求得整個數列 暴力列舉前兩個數,看後續是否滿足兩個條件 在所有找出的符合的數列中按題目要求得到最後應該輸出的那個數列 特殊情況 n 1 n 2 m 2 n...
PAT甲級2018冬秋季真題題解
簡單的列舉題。include define ac cin.sync with stdio 0 using namespace std const int maxn 110 int arr maxn int n bool check int a,int b 猜人 if arr i 0 arr i a ...