Ôn tập cuối năm

Hồ Nguyên
Xem chi tiết
Bảo Nguyễn
Xem chi tiết
Thanh Bình
Xem chi tiết
Nguyễn Hoàng Duy
27 tháng 6 2023 lúc 17:20
#include<bits/stdc++.h>using namespace std;string s;long long c[1000001],w[1000001];int main() {getline(cin,s);long long n = s.size();if(s[n-1] == 'a' || s[n-1] == 'e' || s[n-1] == 'i' || s[n-1] == 'o' || s[n-1] == 'u') c[n-1] = 0;else c[n-1] = 1;for(int i = n-2;i >= 0;i--) {if(s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' || s[i] == 'u') {c[i] = c[i+1];}else {c[i] = c[i+1]+1;}}if(s[n-1] == 'a' || s[n-1] == 'e' || s[n-1] == 'i' || s[n-1] == 'o' || s[n-1] == 'u') w[n-1] = 1;else w[n-1] = 0;for(int i = n - 2; i >= 0;i--) {if(s[i] != 'a'&s[i] != 'e'& s[i] != 'i' &s[i] != 'o'&s[i] != 'u') {w[i] = w[i+1];}else w[i] = w[i+1]+1;}long long dem = 0;for(int i = 0;i < s.size();i++) {if(s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' || s[i] == 'u') {dem = dem + c[i];}else {dem = dem + w[i];}}cout << dem;return 0;}    
Bình luận (2)
Thanh Bình
Xem chi tiết
Nguyễn Hoàng Duy
27 tháng 6 2023 lúc 16:57

def exchange(n, memo):
    if n in memo:
        return memo[n]
    if n == 0:
        return 0
    max_exchange = max(n, exchange(n // 2, memo) + exchange(n // 3, memo) + exchange(n // 4, memo))
    memo[n] = max_exchange
    return max_exchange

while True:
    try:
        n = int(input())
        memo = {}
        print(exchange(n, memo))
    except:
        break
    

Bình luận (0)
Thanh Bình
Xem chi tiết
Gia Huy
27 tháng 6 2023 lúc 17:40

```python
n = int(input())
p = list(map(int, input().split()))

pos = [0] * n
for i in range(n):
pos[p[i]-1] = i

count = 0
for i in range(n):
if pos[i] != i:
j = pos[i]
pos[i], pos[j] = pos[j], pos[i]
count += 1

print(count)
```

Bình luận (0)
Thanh Bình
27 tháng 6 2023 lúc 16:46

Pascal, c++ hay python gì cũng được

Bình luận (0)
Thanh Bình
Xem chi tiết
Nguyễn Hoàng Duy
27 tháng 6 2023 lúc 10:08

#include <bits/stdc++.h>
#define FOR(i, l, r) for(int i = l; i <= r; i++)
#define REP(i, l, r) for(int i = l; i < r; i++)
using namespace std;
int n;
double a[100005];
long long res, x, y;
int main()
{
cin >> n;
FOR(i, 1, n) {
cin >> a[i];
}
a[0] = a[n+1] = 2e9;
FOR(i, 1, n) if (a[i] < a[i-1] && a[i] < a[i+1]) res++;
cout << res;
}

Bình luận (0)
Nguyễn Hoàng Duy
27 tháng 6 2023 lúc 9:44

C++ hay python vậy ạ

Bình luận (1)
Thanh Bình
Xem chi tiết
Nguyễn Hoàng Duy
26 tháng 6 2023 lúc 10:56

n = int(input())
a = list(map(int, input().split()))

dp = [a[0]] 

for i in range(1, n):
     left, right = 0, len(dp) - 1
    pos = len(dp)
    while left <= right:
        mid = (left + right) // 2
        if dp[mid] < a[i]:
            left = mid + 1
        else:
            pos = mid
            right = mid - 1
        if pos == len(dp):
        dp.append(a[i])
      else:
        dp[pos] = a[i]

print(len(dp))  
    

Bình luận (0)
Huyên Lê Thị Mỹ
Xem chi tiết
Huyên Lê Thị Mỹ
Xem chi tiết
Huyên Lê Thị Mỹ
10 tháng 5 2023 lúc 20:30

chỉ em câu này dới ạ em cảm ơm ạ

Bình luận (0)
Huyên Lê Thị Mỹ
Xem chi tiết