The good, the bad and the ugly
This commit is contained in:
parent
8a9d6282fc
commit
c1008fe392
|
@ -40,8 +40,8 @@ Phiên bản các trình dịch sử dụng test:
|
|||
| Java | OpenJDK 11+ |
|
||||
| Lua | Lua 5.1+ |
|
||||
| Pascal | Free Pascal 2.6.4+ |
|
||||
| Raku | Rakudo 2018.12+ |
|
||||
| Python | Python 3.5+ |
|
||||
| Raku | Rakudo 2018.12+ |
|
||||
| Scheme | GNU Guile 2.0.11+ |
|
||||
|
||||
SICP không chỉ dùng Guile để chạy Scheme mà còn sử dụng Racket (`#lang sicp`)
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#define SIZE (100001 * sizeof(int))
|
||||
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
|
||||
|
||||
int main()
|
||||
{
|
||||
size_t t;
|
||||
int *a = malloc(SIZE), *b = malloc(SIZE), c;
|
||||
*a = *b = 0;
|
||||
scanf("%zu", &t);
|
||||
|
||||
while (t--) {
|
||||
size_t lena = 1, lenb = 1;
|
||||
for (scanf(" "); (c = getchar()) > 42; a[lena++] = c - 48);
|
||||
for (scanf(" "); (c = getchar()) > 42; b[lenb++] = c - 48);
|
||||
|
||||
size_t len = (lena > lenb) ? lena : lenb;
|
||||
for (int *n = a + len, *e = a + lena, *p = b + lenb;
|
||||
n-- > a; *n = (e-- > a && *e) << 1 | (p-- > b && *p));
|
||||
|
||||
int tmp = 0;
|
||||
size_t result = 0, sum = 0;
|
||||
for (int *n = a + len; n-- > a;)
|
||||
switch (*n | tmp) {
|
||||
case 1:
|
||||
result = MAX(result, 1);
|
||||
break;
|
||||
case 3:
|
||||
tmp = 4;
|
||||
break;
|
||||
case 4:
|
||||
result = MAX(result, sum + 2);
|
||||
sum = tmp = 0;
|
||||
break;
|
||||
case 5:
|
||||
case 6:
|
||||
sum++;
|
||||
break;
|
||||
case 7:
|
||||
if (n[1] < 3) {
|
||||
result = MAX(result, sum + 2);
|
||||
sum = 0;
|
||||
}
|
||||
}
|
||||
printf("%zu\n", result);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
#!/usr/bin/env python3
|
||||
for t in range(int(input())):
|
||||
e, p = input(), input()
|
||||
a, b = int(e, 2), int(p, 2)
|
||||
count = 0
|
||||
while b:
|
||||
a, b = a^b, (a&b)<<1
|
||||
count += 1
|
||||
print(count)
|
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env python3
|
||||
from functools import reduce
|
||||
from itertools import accumulate
|
||||
from typing import Iterable, Iterator
|
||||
|
||||
MOD = 1_000_000_007
|
||||
LENGTH = 100_001
|
||||
|
||||
|
||||
def add(x: int, y: int) -> int: return (x + y) % MOD
|
||||
def mul(x: int, y: int) -> int: return x * y % MOD
|
||||
|
||||
|
||||
def khalid(iterable: Iterable[int]) -> Iterator[int]:
|
||||
yield 1
|
||||
yield from iterable
|
||||
|
||||
|
||||
modinv = [pow(i, MOD-2, MOD) for i in range(1, LENGTH)]
|
||||
facinv = tuple(khalid(accumulate(modinv, mul)))
|
||||
fac = tuple(khalid(accumulate(range(1, LENGTH), mul)))
|
||||
|
||||
for t in range(int(input())):
|
||||
n = int(input())
|
||||
a, b = (min(b.count(c) for c in '01')
|
||||
for b in (input() for i in range(2)))
|
||||
print(reduce(add, (mul(mul(fac[n], facinv[i]), facinv[n - i])
|
||||
for i in range(abs(a-b), a+b+1, 2))))
|
|
@ -0,0 +1,22 @@
|
|||
#include <stdio.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
char t;
|
||||
size_t n, tmp, zeros, twos;
|
||||
|
||||
scanf("%hhd", &t);
|
||||
while (t--) {
|
||||
scanf("%zu", &n);
|
||||
for (size_t i = zeros = twos = 0; i < n; ++i) {
|
||||
scanf("%zu", &tmp);
|
||||
if (!tmp)
|
||||
zeros++;
|
||||
else if (tmp == 2)
|
||||
twos++;
|
||||
}
|
||||
printf("%zu\n", zeros * (zeros - 1) + twos * (twos - 1) >> 1);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
#include <stdio.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
int t, n;
|
||||
|
||||
scanf("%d", &t);
|
||||
while (t--) {
|
||||
int k = 0, hope[26] = {0};
|
||||
scanf("%d ", &n);
|
||||
for (int i = 0; i < n; ++i) {
|
||||
int c = getchar() - 'a';
|
||||
if (hope[c] - i > k)
|
||||
k = hope[c] - i;
|
||||
hope[c] = n + i;
|
||||
}
|
||||
printf("%d\n", k);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
#!/usr/bin/env python3
|
||||
print(*(sum(dict(sorted((int(p), p in '12345678' and int(s))
|
||||
for p, s in (input().split()
|
||||
for i in range(int(input()))))).values())
|
||||
for t in range(int(input()))), sep='\n')
|
Loading…
Reference in New Issue