洛谷 1571 眼紅的Medusa

2022-03-04 10:07:25 字數 719 閱讀 9095

雖說這道題標籤裡寫明了二分,然而我還是首先想到了map......畢竟map真的是簡單好寫。

#includeusing

namespace

std;

intn,m;

mapv;

int a[101000],b[101000

];int

main()

for(int i=1;i<=m;i++) //

建立對映關係

for(int i=1;i<=n;i++) if(v[a[i]]) cout<"

";//

如果出現過直接輸出

}return

0;

不過言歸正傳,我還是衝著二分來寫這道題的,這個二分思路不難想,就是將第二個陣列排序(第乙個陣列與輸出順序有關,不能排序),然後挨個二分第乙個陣列裡的數是否存在於第二個陣列就好了,時間複雜度o(nlogn),n<100000,那就不超時啦。

#includeusing

namespace

std;

intn,m;

int a[101000],b[101000

];bool binary_search(int

x)

return

0;

}int

main()

洛谷 P1571 眼紅的Medusa

雖然miss medusa到了北京,領了科技創新獎,但是他還是覺得不滿意。原因是,他發現很多人都和他一樣獲了科技創新獎,特別是其中的某些人,還獲得了另乙個獎項 特殊貢獻獎。而越多的人獲得了兩個獎項,miss medusa就會越眼紅。於是她決定統計有哪些人獲得了兩個獎項,來知道自己有多眼紅。輸入格式 ...

洛谷 P1361 小M的作物

有 nn n 種作物,兩塊耕地 a aa 和 bbb 第 i ii 種作物種植在 a aa 中收益為 a ia i ai 種植在 b bb 中收益為 b ib i bi 另有 m mm 種組合,每種組合有 k kk 種作物,如果這 k kk 種作物共同種在 a aa 中收益為 c1i c1 i c1...

洛谷1361 小M的作物(最小割)

洛谷 這是乙個比較實用的套路,很多題目都有用,而且這個套路難以口胡出來。考慮把每乙個附加貢獻重新建乙個點,然後向必需的點連邊,流量為val。然後直接種植的從源點向這個點連,流量為val。最後跑乙個最小割就可以了。includeusing namespace std const int n 50001...