//我等渣渣只会遍历默默去哭了 /* 第一题 */ #include <iostream> #include <vector> using namespace std; struct NODE { int x; int y; }; int main() { int N; cin >> N; NODE *node = new NODE[N]; for(int i=0;i<N;i++) { cin >> node[i].x; cin >> node[i].y; } vector <NODE> ret; int istrue; for(int i=0;i<N;i++) { istrue = 1; for(int j=0;j<N;j++) { if(j != i) { if((node[j].x - node[i].x >= 0) && (node[j].y - node[i].y >= 0) ) istrue = 0; } } if(istrue == 1) ret.push_back(node[i]); } NODE temp; for(int i=0;i<ret.size();i++) { for(int j=1;j<ret.size()-1;j++) { if(ret[j].x > ret[j+1].x) { temp = ret[j]; ret[j] = ret[j+1]; ret[j+1] = temp; } } } for(int i=0;i<ret.size();i++) cout<<ret[i].x<<" "<<ret[i].y<<endl; return 0; } /* 第二题 */ #include <iostream> #include <vector> using namespace std; vector <int> team; vector < vector <int> > Teams; int max_ret = 0; int main() { int mid(vector <int> &vec, int k); void zuhe(int *arr,int i,int k,int n); int n; cin >> n; int *in = new int[n]; for(int i=0;i<n;i++) cin >> in[i]; for(int k = 1; k <= n; k++) zuhe(in, 0, k, n); // cout<<max_ret<<endl; getchar(); getchar(); delete []in; return 0; } int mid(vector <int> &vec, int k) { int sum = 0; int min = vec[0]; int index = 0; if(k == 1) sum = vec[0]; else { for(int i=0;i<k;i++) { if(vec[i] < min) { min = vec[i]; index = i; } } for(int j=0;j<k;j++) { if(j != index) sum += vec[j]; } } return min * sum; } void zuhe(int *arr,int i,int k,int n) { int temp; if(team.size() == k) { temp = mid(team,k); if(temp > max_ret) max_ret = temp; Teams.push_back(team); return; } for(int j = i; j < n; j++) { team.push_back(arr[j]); zuhe(arr, j + 1, k, n); team.pop_back(); } }
点赞 评论

相关推荐

牛客网
牛客企业服务