【AtCoder ABC 106】补题AK

比赛链接

A 小学数学

思路 小学数学没什么好说的
代码
#include <bits/stdc++.h>
using namespace std;
#define umap unordered_map
#define cy cout << "Yes" << endl
#define cn cout << "No" << endl
#define ll long long
#define forn(i, l, r) for (int i = l; i <= r; i++)
#define forn_(i, l, r) for (int i = l; i >= r; i--)
#define debug(a) cout << #a << "=" << a << endl;
const int inf = 0x3f3f3f3f;
const int N = 2e5 + 5;

int main() {
	int a, b;
	cin >> a >> b;

	cout << (a - 1) * (b - 1);
	return 0;
}

B 枚举

思路 纯枚举,也没什么好说的
代码
#include <bits/stdc++.h>
using namespace std;
#define umap unordered_map
#define cy cout << "Yes" << endl
#define cn cout << "No" << endl
#define ll long long
#define forn(i, l, r) for (int i = l; i <= r; i++)
#define forn_(i, l, r) for (int i = l; i >= r; i--)
#define debug(a) cout << #a << "=" << a << endl;
const int inf = 0x3f3f3f3f;
const int N = 2e5 + 5;

bool cnt(int x) {
	int res = 0;
	forn(i, 1, x) if (x % i == 0) res++;
	return res == 8;
}
int n;
int ans;
int main() {
	cin >> n;

	forn(i, 1, n) if (i & 1) ans += cnt(i);

	cout << ans;
	return 0;
}

C 思维

思路

image

代码
#include <bits/stdc++.h>
using namespace std;
#define umap unordered_map
#define cy cout << "Yes" << endl
#define cn cout << "No" << endl
#define ll long long
#define forn(i, l, r) for (int i = l; i <= r; i++)
#define forn_(i, l, r) for (int i = l; i >= r; i--)
#define debug(a) cout << #a << "=" << a << endl;
const int inf = 0x3f3f3f3f;
const int N = 2e5 + 5;

ll k;
string s;
int main() {
	cin >> s >> k;
	int n = s.size();
	s = ' ' + s;

	forn(i, 1, n) {
		if (i == k && s[i] == '1') {
			cout << 1;
			return 0;
		}
		if (s[i] != '1') {
			cout << s[i];
			return 0;
		}
	}

	return 0;
}

D 思维

思路

image

代码
#include <bits/stdc++.h>
using namespace std;
#define umap unordered_map
#define cy cout << "Yes" << endl
#define cn cout << "No" << endl
#define ll long long
#define forn(i, l, r) for (int i = l; i <= r; i++)
#define forn_(i, l, r) for (int i = l; i >= r; i--)
#define debug(a) cout << #a << "=" << a << endl;
const int inf = 0x3f3f3f3f;
const int N = 5e2 + 5;

ll n, m, q;
ll s[N][N];
ll l, r;
int main() {
	cin >> n >> m >> q;
	forn(i, 1, m) cin >> l >> r, s[l][r]++;

	forn(i, 1, n) forn(j, 1, n) s[i][j] += s[i - 1][j] + s[i][j - 1] - s[i - 1][j - 1];

	while (q--) {
		cin >> l >> r;
		cout << s[r][r] - s[l - 1][r] - s[r][l - 1] + s[l - 1][l - 1] << endl;
	}
	return 0;
}
posted @ 2023-11-27 23:07  史上最速败犬  阅读(20)  评论(0)    收藏  举报