欧美1区2区3区激情无套,两个女人互添下身视频在线观看,久久av无码精品人妻系列,久久精品噜噜噜成人,末发育娇小性色xxxx

題解 | #最小連通代價(jià)#

最小連通代價(jià)

https://ac.nowcoder.com/acm/problem/274537

題意:同奇偶連線(xiàn)代價(jià)為a,不同奇偶連線(xiàn)代價(jià)為b,求n個(gè)點(diǎn)連線(xiàn)的最小代價(jià)【注意a和b可以<=0】

思路: 很明顯我們可以手繪出兩層

奇數(shù): x x x x

偶數(shù): x x x x x

開(kāi)始分類(lèi)討論【注意奇數(shù)或偶數(shù)的個(gè)數(shù)為0的情況,就必須只能同類(lèi)連線(xiàn)】:

1.若a<0,b<0:連的線(xiàn)越多越好 同類(lèi)兩兩連線(xiàn),不同類(lèi)也兩兩連線(xiàn)

2.若a<0,b>=0 或 a>0,b<=0:同類(lèi)全都連線(xiàn),不同奇偶類(lèi)間連一條線(xiàn)

3.若a>0,b>0:分類(lèi)如果a<b則同類(lèi)連線(xiàn),不同類(lèi)連一根;若b<a,則不同類(lèi)之間連線(xiàn)

void solve()
{
	int n, a, b;
	cin >> n >> a >> b;
	int cnt1 = 0, cnt2 = 0;
	for (int i = 1; i <= n; i++)
	{
		int num;
		cin >> num;
		if (num % 2)
			cnt1++;
		else
			cnt2++;
	}
	int na = 0, nb = 0;
	if (a <= 0 && b <= 0)
	{
		na = cnt1 * (cnt1 - 1) / 2 + (cnt2) * (cnt2 - 1) / 2;
		nb = cnt1 * cnt2;
	}
	else if (a <= 0 && b > 0)
	{
		na = cnt1 * (cnt1 - 1) / 2 + cnt2 * (cnt2 - 1) / 2;
		if (cnt1 && cnt2)
			nb = 1;
	}
	else if (a > 0 && b <= 0)
	{
		if (cnt1 && cnt2)
			nb = cnt1 * cnt2, na = 0;
		else
			na = n - 1, nb = 0;
	}
	else if (a > 0 && b > 0)
	{
		if (cnt1 && cnt2)
		{
			if (a < b)
				nb = 1, na = n - 2;
			else
				nb = n - 1, na = 0;
		}
		else
		{
			nb = 0, na = n - 1;
		}
	}
	int ans = 0;
	ans = a * na + b * nb;
	cout << ans << endl;
}
全部評(píng)論

相關(guān)推薦

???46100688號(hào):螞蟻卡簡(jiǎn)歷的,簡(jiǎn)歷看不上眼全a了也不會(huì)有面試的。
投遞螞蟻集團(tuán)等公司9個(gè)崗位
點(diǎn)贊 評(píng)論 收藏
分享
評(píng)論
點(diǎn)贊
收藏
分享

創(chuàng)作者周榜

更多
??途W(wǎng)
??推髽I(yè)服務(wù)