A
题目传送门
题目翻译:
有一个字符串,看看A
多还是T
多,假如一样的话,输出先到达最多的,例如ATTAAT
,输出T
,因为T
最先达到3个。
题目思路:
遍历就行了。
题目代码:
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define all(x) x.begin(), x.end()
#define pii pair<int,int>
const int mod = 998244353, N = 2005;
int main() {
ios::sync_with_stdio(false), cin.tie(0);
int n;
string s;
cin >> n >> s;
int cnta = 0, cntb = 0;
for (char c : s) {
if (c == 'T') {
cnta++;
} else {
cntb++;
}
}
if (cnta > cntb || (cnta == cntb && s.back() == 'A')) {
cout << "T\n";
} else {
cout << "A\n";
}
}
B
题目传送门
题目翻译:
输入一个长度为
N
N
N的序列。
把这个序列改成每相邻两个数绝对值的差是
1
1
1。
例如,1 4 5 1 2 3
,改成1 2 3 4 5 4 3 2 1 2 3
。
题目思路:
for循环里套用while循环,一直循环到绝对值为一。
题目代码:
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <atcoder/modint>
using namespace std;
using i32 = int;
using u32 = unsigned int;
using i64 = long long;
using u64 = unsigned long long;
#define rep(i,n) for(int i=0; i<(int)(n); i++)
const i64 INF = 1001001001001001001;
using Modint = atcoder::static_modint<998244353>;
int main(){
int N; cin >> N;
vector<int> A(N); rep(i,N) cin >> A[i];
cout << A[0];
int p = A[0];
for(int i=1; i<N; i++){
while(p < A[i]){
cout << ' ' << ++p;
}
while(p > A[i]){
cout << ' ' << --p;
}
}
return 0;
}
struct ios_do_not_sync{
ios_do_not_sync(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
}
} ios_do_not_sync_instance;
C
题目传送门
题目翻译:
在AtCoder
纸牌有限公司中,单人纸牌游戏很受欢迎。游戏中的每张纸牌上都有一个小写英文字母或符号@
。每种纸牌都有大量的纸牌。游戏进行如下。将相同数量的卡片排列成两行。将每张牌换成@
,换成以下牌之一:a
、t
、c
、o
、d
、e
、r
。如果两排牌重合,你就赢了。否则,你就输了。为了赢得这场比赛,你可以偷偷作弊。在第
1
1
1步之后,您可以随时自由地重新排列一行中的卡片。您将得到两个字符串S
和T
,表示步骤
1
1
1之后的两行。确定是否有可能在允许作弊的情况下获胜。
题目思路:
看看里面的@
,换成输入缺的东西,在康康一不一样(不在意顺序)。
题目代码:
#include <bits/stdc++.h>
using i64 = long long;
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
std::string S, T;
std::cin >> S >> T;
std::map<char, int> cs, ct;
for (auto c : S) {
cs[c]++;
}
for (auto c : T) {
ct[c]++;
}
std::string a = "atcoder";
int extra = 0;
for (int c = 'a'; c <= 'z'; c++) {
if (cs[c] != ct[c]) {
if (a.find(c) == -1) {
std::cout << "No\n";
return 0;
}
if (cs[c] < ct[c]) {
extra += ct[c] - cs[c];
}
}
}
if (extra <= cs['@']) {
std::cout << "Yes\n";
} else {
std::cout << "No\n";
}
return 0;
}
谢谢观看