https://ac.nowcoder.com/acm/contest/372#question
#include <bits/stdc++.h> using namespace std; const int maxn = 1e5 + 10; int N; struct Node { int x; int y; int cnt; }node[maxn]; int main() { scanf("%d", &N); for(int i = 0; i < N; i ++) scanf("%d%d", &node[i].x, &node[i].y); for(int i = 0; i < N; i ++) { for(int j = 0; j < N; j ++) { if(node[j].x > node[i].x && node[j].y > node[i].y) node[i].cnt ++; } } for(int i = 0; i < N; i ++) printf("%d\n", node[i].cnt); return 0; }
#include <bits/stdc++.h> using namespace std; const int maxn = 1e5 + 10; int N, M; int num[maxn]; int main() { scanf("%d", &N); for(int i = 0; i < N; i ++) scanf("%d", &num[i]); sort(num, num + N); scanf("%d", &M); while(M --) { int x; scanf("%d", &x); int l = 0, r = N - 1, mid; while(l <= r) { mid = (l + r) / 2; if(x > num[mid]) l = mid + 1; else if(x == num[mid]) break; else r = mid - 1; } if(num[mid] == x) printf("%d\n", num[mid]); else if(num[mid] > x) { if(mid == 0) printf("%d\n", num[mid]); else if((num[mid] - x) >= (x - num[mid - 1])) printf("%d\n", num[mid - 1]); else printf("%d\n", num[mid]); } else { if(mid == N - 1) printf("%d\n", num[mid]); else if((num[mid + 1] - x) >= (x - num[mid])) printf("%d\n", num[mid]); else printf("%d\n", num[mid + 1]); } } return 0; }
#include <bits/stdc++.h> using namespace std; string s, a, b; int main() { cin >> s >> a >> b; int sign; sign = s.find(a, 0); while(sign != string::npos) { s.replace(sign, a.size(), b); sign = s.find(a, sign + 1); } cout << s; return 0; }
#include <bits/stdc++.h> using namespace std; const int maxn = 1e6 + 10; int N; int num[maxn]; map<int, int> mp; int main() { scanf("%d", &N); for(int i = 0; i < N; i ++) scanf("%d", &num[i]); set<int> s; int L = 0, R = 0, ans = 0; while(R < N) { while(R < N && !s.count(num[R])) { s.insert(num[R]); //mp[num[R]] ++; R ++; } ans = max(ans, R - L); s.erase(num[L]); //mp[num[L]] = 0; L ++; } printf("%d\n", ans); return 0; }
D 题用 map 会超时
FH
原文:https://www.cnblogs.com/zlrrrr/p/10426046.html