字节跳动第一题(第四题差不多)
#include<stdio.h> #include<string> #include<iostream> #include<set> #include<vector> #include<string.h> #include<algorithm> #include<string> #include<math.h> #include<map> using namespace std; vector<set<int>>arr; set<int> book; void check_arr(int a, int b) { int i,j; if(arr.size()==0) { set<int> temp ; temp.insert(b); temp.insert(a); book.insert(b); book.insert(a); arr.push_back(temp); return ; } for(i=0;i<arr.size();i++) { if(arr[i].find(a)!= arr[i].end()) { arr[i].insert(b); book.insert(b); return ; } if(arr[i].find(b)!= arr[i].end()) { arr[i].insert(a); book.insert(a); return ; } } set<int> temp ; temp.insert(b); temp.insert(a); book.insert(b); book.insert(a); arr.push_back(temp); } int main() { int n; cin>>n; int a[210][210]={0}; int i,j; for(i=0;i<n;i++) { for(j=0;j<n;j++) { cin>>a[i][j]; if(i==j) a[i][j] = 1; else a[i][j] -= 2; } } for(i=0;i<n-1;i++) { for(j=i+1;j<n;j++) { if(a[i][j]>0) check_arr(i,j); } } int res = n - book.size() +arr.size(); cout<< res; return 0; }
#字节跳动##笔试题目#