目录
A. Creating Words
题意:交换两个数组的第一个字符
AC代码:
#include <bits/stdc++.h>
#define int long long
#define PII std::pair<int,int>
signed main() {
int t;
std::cin >> t;
while (t--) {
std::string s1, s2;
std::cin >> s1 >> s2;
char ch = s1[0];
s1[0] = s2[0];
s2[0] = ch;
std::cout << s1 << " " << s2 << "\n";
}
return 0;
}
B. Maximum Multiple Sum
题意:给一个数n,2<=x<=n,x+2x+3x+...+kx,其中kx<=n;求总和最大的数对应的x
这道题数据范围很小,暴力就行
AC代码:
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cmath>
#define int long long
#define PII std::pair<int,int>
signed main()
{
int t;
std::cin >> t;
while (t--)
{
int n;
std::cin >> n;
int maxx = -999;
int maxi ;
for (int i = 2;i <= n;i++)
{
int num = 0;
int x = i;
while (x <= n)
{
num += x;
x += i;
}
//std::cout << x << "\n";
if (num > maxx)
{
maxx = num;
maxi = i;
}
}
std::cout << maxi << "\n";
}
return 0;
}
D. Manhattan Circle
题意:求#围城的图的中心
思路:分别求出边界点的,y
AC代码:
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <vector>
#define int long long
#define PII std::pair<int,int>
const int N = 2e5 + 10;
//char g[N][N];
signed main()
{
int t;
std::cin >> t;
while (t--)
{
int n, m;
std::cin >> n >> m;
//std::vector<std::vector<int>> g;
std::vector<std::vector<char> >g(n + 10, std::vector<char>(m + 10,0));
//char g[n+10][m+10];
int zuox = 99999999, youx =0, shangy = 99999999, xiay = 0;
for (int i = 1;i <= n;i++)
{
for (int j = 1;j <= m;j++)
{
std::cin >> g[i][j];
if (g[i][j] == '#')
{
zuox = std::min(zuox, i);
youx = std::max(youx, i);
shangy = std::min(shangy, j);
xiay = std::max(xiay, j);
}
}
}
//int zuox=99999999, youx=0, shangy=99999999, xiay=0;
/* for (int i = 1;i <= n;i++)
{
for (int j = 1;j <= m;j++)
{
if (g[i][j] == '#')
{
zuox = std::min(zuox, i);
youx = std::max(youx, i);
shangy = std::min(shangy, j);
xiay = std::max(xiay, j);
}
}
}
*/
std::cout << (zuox + youx) / 2 << " " << (shangy + xiay) / 2 << "\n";
}
return 0;
}