題目鏈結
密碼 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為當...