PTA 搜尋補題

2021-10-09 17:53:07 字數 2457 閱讀 4772

最近幾天特別消極,做題時邏輯不清晰也不是那麼想做,最後做的一塌糊度…

1.圖著色問題

一開始沒用set做,最後沒全對,後來用set就過了(注釋掉的部分是在網上看的別人的).

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define ll long long

using

namespace std;

int n,e,v,k;

int g[

550]

[550];

int sd,ed;

//struct node

//;int

main()

int q,col[

550]

; cin>>q;

int flag;

while

(q--)if

(s.size()

!=k)

else

// }

for(

int i=

1; i<=v; i++)}

} label:

if(flag)

cout<<

"yes"

cout<<

"no"

}

2.功夫傳人

網上看的題解

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define ll long long

using

namespace std;

const

int n =

1e5+10;

vector<

int>child[n]

;double val[n]

;double sum=0;

double z,r;

void

dfs(

int id,

double w)

else

}return;}

intmain()

else}}

dfs(

0,z)

; cout<<

(int

)sum

}

3.紅色警戒

用dfs計算一下連通分量,每去除乙個點計算一下連通分量,如果比之前的連通分量增加了》=2,則red alert,否則city is lost.

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define ll long long

using

namespace std;

const

int n =

1e5+10;

int n,m,u,v;

int g[

550]

[550];

bool vis[n]

;void

dfs(

int s)}}

intmain()

//連通分量增加的數量》=警報會響

int num=0;

for(

int i=

0; iint q,id;

cin>>q;

for(

int k=

1; k<=q; k++

)int cnt=0;

for(

int i=

0; iif(cnt-num>=2)

printf

("red alert: city %d is lost!\n"

,id)

;else

printf

("city %d is lost.\n"

,id)

; num = cnt;}if

(q>=n)

cout<<

"game over."

}//

PTA 補題 城市間緊急救援 25分

題目 作為乙個城市的應急救援隊伍的負責人,你有一張特殊的全國地圖。在地圖上顯示有多個分散的城市和一些連線城市的快速道路。每個城市的救援隊數量和每一條連線兩個城市的快速道路長度都標在地圖上。當其他城市有緊急求助 給你的時候,你的任務是帶領你的救援隊盡快趕往事發地,同時,一路上召集盡可能多的救援隊。輸入...

是否二叉搜尋樹PTA

本題要求實現函式,判斷給定二叉樹是否二叉搜尋樹。bool isbst bintree t 其中bintree結構定義如下 typedef struct tnode position typedef position bintree struct tnode 函式isbst須判斷給定的t是否二叉搜尋樹...

CodeChef補題計畫

已完成2題。1.chsgmnts 題意 n 1000,a i 1e9,計數有多少對區間 l1,r1 l2,r2 滿足沒有乙個數x同時存在於 l1,r1 l2,r2 o n n 把相同的數建立鍊錶,且前驅pre i 對第乙個區間 for l1 1 n for r1 n 1 遍歷,對於pre r1 l1...