隔壁學校地形圖可以通過乙個高度矩陣表示,矩陣中每乙個位置都有乙個數表示這個座標的海拔,我們姑且將其稱為海拔圖,容易發現,我們可以通過這個矩陣輕鬆算出隔壁學校的主檢視,左檢視。相反的,我們卻不能通過主檢視和左檢視唯一確定海拔圖,現在問題來了,已知主檢視左檢視,我們需要知道剷平隔壁學校的代價上限和下限(即可能的體積最大值與最小值)
給出的正檢視和側檢視其實就是那一行(列)的最大值了,因此,為避免衝突,求最大值的時候就在兩個最大值中去min
而求最小值,要使出現的數字盡量少,則其他全部填0,只滿足最大的點出現就可以了。
#includeusingnamespace
std;
#define n 1010
#define ll long long
#define rt register ll n,m,minx,maxx;
ll a[n],b[n],flag[n];
template
inline
void read(t &x)
while(ch>='
0'&&ch<='
9')
x*=f;
} int
main()
}
} for(rt ll i=1;i<=m;++i)
if(!flag[i])
minx+=b[i];
printf(
"%lld %lld
",minx,maxx);
return
0;
}
noip模擬賽 隔壁
分析 體積最大的比較好處理,對於第 i,j 格的高度取min a i b j 就好了,保證讓每個格仔的高度最大.對於最小的情況,只要讓第i列上有乙個格仔高度為a i 其它全是0,第j行有乙個高度為b j 其它全是0就好了.如果a,b中有相同的元素,那麼它們可以共用乙個格仔,因為最後每個高度都要取到,...
NOIP模擬 修路
這題第一眼看上去有些懵逼,還以為是dp。第二眼,哦,這麼裸的最小生成樹,2分鐘打完,拍都沒對,自信100分。最終100分。每條邊的權值減去連個節點的權值,所有的邊做一次最小生成樹就好了。include include include include include define fo i,a,b f...
NOIP模擬 項鍊
經過一番周折,bob找到了alice,為了安慰alice驚魂未定的心,bob決定給alice買一條手鍊,這條手鍊由m個珍珠組成,每個珍珠上刻著不同的小寫字母。當alice看到一些字母按照一定的順序排列成的字串時,就會產生一定的愉悅值。bob現在可以在這m個珍珠上刻上字母,現在他想知道,如何刻字母可以...