Codeforces Round #435 (Div. 2)

A. Mahmoud and Ehab and the MEX

題目連接:http://codeforces.com/contest/862/problem/Aios

題目意思:如今一個數列中有n個數,每一個數小於等於100,如今要讓這個數列的met=k,意思是若是從1-100中第一個未出現的數字爲met。c++

題目思路:在[0,k)區間內全部在數列中不存在的數的數量+check(k),check()表示判斷k是否存在,若是存在返回1,不存在返回0;ide

代碼:spa

 1 //Author: xiaowuga
 2 #include <bits/stdc++.h>
 3 using namespace std;
 4 #define inf 0x3f3f3f3f
 5 #define MAX INT_MAX
 6 #define mem(s,ch) memset(s,ch,sizeof(s))
 7 const long long N=100000; 
 8 const long long mod=1e9+7; 
 9 typedef long long LL;
10 typedef int II;
11 typedef unsigned long long ull;
12 #define nc cout<<"nc"<<endl
13 #define endl "\n"
14 II a[101]={0};
15 int main() {
16     ios::sync_with_stdio(false);cin.tie(0);
17     II n,x;
18     cin>>n>>x;
19     for(II i=0;i<n;i++){
20         II t;
21         cin>>t;
22         a[t]++;
23     }
24     II ans=0;
25     for(II i=0;i<x;i++){
26         if(a[i]==0) ans++;
27     }
28     if(a[x]) ans++;
29     cout<<ans<<endl;
30     return 0;
31 }
View Code

B. Mahmoud and Ehab and the bipartiteness

題目連接:http://codeforces.com/contest/862/problem/B3d

題目意思: 給定一個n 個節點  n-1 條邊的圖,求最多還能加幾條邊,保證 這個圖不存在重邊,自環,而且是一個二分圖code

題目思路:首先一個樹是一個二分圖,咱們能夠經過dfs能夠把一個樹的節點push進兩個vector中,這樣就構造了一個二分圖,那麼答案就是size1×size2-n+1.blog

代碼:ip

 1 //Author: xiaowuga
 2 #include <bits/stdc++.h>
 3 using namespace std;
 4 #define inf 0x3f3f3f3f
 5 #define MAX INT_MAX
 6 #define mem(s,ch) memset(s,ch,sizeof(s))
 7 const long long N=100000; 
 8 const long long mod=1e9+7; 
 9 typedef long long LL;
10 typedef int II;
11 typedef unsigned long long ull;
12 #define nc cout<<"nc"<<endl
13 #define endl "\n"
14 II n;
15 vector<int>G[100000+10];
16 vector<int>a[2];
17 void dfs(II u,II fa,II s){
18     a[s].push_back(u);
19     for(II i=0;i<G[u].size();i++){
20         II v=G[u][i];
21         if(v==fa) continue;
22         dfs(v,u,s^1);
23     }
24 }
25 int main() {
26     ios::sync_with_stdio(false);cin.tie(0);
27     cin>>n;
28     if(n==1){cout<<0<<endl;return 0;}
29     for(II i=0;i<n-1;i++){
30         II x,y;
31         cin>>x>>y;
32         G[x].push_back(y);
33         G[y].push_back(x);
34     }
35     dfs(1,0,0);
36     LL sz1=a[1].size();
37     LL sz2=a[0].size();
38     cout<<sz1*sz2-n+1<<endl;
39     return 0;
40 }
View Code
相關文章
相關標籤/搜索