PAT甲級2018冬秋季真題題解

2021-10-11 09:19:16 字數 2939 閱讀 7372

簡單的列舉題。

#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 || arr[i]

== b))}

//乙個狼人說謊並且兩個說謊的人

return wcnt ==

1&& cnt ==2;

}int

main()

} cout <<

"no solution"

;return0;

}

簡單的集合題。

#include

#include

#define ac cin.tie(0);cin.sync_with_stdio(0);

using

namespace std;

const

int maxn =

100010

;int a[maxn]

, b[maxn]

, cnt[maxn]

;int n, m;

intmain()

//遍歷每乙個pair

for(

int i =

0; i < n; i++

)//不合法

if(cnt[a[i]

]&& cnt[b[i]])

if(op)

cout <<

"yes"

;else

cout <<

"no";if

(m) cout << endl;

}return0;

}

稍複雜的圖論題,注意****** cycle和ts cycle都可能是tsp的最優解。

#include

#include

using

namespace std;

const

int maxn =

210;

int g[maxn]

[maxn]

, arr[maxn]

;int n, m, k;

intmain()

scanf

("%d"

,&k)

;for

(int i =

1; i <= k; i++

)int ans =0;

bool op =

true

;for

(int j =

1; j < len; j++

) ans +

= g[arr[j -1]

][arr[j]];

}//不連通,not a ts cycleif(

!op)

printf

("path %d: na (not a ts cycle)\n"

, i)

;else

}else

printf

("path %d: %d (not a ts cycle)\n"

, i, ans);}

}printf

("shortest dist(%d) = %d"

, ans1, ans2)

;return0;

}

有難度的樹題,先dfs建樹,然後dfs確定節點的前驅和深度,本題還有乙個難點就是需要把int對映到合理範圍內。

#include

#include

using

namespace std;

const

int maxn =

10010

;int pre[maxn]

, in[maxn]

;// 儲存深度 儲存前驅

int le[maxn]

, ri[maxn]

, val[maxn]

, dep[maxn]

, qian[maxn]

;//原數字對映到範圍內 範圍內的數字對映到原數字

unordered_map<

int,

int> map1, map2;

int n, m, cnt =0;

intbuildtree

(int a,

int b)

void

dfs(

int root,

int lev,

int fa)

intmain()

for(

int i =

0; i < n; i++

)int root =

buildtree(0

, n -1)

;dfs

(root,0,

-1);

while

(m--)if

(aa == a)

else

if(aa == b)

else

printf

("lca of %d and %d is %d."

, val[a]

, val[b]

, val[aa]);

}if(m)printf

("\n");

}return0;

}

PAT甲級真題1153

pat 准考證號由 44 部分組成 第 11 位是級別,即 t 代表頂級 a 代表甲級 b 代表乙級 第 2 42 4 位是考場編號,範圍從 101101 到 999999 第 5 105 10 位是考試日期,格式為年 月 日順次各佔 22 位 最後 11 1311 13 位是考生編號,範圍從 00...

PAT甲級真題 1014 Wait In Line

一 題目 二 思路 題意 模擬排隊,但和實際排隊的區別在於 思路 模擬排隊,記錄消費者辦理結束所需的總時間 以分鐘為單位,最後轉換為時刻,由等待時間 辦理時間組成 若等待時間wt 540,則給予sorry 否則,根據總時間sum算出相應時刻 注意 當兩個視窗同樣長且均未滿時,要同時入隊消費者,使之隊...

PAT甲級真題1140 外觀數列

外觀數列是指具有以下特點的整數序列 d,d1,d111,d113,d11231,d112213111,其中 d 是乙個 0,9 0,9 範圍內的不等於 11 的整數。序列的第 n 1n 1 項是對第 nn 項的描述。比如第 22 項表示第 11 項有 11 個 d,所以就是 d1 第 22 項是 1...