Dividir el equipo
Enumere todas las situaciones de agrupación, encuentre el valor mínimo de la diferencia entre el tiempo total de espera de los dos grupos antes y después de la batalla, use el prefijo y la matriz para optimizar el cálculo de la suma
#include <iostream>
#include <cmath>
using namespace std;
const int N = 1e5+10;
int n, a[N], s[N], sum, minn = 1e9;;
int main(){
cin >> n;
for (int i = 1; i <= n; i ++) {
cin >> a[i];
s[i] = s[i-1] + a[i];
sum += a[i];
}
for (int i = 1; i <= n-1; i ++) {
minn = min(minn, abs(sum - s[i] - s[i]));
}
cout << minn;
return 0;
}
Cantor
Gire el reloj Cantor 45 ° para obtener la siguiente figura piramidal, luego observe la figura y escriba el código
(1, 1) (2, 1) (1, 2) (3, 1) (2, 2) (1, 3) (4, 1) (3, 2) (2, 3) (1, 4) (5, 1) (4, 2) (3, 3) (2, 4) (1, 5) \ begin ( reunidos) (1,1) \\ (2,1) \ (1,2) \\ (3,1) \ (2,2) \ (1,3) \\ (4,1) \ (3, 2) \ (2,3) \ (1,4) \\ (5,1) \ (4,2) \ (3,3) \ (2,4) \ (1,5) \\ \ end ( reunido)( 1 ,1 )( 2 ,1 ) ( 1 , 2 )( 3 ,1 ) ( 2 , 2 ) ( 1 , 3 )( 4 ,1 ) ( 3 , 2 ) ( 2 , 3 ) ( 1 , 4 )( 5 ,1 ) ( 4 , 2 ) ( 3 , 3 ) ( 2 , 4 ) ( 1 , 5 )
#include <iostream>
using namespace std;
int main(){
int a, b;
cin >> a >> b;
int t = a+b-2, sum = 0;
for (int i = 1; i <= t; i ++) {
sum += i;
}
if (t%2 == 0) sum = sum + b;
else sum = sum + a;
cout << sum ;
return 0;
}
Buscar número de página
#include <iostream>
using namespace std;
int a, k, cnt;
int main(){
cin >> a >> k;
int i = 0;
while (true) {
i ++;
int t = i;
while (t) {
if (t%10 == a) {
cnt ++;
if (cnt == k) {
cout << i << endl;
return 0;
}
}
t /= 10;
}
}
return 0;
}
Juego triple
#include <iostream>
#include <cmath>
using namespace std;
int n, x;
int a, b, c;
int main(){
cin >> n;
for (int i = 1; i <= n; i ++) {
cin >> x;
if (x%3==0) a++;
if (x%3==1) b++;
if (x%3==2) c++;
}
cout << min(b,c) + a/2;
return 0;
}
Secuencia de reducción
#include <iostream>
#include <cstdio>
#include <map>
using namespace std;
const int N = 1e5+10;
int n, k, x, p[N], ans[N];
int main() {
cin >> n >> k;
for (int i = 1; i <= n; i ++) {
cin >> x;
p[x] = i;
}
for (int i = 1; i <= n; i ++) {
int t = p[i];
for (int j = 1; j < k; j ++) {
t = p[t];
}
ans[t] = i;
}
for (int i = 1; i <= n; i ++) {
cout << ans[i] << ' ';
}
return 0;
}