A - Not Overflow
题意: 给定一个整数N。如果N在-231和231-1(包括边界)之间,打印"Yes";否则,打印"No"。
思路: 直接输出即可
AC代码
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 110, INF = 0x3f3f3f3f, mod = 998244353;
LL n;
int main()
{
cin >> n;
if (n >= -2147483648 && n < 2147483648) cout << "Yes" << endl;
else cout << "No" << endl;
}
B - Matrix Transposition
题意:给定一个H × W的矩阵A。
A中从上到下的第i行和从左到右的第j列的元素为Ai,j。
令B为一个W × H的矩阵,B中从上到下的第i行和从左到右的第j列的元素等于Aj,i。
换句话说,B是A的转置。
打印B矩阵。
思路:有点线性代数的味道了0.0,就是行和列交换一下位置即可
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 100010, INF = 0x3f3f3f3f, mod = 998244353;
vector<int> G[N];
int main()
{
int n, m;
cin >> n >> m;
for (int i = 1; i <= n; i++)
{
G[i].push_back(0);
for (int j = 1; j <= m; j++)
{
int a;
cin >> a;
G[i].push_back(a);
}
}
for (int i = 1; i <= m; i++)
{
for (int j = 1; j <= n; j++)
cout << G[j][i] << " ";
cout << endl;
}
return 0;
}
C - kasaka
题意: 给定一个由小写英文字母组成的字符串S。判断在S的开头添加若干个’a’(可能为零)是否可以使其成为回文字符串。这里,对于长度为N的字符串A=A1A2…AN,当对于所有1≤i≤N都有Ai=AN+1−i时,称其为回文字符串。
思路: 其实就是判断后导a的数量要大于当前的前导a
AC代码
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 100010, INF = 0x3f3f3f3f, mod = 998244353;
int main()
{
string str;
cin >> str;
LL x = 0;
while (str.size() > 0 && str.back() == 'a')
{
str.pop_back();
x ++;
}
LL y = 0;
reverse(str.begin(), str.end());
while (str.size() > 0 && str.back() == 'a')
{
str.pop_back();
y ++;
}
string res = str;
reverse(res.begin(), res.end());
if (res == str && x >= y) cout << "Yes" << endl;
else cout << "No" << endl;
return 0;
}