寒假集訓被學校巨佬們震撼、苦心刷題,終於有空在天梯賽前把板題湊合整理一下,(賽前來波自我安慰)
hdu 2199
wa了兩次,第二次再做時沒有審清題,題目鎖定了答案在0到100之間,其餘的輸出為no solution!,然而預設只有小於零才輸出。(還有注意資料型別:double)
ac**
#include
#include
#include
#include
#define ll long long
using namespace std;
int nstd;
double
compute
(double x)
intmain
(int argc,
char
const
*ar**)
else right=mid;
} cout
)<}else cout<<
"no solution!"
<}return0;
}
csu 2059
平面切割問題:我的思路,推導遞推公式(如果tle就開陣列然後遞推填陣列),通過考慮極端情況,即讓"v型字"或"z型字"延伸到邊界,但實際上是延伸不到邊界,因此每次要減去相應的值。
主要是在最後的輸出處有每次特殊情況減去的操作。
#include
using namespace std;
long
long
intd
(int a)
else
}int
main
(int argc,
char
const
*ar**)
return0;
}
hdu1213
並查集問題(有向)的關鍵在於兩個函式,第乙個可以理解為找到父節點的函式,第二個為融合(即merge函式),將有關聯的兩個元素聯絡起來。
這道題第二遍做的時候wa了一次,對比了集訓時第一遍做的錯在了merge函式的融合部分,即如果兩者的父節點不同的時候應該把另乙個元素的父節點接到列乙個元素的父節點後邊,不是把另乙個元素接到另乙個元素的父節點後邊(因為這樣可以避免另乙個父節點是自己的情況)。
#include
using namespace std;
int fa[
1050];
intfindfa
(int x)
return fa[x];}
void
merge
(int x,
int y)
return;}
intmain
(int argc,
char
const
*ar**)
int s,t;
for(
int i =
0; i < n;
++i)
int ans=0;
for(
int i =
1; i <= m;
++i)
} cout<}return0;
}
ACM 天梯賽賽前複習
dag 有向無環圖 入度 指向這個元素的行為。出度 從這個元素指出去的行為。正向建圖與反向建圖 根據入度或出度的某一方嚮往最後的答案陣列中放元素。hdu4857 思路 利用每個元素的入度 出度 來首先拿出乙個元素,然後根據這個元素相關的向量來 1 先把相關的入度 出度 都減一,2 遍歷一遍看有沒有元...
天梯賽賽前模擬賽補題 2020
一 暢通工程之最低成本建設問題 這道題是用最小生成樹做的,之前最小生成樹練的很少,比賽時沒寫出來,也沒考慮用最小生成樹,還是練得少。這個題可以用kruskal演算法做,先將每條路的花費從小到大排序,然後再從頭開始加每條邊花費的 從頭開始用並查集判斷兩個點的根節點是否相同,如果相同說明出現了環,就co...
PTA天梯賽樹的複習
先序遍歷 根左右 中序遍歷 左根右 後序遍歷 左右根 給定一棵二叉樹的後序遍歷和中序遍歷,請你輸出其層序遍歷的序列。這裡假設鍵值都是互不相等的正整數。輸入格式 輸入第一行給出乙個正整數n 30 是二叉樹中結點的個數。第二行給出其後序遍歷序列。第三行給出其中序遍歷序列。數字間以空格分隔。輸出格式 在一...