HPU個人訓練3

2022-05-02 19:09:07 字數 2384 閱讀 2458

題目大意:kefa住在編號為1的房子裡,現在kefa要去餐廳,餐廳位於樹的葉子節點,現在給乙個m,如果kefa去餐廳的路徑連續遇到貓的個數大於m,該餐廳kefa就不會過去,1位置上有貓。問kefa可以去的餐廳個數。

解題思路:用dfs將圖跑一遍即可,過程中標記連續遇到貓的個數,還有乙個點就是需要判斷該點是否為葉子節點。最好不要用鏈式前向星,該方法判斷葉子節點不好判斷。

code:

#include#includeusing namespace std;

const int n = 1e6+5;

vectorve[n];

int n,m,st[n],ans;

void dfs(int u,int k,int pr)

for(int i=0;i>n>>m;

for(int i=1;i<=n;i++) cin>>st[i];

for(int i=1;i>u>>v;

ve[u].push_back(v);

ve[v].push_back(u);

}dfs(1,st[1],0);

cout《題目大意:問能否將乙個圖分成三個集合,每個集合內部的點沒有邊,每個集合的點都和另外兩個集合的點連有邊,每個集合不能為空。

解題思路:先將1放在集合1,然後將和1相連的點全部置為2,剩下的點自然就是集合1裡面的元素,然後再從集合2中隨意找乙個元素,遍歷和它相連的點,如果該點不屬於集合1,就將該點放在集合3中。這樣就將三個集合找出來了。最後判斷三個集合是否與題意有衝突即可。

code:

#include#include#includeusing namespace std;

const int n = 6e5+5,m=n*2;

typedef long long ll;

ll h[n],cnt;

ll n,m,color[n],in[n];

vectorv[4];

struct edgeseg[m];

void add(ll u,ll v)

int main()

// cout<<"***********"《題目大意:兩個數與運算不為0,那麼就存在一條邊,判斷該圖中是否存在有環,存在輸出最小環的長度,反之輸出-1

解題思路:根據抽屜原理,若n大於128,則最小環一定為3,反之跑floyd求最小環即可。

code:

#includeusing namespace std;

const int n = 1e5+5;

typedef long long ll;

const ll inf = 1e14;

ll a[n],dis[300][300],e[300][300];

int n;

ll floyd()

}for(int i=1;i<=n;i++)}}

return res==inf?-1:res;

}int main()

}if(n>128)

int minn=0,temp;

if(n%2==0)

} else if(n&1)t[n];

void solve()

break;

} else

else

} }}int main()

solve();

for(int i=0;i>c;

if(c<=num) cout《題目大意:a,b坐兩個列車坐到某個目標位置,列車迴圈轉,問a,b在下車之前是否會出現在同乙個站點

解題思路:sb題,列舉即可

code:

#includeusing namespace std;

int n,a,x,b,y;

int main()

while(a!=x&&b!=y)

} if(flag) cout<<"yes"《題目大意:找到兩個數x,y;在給出的陣列中至少有乙個數和x或y相等。

解題思路:在第一行的兩個數乙個數為x,在剩下的裡面找y。看是否滿足條件。

code:

#include#includeusing namespace std;

const int n = 3e5+5;

typedef long long ll;

ll n,m;

struct node num[n];

mapma1,ma2;

ll x1,x2,sum1,sum2,x,y;

int main()

else sum1++;

if(x!=x2&&y!=x2)

else sum2++;

}// cout<=m)

else if(now>a[i])

else l=mid+1;

} cout

}

HPU 18級個人訓練 11月15日

題意 波浪陣列滿足四個條件 1 至少兩個元素。2 奇數字的數都相等。3 偶數字的數都相等。4 奇數字和偶數字的數不相等。給你乙個陣列 陣列中元素不大於c 你要從中找出波浪陣列的最大長度。保證波浪陣列是該陣列的一部分就行,就是可以在陣列中任意按順序挑選,使之滿足波浪陣列的條件 這個題可以用動態規劃 d...

hpu暑期訓練 E 尋找大富翁

e 尋找大富翁 浙江桐鄉烏鎮共有n個人,請找出該鎮上的前m個大富翁.input 輸入包含多組測試用例.每個用例首先包含2個整數n 0 output 請輸出烏鎮前m個大富翁的財產數,財產多的排前面,如果大富翁不足m個,則全部輸出,每組輸出佔一行.sample input 3 1 2 5 1 5 31 ...

hpu暑假訓練 E YK的書架 思維

時間限制 1 秒 記憶體限制 128 mb 提交 570 解決 129 題目描述 yk新買了2n 1 本相同的書,準備放在家裡的3 層書架上 每一層放書的數量 0且 n 不過yk擺放他的書有些特殊的要求,即任意兩層擺放的書的數目之和,嚴格大於另一層的書的數目。現在yk想知道在滿足他的要求的前提下有多...