代码:
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define x first
#define y second
typedef pair<int,int>PII;
const int N = 2e5 + 10;
void solve() {
int x, y;
cin >> x >> y;
if(y % x) {
cout << 0 << ' ' << 0 << endl;
} else {
int t = y / x;
for(int i = 1; ; i++) {
int cnt = 0;
int tt = 1;
int k = 50;
while(k) {
tt *= i;
cnt++;
if(tt == t) {
cout << cnt << ' ' << i << endl;
return;
}
k--;
}
}
}
}
signed main() {
int t;
cin >> t;
while(t--) {
solve();
}
return 0;
}
代码:
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define x first
#define y second
typedef pair<int,int>PII;
const int N = 2e5 + 10;
int q[26][26];
void solve() {
char a, b;
cin >> a >> b;
cout << q[a - 'a'][b - 'a'] << endl;
}
signed main() {
int t;
cin >> t;
int k = 1;
for(int i = 0; i < 26; i++) {
for(int j = 0; j < 26; j++) {
if(i == j) continue;
q[i][j] = k++;
}
}
while(t--) {
solve();
}
return 0;
}
代码:
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define x first
#define y second
typedef pair<int,int>PII;
const int N = 2e5 + 10;
void solve() {
string s, t;
cin >> s >> t;
int f = 0;
for(int i = 0; i < t.size(); i++) {
if(t[i] == 'a') f = 1;
}
if(t.size() > 1) {
if(f) {
cout << -1 << endl;
return;
}
}
int len = s.size();
if(!f) {
int x = pow(2, len);
cout << x << endl;
}else {
cout << 1 << endl;
}
}
signed main() {
int t;
cin >> t;
while(t--) {
solve();
}
return 0;
}
代码:
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define x first
#define y second
typedef pair<int,int>PII;
const int N = 2e5 + 10;
int a[N];
int b1[N];
int b2[N];
void solve() {
int n;
cin >> n;
for(int i = 1; i <= n; i++) cin >> a[i];
for(int i = n; i > 1; i -= 2) {
if(a[i] < a[i - 1]) swap(a[i], a[i-1]);
}
bool flag = false;
if(is_sorted(a+1, a+1+n)) flag = true;
if(flag) puts("YES");
else puts("NO");
}
signed main() {
int t;
cin >> t;
while(t--) {
solve();
}
return 0;
}
代码:
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define x first
#define y second
typedef pair<int,int>PII;
const int N = 2e5 + 10;
int w[N];
int t[N];
void solve() {
int n;
cin >> n;
int min1 = 1e7, min2 = 1e7;
for(int i = 1; i <= n; i++) {
cin >> w[i];
t[i] = w[i];
}
sort(t + 1, t + 1 + n);
min1 = t[1], min2 = t[2];
int ans = (min1 + 1 >> 1) + (min2 + 1 >> 1);
// 相邻
for(int i = 1; i + 1 <= n; i++) {
int t1 = w[i], t2 = w[i+1];
if(t1 < t2) swap(t1, t2);
if(t1 >= 2 * t2) ans = min(ans, t1 + 1 >> 1);
else ans = min(ans, (t1 + t2 + 2) / 3);
}
// 相隔
for(int i = 1; i + 2 <= n; i++) {
ans = min(ans, min(w[i], w[i + 2]) + (abs(w[i] - w[i + 2]) + 1 >> 1));
}
cout << ans << endl;
}
signed main() {
solve();
return 0;
}