T1:321-like Checker
模拟
代码实现
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
cin >> s;
for (int i = 0; i+1 < s.size(); ++i) {
if (s[i] <= s[i+1]) {
puts("No");
return 0;
}
}
puts("Yes");
return 0;
}
T2:Cutoff
暴力枚举 \(A_N\) 即可
代码实现
#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (n); ++i)
using namespace std;
int main() {
int n, x;
cin >> n >> x;
vector<int> a(n);
rep(i, n-1) cin >> a[i];
while (a.back() <= 100) {
auto b = a;
sort(b.begin(), b.end());
int s = 0;
for (int i = 1; i < n-1; ++i) s += b[i];
if (s >= x) {
cout << a.back() << '\n';
return 0;
}
a.back()++;
}
puts("-1");
return 0;
}
T3:321-like Searcher
暴搜出所有的 321-like Number
代码实现
#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (n); ++i)
using namespace std;
using ll = long long;
int main() {
int k;
cin >> k;
vector<ll> a;
rep(s, 1<<10) {
ll x = 0;
for (int i = 9; i >= 0; --i) {
if (s>>i&1) {
x = x*10+i;
}
}
if (x == 0) continue;
a.push_back(x);
}
sort(a.begin(), a.end());
cout << a[k-1] << '\n';
return 0;
}