Codeforces Round #561 (Div. 2) E. The LCMs Must be Large(數學)

傳送門html

 

題意:c++

  有 n 個商店,第 i 個商店出售正整數 aiide

  Dora 買了 m 天的東西,第 i 天去了 si 個不一樣的個商店購買了 si 個數;spa

  Dora 的對手 Swiper 在第 i 天去了 Dora 未去的商店購買了 n-si 個數;.net

  問在這m天裏,是否存在序列a,使得這 m 天都知足 LCM(Dora購買的數) > LCM(Swiper購買的數);code

題解:htm

  參考自(
blog

  ①若是存在兩天,在這兩天中獲得的數字集合不存在交集,那麼確定是無解的。
  ②若是任意兩天之間都存在交集時,必定有解(仍是不太理解)。ip

AC代碼:get

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int maxn=1e4+50;
 4 
 5 int n,m;
 6 bitset<maxn>b;
 7 vector<bitset<maxn> >vs;
 8 
 9 char *Solve()
10 {
11     for(int i=0;i < vs.size();++i)
12         for(int j=0;j < vs.size();++j)
13             if(!(vs[i]&vs[j]).any())
14                 return "impossible";
15     return "possible";
16 }
17 int main()
18 {
19     scanf("%d%d",&m,&n);
20     for(int i=1;i <= m;++i)
21     {
22         int tot,s;
23         scanf("%d",&tot);
24         b.reset();
25         for(int j=1;j <= tot;++j)
26         {
27             scanf("%d",&s);
28             b.set(s);
29         }
30         vs.push_back(b);
31     }
32     puts(Solve());
33 
34     return 0;
35 }
View Code

此處代碼用到了一個STL中的一個騷操做bitset<>,詳解戳這裏

這個操做是我在看大神代碼中看到的,tql;

STL也太強大了叭qwq!

相關文章
相關標籤/搜索