pat 甲級 1148 (思維題)

2021-09-01 05:43:02 字數 374 閱讀 7098

題意:n個人中,有兩個是狼人,其中不是所有狼人都說謊,說謊的人有兩個。

思路:先確定狼人,然後找說謊的人,如果說謊的人有兩個且其中有乙個是狼人就輸出結果。

反思:(1)開始想先確定說謊的人,在確定狼人,但是總是有人不能確定是狼人還是普通人。

(2)可以通過乙個人說話的結果來判斷他是否說謊。

#include#include#include#includeusing namespace std;

int a[120],vis[120];

vector vc;

int main(void)

} }cout<<"no solution"

}

PAT甲級刷題

給定兩個字串s1和s2,刪除s1中在s2 現過的字元設定flag陣列,初始化為0。遍歷s2並將其字元轉化為ascii碼值,並在flag陣列中相應位置值標記為1,表示它出現過。再遍歷s1,若對應字元ascii碼值在flag陣列中相應位置值標記為0,則輸出。就是hash的思想,時間複雜度o len s1...

pat 甲級 1093(邏輯題)

思路 1 要找pat的數量,先找到a在找到a前面p的個數c1,再找出a後面t的個數c2,就能求出這個a構成的pat的個數,就是c1 c2 2 優化 先找出所有t的個數,然後每次遇到乙個t就減少1,遇到乙個p就 1,遇到a就已經知道 a前面的p和a後面的t。3 反思 一開始想用暴力,後來暴力不行就像找...

pat 甲級 1101(細節題)

思路 找合適作為pivot point的點,要求是左邊的數字全部小於它,並且右邊的數字全部大於它 可以先從左開始向右判斷符合左邊數字全小於它的 大於最大值 然後再從右向左判斷右邊數字大於它的 小於最小值 注意 結尾一定要將換行分開輸出,不然寫成cout 要求的兩行不符。include include...