個人訓練(三) 19 11 24

2021-09-29 22:01:02 字數 2763 閱讀 6692

題目鏈結

密碼 hpualgorithm有一顆樹,從根出發到葉節點的路徑中,路徑上不能有大於m個連續的紅色的節點,符合這個條件的路徑有幾條?

#include

using

namespace std;

vector<

int> s[

100005];

int vis[

100005];

int val[

100005];

int ans, n, m;

void

dfs(

int now,

int num)

for(

int i =

0; i < s[now]

.size()

; i++)if

(vis[s[now]

[i]]==0

)}intmain()

vis[root]=1

;dfs

(root,val[root]);

cout << ans << endl;

}return0;

}

一階菱形只是乙個1×1的正方形(即乙個單元),所有n≥2的n階菱形是從n-1階菱形加上所有與它有公共邊的單元得到的,要求你計算n階菱形中的單元數。

找規律,每個數是n的平方加n減一的平方。

或者,每個數總比上乙個數多出來的數多了四個(見**)。

#include

using

namespace std;

long

long

int ans[

105]=;

void

init()

}int

main()

給你乙個陣列,每乙個數都可以通過給定的公式(a[i] = -a[i]-1)轉化成另外乙個值,在所有可能的陣列中,求出乙個陣列,使得所有陣列元素的乘積最大。

每個數都可以變成負數和非負數,並且負數的絕對值比非負數的絕對值大,因此我們可以把所有的負數轉換成非負數,然後從小到大排序,再把盡可能多的偶數個非負數轉換成負數輸出,如果最後剩下乙個,直接輸出就行,因為前面已經把它轉換成非負數了。

#include

#include

#include

using

namespace std;

long

long

int a[

1000005]=

;int

main()

sort

(a, a + n)

;long

long

int m = n /2*

2, flag =0;

for(

long

long

int i =

0; i < m; i++)if

(m != n && flag ==

1) cout <<

" "<< a[n -1]

<< endl;

else

if(m != n && flag ==

0) cout << a[n -1]

<< endl;

else

if(m == n) cout << endl;

}return0;

}

有m對整數,每個整數的範圍都在1到n之間,包括1和n。pairs是(a1, b1),(a2, b2),…,(am, bm)。他要求你檢查是否存在兩個整數x和y(1≤x<y≤n),使得在每個給定的對中,至少乙個整數等於x或y。

輸入m組資料,找到與a[0]都不同的一組資料,把a[i]賦值給v1,把b[i]賦值給v2,判斷v1,v2是否符合題目條件,如果符合,輸出yes,跳出迴圈,否則就找到與b[0]都不同的一組資料,把a[i]賦值給v1,把b[i]賦值給v2,判斷v1,v2是否符合題目條件,如果符合,輸出yes,跳出迴圈,否則輸出no,程式結束。(不知道哪的問題,tle了)

//tle

#include

#include

#include

#include

using

namespace std;

long

long

int a[

300005

], b[

300005];

bool

isyes

(long

long

int x,

long

long

int v1,

long

long

int m)

intmain()

if(isyes

(x, v1, m)

||isyes

(x, v2, m))

y = b[0]

;for

(int i =

0; i < m; i++)if

(y != a[i]

&& y != b[i])if

(isyes

(y, v1, m)

||isyes

(y, v2, m)

) cout <<

"no"

<< endl;

}return0;

}

Chelly個人訓練

arc100f cometoj 5problem 3 6rank 65 496 2019 計蒜之道 複賽problem 5 7rank 50 751 comet oj contest 7problem 3 6rank 63 596 comet oj contest 7 d 斜率優化dp。注意到a和b...

HPU個人訓練3

題目大意 kefa住在編號為1的房子裡,現在kefa要去餐廳,餐廳位於樹的葉子節點,現在給乙個m,如果kefa去餐廳的路徑連續遇到貓的個數大於m,該餐廳kefa就不會過去,1位置上有貓。問kefa可以去的餐廳個數。解題思路 用dfs將圖跑一遍即可,過程中標記連續遇到貓的個數,還有乙個點就是需要判斷該...

程式設計訓練(三)

關於深度優先演算法 dfs 和廣度優先演算法 bfs 的一點東西。深度優先,本質應該是圖的遍歷,從某個頂點出發,訪問圖中的每乙個頂點,而深度優先就意味著它是優先選擇更深層次的頂點,用樹來看得的話,那就是最快到達某個葉子結點。一般步驟 1 選取圖中某一頂點vi為出發點,訪問並標記該頂點 2 以vi為當...