题意/题解
A Air Conditioner
- 题意:判断输入的整数是否不小于 30
- 题解:语言基础
B Distance
C Repsept
- 题意:给你一个 (k) 从他的倍数中找到一个只含 (7) 的输出这个倍数的长度。
- 题解:感觉需要动脑子,没做出来。
D Alter Altar
- 题意:(n) 个石子排成一行,石子分两种,一种为
R
一种为W
,可以进行两种操作:交换任意两个石子、改变一个的类型。问最少几次操作后不存在R
石子紧邻的左边为W
的情况
- 题解:感觉需要动脑子,没做出来。
E Logs
- 题意:有 (n) 个木头,每个木头有一个自己的长度,你可以切 (k) 次,使得切出来的木头中最长的最短,问最短为多长(小数就四舍五入)。
- 题解:感觉需要动脑子,没做出来。
F Range Set Query
- 题意:一个长为 (n) 的序列,每次询问一个区间 ([L,R]) 中有不同的数有几种
- 题解:莫队板子。
代码
A Air Conditioner
#include <cstdio>
#include <cstring>
#include <string>
#include <iostream>
#include <algorithm>
int a;
int main() {
std::cin >> a;
if (a >= 30) puts("Yes");
else puts("No");
return 0;
}
B Distance
#include <cmath>
#include <cstdio>
#include <cstring>
#include <string>
#include <iostream>
#include <algorithm>
int n, d;
int main() {
scanf("%d %d", &n, &d); int ans = 0;
for (int i = 1, x, y; i <= n; ++i) {
scanf("%d %d", &x, &y);
double dis = sqrt(1ll * x * x + 1ll * y * y);
if (dis <= d) ++ans;
}
printf("%d
", ans);
return 0;
}
F Range Set Query
#include <cmath>
#include <cstdio>
#include <cstring>
#include <string>
#include <iostream>
#include <algorithm>
#define MAXN 500001
int n, m, a[MAXN], ans[MAXN];
int sqrn, num[MAXN], ba[MAXN];
struct query {
int x, y, id;
friend bool operator < (query q1, query q2) {
if (num[q1.x] == num[q2.x]) return num[q1.y] < num[q2.y];
return num[q1.x] < num[q2.x];
}
}q[MAXN];
int main() {
scanf("%d %d", &n, &m), sqrn = sqrt(n);
for (int i = 1; i <= n; ++i) {
scanf("%d", &a[i]);
num[i] = (i - 1) / sqrn + 1;
}
for (int i = 1; i <= m; ++i) {
scanf("%d %d", &q[i].x, &q[i].y);
q[i].id = i;
}
std::sort(q + 1, q + m +1);
int l = 1, r = 1, now = 1;
ba[a[l]] = 1;
for (int i = 1; i <= m; ++i) {
while(l > q[i].x) {
++ba[a[--l]];
if (ba[a[l]] == 1) ++now;
}
while(r < q[i].y) {
++ba[a[++r]];
if (ba[a[r]] == 1) ++now;
}
while(l < q[i].x) {
if (ba[a[l]] == 1) --now;
--ba[a[l++]];
}
while(r > q[i].y) {
if (ba[a[r]] == 1) --now;
--ba[a[r--]];
}
ans[q[i].id] = now;
}
for (int i = 1; i <= m; ++i) printf("%d
", ans[i]);
return 0;
}
rating
![](https://img2020.cnblogs.com/blog/1666516/202008/1666516-20200802215819654-1910284347.png)
反思:
- 太菜了。
- 做不出 C、D 是没想到的。
- 做出了 F 更没想到。
- 由没做出 C、D 但是做出了 F 可得需要多锻炼下思维。。。