京东c++ 两题ac题解
第一题:普通图论
#include<bits/stdc++.h> using namespace std; const int MAXN = 1e3 + 10; std::vector<int> v[MAXN]; int mp[MAXN][MAXN]; string vis[MAXN]; int main() { int t; cin >> t; while(t--) { memset(mp, 0, sizeof(mp)); for(int i = 1; i < MAXN; ++i) vis[i] = ""; int n, m; cin >> n >> m; for(int i = 0; i < m; ++i) { int x, y; cin >> x >> y; v[x].push_back(y); v[y].push_back(x); mp[x][y] = 1; mp[y][x] = 1; } string sol = "Yes"; for(int i = 1; i <= n; ++i) { for(int j = 1; j <= n; ++j) { if(mp[i][j]) { vis[i] += j + '0'; } } } for(int i = 1; i <= n; ++i) { for(int j = 1; j <= n; ++j) { if(i == j) continue; if(mp[i][j] != 1) { if(vis[i] != vis[j]) { sol = "No"; } } } } cout << sol << endl; } return 0; }
第二题
一开始想复杂了 以为是树状数组,最后发现暴力就过了。。
#include<iostream> #include<algorithm> #include<string> #include<cmath> #include<vector> #include<set> #include<map> #include<stack> #include<queue> #include<bitset> #include<cstdio> #include<cstring> using namespace std; #define ll long long #define cls(name,x) memset(name,x,sizeof(name)) const double pi=acos(-1.0); const ll MAX=2e9+7; const ll mod=1e9+7; const ll maxn=1e4+7; struct node{ int a,b,c; }q[500005]; bool cmp(node xx,node yy){ if(xx.a!=yy.a){ return xx.a<yy.a; } else{ return xx.b<yy.b; } } int main() { int n; cin>>n; for(int i=0;i<n;i++){ cin>>q[i].a>>q[i].b>>q[i].c; } int sum=0; sort(q,q+n,cmp); for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++){ if((q[i].b<q[j].b)&&(q[i].c<q[j].c)){ sum++; break; } } } cout<<sum<<endl; }
#京东##题解##笔试题目#