打印栅栏
#include
using namespace std;
int main() {
int n, k;
cin >> n >> k;
for (int i = 1; i <= n; i ++) {
cout << '+';
for (int j = 1; j <= k; j ++) {
cout << '-';
}
}
cout << '+';
return 0;
}
合成游戏
#include
#include
using namespace std;
int main() {
long long n, x, sum = 0;
cin >> n;
for (int i = 1; i <= n; i ++) {
cin >> x;
sum += x;
}
long long ans = 1;
while (ans <= sum) {
ans *= 2;
}
cout << ans / 2;
return 0;
}
循环节的判定
#include
using namespace std;
int main() {
string s, a;
cin >> s >> a;
int t = s.size()/a.size();
string b = "";
for (int i = 1; i <= t; i ++) {
b += a;
}
if (s == b) cout << "Yes";
else cout << "No";
return 0;
}
切香肠
#include
using namespace std;
int f(int n, int k) {
if (n%k == 0) return 0;
if (k%n == 0) return (k/n-1) * n;
else return k/n*n + f(n%k, k%n);
}
int main() {
int n, k;
cin >> n >> k;
cout << f(n, k);
return 0;
}
自修教室
#include
using namespace std;
const int N = 1e6 + 1;
int n, a[N], sum[N];
int main() {
cin >> n;
while (n --) {
int s, t;
cin >> s >> t;
a[s] += 1;
a[t+1] -= 1;
}
int maxx = 0;
for (int i = 1; i <= 1e6; i ++) {
sum[i] = sum[i-1] + a[i];
maxx = max(maxx, sum[i]);
}
cout << maxx;
return 0;
}