Contestant. Rank 720. Unrated.
划水,打卡,三题,结束((
A. Walking Boy
题意
给定一个升序排序的数组
思路
如题。
时间复杂度:
对应AC代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 2e5 + 10, inf = 0x3f3f3f3f, mod = 998244353;
int a[N];
signed main() {
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int t, n;
cin >> t;
while(t --){
cin >> n;
for(int i=1;i<=n;i++){
cin >> a[i];
a[i] = min(a[i], 1440ll);
}
int cnt = 0;
a[n + 1] = 1440;
for(int i=1;i<=n + 1;i++) cnt += (a[i] - a[i - 1]) / 120;
cout << (cnt >= 2 ? "YES\n" : "NO\n");
}
}
你怕是不想让我看懂(
H. Beppa and SwerChat
题意
给定两个时间段的好友列表,列表按照最后一条消息的时间降序排序。输出至少有多少人在两个时间段内发了消息。
思路
很显然,若发送了消息,那么这个人是从当前位置移动到第一个位置的。
或者更具体地说,我们从后往前遍历
当然,我们可以记录
时间复杂度:
对应AC代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e5 + 10, inf = 0x3f3f3f3f, mod = 998244353;
int a[N], b[N];
signed main() {
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int t;
cin >> t;
while(t --){
int n;
cin >> n;
for(int i=0;i<n;i++){
int cur;
cin >> cur;
a[cur] = i;
}
for(int i=1;i<=n;i++) cin >> b[i];
int cnt = n;
for(int i=n;i>=1;i--){
cnt --;
if(a[b[i - 1]] > a[b[i]]) break;
}
cout << cnt << '\n';
}
}
捏码,怎么就WA了
L. Controllers
题意
给定一个由
思路
显然,我们有两个选择可以让最后的值为
选择任意数,
任意次后答案一定是 ; 将
进行配对,用最小公倍数找出合法配对,进行“抵消”。
我们不妨统计
考虑到两种配对方法的个数较少,且无法确定需要配对几次,所以我们不妨直接枚举所有
时间复杂度:
对应AC代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e5 + 10, inf = 0x3f3f3f3f, mod = 998244353;
int gcd(int a, int b) {
while (b != 0) {
int tmp = a;
a = b;
b = tmp % b;
}
return a;
}
signed main() {
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int n, q;
string op;
cin >> n >> op >> q;
int pl = 0;
for(char e : op) if(e == '+') pl ++;
int mi = n - pl;
int tmp = min(pl, mi);
mi = max(pl, mi);
pl = tmp;
while(q --){
int a, b;
cin >> a >> b;
tmp = min(a, b);
a = max(a, b);
b = tmp;
if(pl == mi){
cout << "YES\n";
continue;
}
int lcm = a * b / gcd(a, b);
int pa = lcm / a, pb = lcm / b;
int t = min(pl / pa, mi / pb);
bool f = false;
for(int i=1;i<=t;i++){
if(pl - i * pa == mi - i * pb){
f = true;
break;
}
}
cout << (f ? "YES\n" : "NO\n");
}
}
人类的智慧(
- 本文链接 https://floating-ocean.github.io/blog_old/posts/2576267679/
- 版权声明 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!