线性分析器(csp 202006-1)
原题链接
#include<iostream>
using namespace std;
#define NMAX 1003
struct dot {
int x, y, type;
}D[NMAX];
int n, m;
int main() {
cin >> n >> m;
for (int i = 0; i < n; i++) {
int x, y;
char c;
cin >> x >> y;
D[i].x = x, D[i].y = y;
getchar();
c = getchar();
if (c == 'A') D[i].type = 0;
else if (c == 'B') D[i].type = 1;
else cout << "WA";
}
for (int i = 0; i < m; i++) {
int b0, b1, b2;
cin >> b0 >> b1 >> b2;
int up = -1, down = -1;
for (int j = 0; j < n; j++) {
bool res = ((b0 + b1 * D[j].x + b2 * D[j].y) > 0);
if (res) {
if (up == -1) up = D[j].type;
else if (up != D[j].type) goto WA;
}
else {
if (down == -1) down = D[j].type;
else if (down != D[j].type) goto WA;
}
}
cout << "Yes" << endl;
continue;
WA:cout << "No" << endl;
}
}
稀疏向量(csp 202006-2)
原题链接
#include<iostream>
#include<map>
using namespace std;
int n, a, b;
map<int, int> c;
int main() {
cin >> n >> a >> b;
for (int i = 0; i < a; i++) {
int x, y;
cin >> x >> y;
c[x] = y;
}
long long res = 0;
for (int i = 0; i < b; i++) {
int x, y;
cin >> x >> y;
if (c.find(x) != c.end()) res += (long long)y * c[x];
}
cout << res;
}
总结
课越来越多了/(ㄒoㄒ)/~~