1. 程式人生 > >hdu6195 cable cable cable(from 2017 ACM/ICPC Asia Regional Shenyang Online)

hdu6195 cable cable cable(from 2017 ACM/ICPC Asia Regional Shenyang Online)

數量 rom ret int cstring 格子 sca () pre

最開始一直想不通,為什麽推出這個公式,後來想了半天,終於想明白了。

題目大意是,有M個格子,有K個物品。我們希望在格子與物品之間連數量盡可能少的邊,使得——不論是選出M個格子中的哪K個,都可以與K個物品恰好一一匹配。

然後你可以試著畫圖,每次必須有k個格子是單獨的(與各物體只有一條線相連)所以還剩下m-k個格子,可以用來補位,也就是跟每個物品都相連,所以就有(m-k)*k

上代碼(巨巨巨巨巨簡單):

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <algorithm>
 4
using namespace std; 5 6 int main(){ 7 long long m, k; 8 while (~scanf("%lld %lld", &m, &k)){ 9 printf("%lld\n", k + (m - k)*k); 10 } 11 //system("pause"); 12 return 0; 13 }

hdu6195 cable cable cable(from 2017 ACM/ICPC Asia Regional Shenyang Online)