B、Circle
题目描述
现在我们要把1\ldots n1…n这n个数字首尾连接组成一个环,使得相邻元素互质的对数尽可能多。请输出最大对数。
输入描述:
一行一个整数n(1≤ n≤ 1000)。
输出描述:
一行一个整数表示答案。
解题思路
互质对数最多,那么相邻的数字直接1 2 3 4 ……排列下去就行了把,输出n就行了。
print(int(input()))
D、绝地求生(pubg)
问题描述给出T组数据,每行输入a,b两个long long范围内的整数,求他们的最小公倍数
坑点就是会爆掉long long,要么__int128,或者用python。或者用a//gcd(a,b)*b都行。
import math T = int(input()) for _ in range(T): a,b = map(int,input().split()) ans = a//math.gcd(a,b)*b print('Case {}: {}'.format(_ + 1, ans))
E、「水」悠悠碧波
题目描述
帕秋莉掌握了一种水属性魔法
这种魔法可以净化黑暗
帕秋莉发现对于一个黑暗的咒语s,可以使用这个水元素魔法净化它,净化的咒语是一个最长的字符串t,t满足以下条件:
它是s的前缀
它是s的后缀
除前缀和后缀外,它还在s中出现过至少一次
既然你都学会了,那么净化的工作就交给你了!
输入描述:
一行字符串 s ,代表黑暗咒语
输出描述:
一个字符串 t ,表示满足条件的最长净化咒语
解题思路
这……就很离谱。,直接翻译就行了用上C++,string类里面的函数就能快乐AC了
#include <bits/stdc++.h> using namespace std; string a, b; int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> a; int n = a.size(); for (int i = 1; i <= n / 3; ++i) { string s1 = a.substr(0, i); string s2 = a.substr(n - i, i); string s3 = a.substr(i, n - 2 * i); if (s1 == s2 && s3.find(s1) != s3.npos) //.npos是一个string类宏常数等于没找到的意思 b = s1; } cout << b << endl; return 0; }