K
Khách

Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.

Có m x n người đứng xếp thành 1 hình chữ nhật m x n để được Kanna ban phúc. Kanna rất đáng yêu và cũng rất rảnh nên đi ban phúc cho mọi người nên mỗi lần Kanna sẽ ở một ô và ban phúc tứ phía trên dưới trái phải cho mọi người nhưng mà kiểu có một số thằng không được ban phúc nên buồn quá sinh ra ảo tưởng mình được ban phúc ( cũng có thể không có ). Kanna sẽ ban phúc theo hình cục ***** như bên dưới, đại loại mỗi lần hạ phàm Kanna sẽ bỏ thằng ở ô mà Kanna hạ phàm vào mồm rồi tiêu hóa, sau khi ban phúc xong thì ***** lại ra nó ném lại chỗ cũ nên nó không được ban phúc Tuy nhiên thì một thằng cũng có thể được ban phúc nhiều lần thì ờ, tùy, thôi kệ. Nhập bảng m x n dạng 0 , 1 thể hiện cho người ở ô đang nghĩ mình không được kanna ban phúc và 1 là cho thằng nghĩ mình được kanna ban phúc ( trong đó có cả những thằng ảo tưởng). Kanna muốn biết những thằng nào ảo tưởng để bỏ nó vào mồm ăn In ra bảng mxn ; số 6 là thằng ko ảo tưởng mình được ban phúc, số 9 là thằng ảo tưởng ( hiển nhiên những thằng nghĩ mình ko được ban phúc không phải thằng ảo tưởng ). ví dụ 3 3 1 0 1 1 1 1 1 1 1 thì đáp án là 9 6 9 6 6 6 6 6 6 <3
0
25 tháng 12 2020

Em viết lại ý tưởng:

- Ta lập một hàm xét xem một số nguyên N có phải là SNT không. 

+ nếu N <= 1 thì hiển nhiên không phải

+ nếu N >= 2: ta xét số dư của N cho các số từ 2 đến phần nguyên của căn N

* nếu N chia hết cho bất kỳ số nào trong khoảng [2; phần nguyên căn N] thì N không là SNT, ngược lại N là SNT.

- Áp dụng hàm đó vào dãy a(N), cho biến dem <-- 0;

+ xét từ a[1] trở đi đến a[n], nếu a[i] là SNT thì dem <-- dem+1. Vòng lặp thực hiện đến khi i = N.

- Thông báo giá trị của dem hoặc không có snt trong dãy nếu dem = 0

 Dãy con của một dãy là dãy có thể đạt được bằng cách xoá đi một số phần tử trong dãy ban đầu. Dãy rỗng và dãy ban đầu cũng là dãy con của dãy ban đầu. Bài toán tìm một dãy con tăng dài nhất trong một tập các phần tử là tìm một dãy con của dãy ban đầu sao cho trong dãy con này phần tử đứng sau lớn hơn hẵn phần tử đứng trước. Dãy con này không cần thiết phải liền kề, hoặc là duy nhất.     Bài toán dãy...
Đọc tiếp

 Dãy con của một dãy là dãy có thể đạt được bằng cách xoá đi một số phần tử trong dãy ban đầu. Dãy rỗng và dãy ban đầu cũng là dãy con của dãy ban đầu. Bài toán tìm một dãy con tăng dài nhất trong một tập các phần tử là tìm một dãy con của dãy ban đầu sao cho trong dãy con này phần tử đứng sau lớn hơn hẵn phần tử đứng trước. Dãy con này không cần thiết phải liền kề, hoặc là duy nhất.

     Bài toán dãy con tăng dài nhất được áp dụng rộng rãi ở nhiều lĩnh vực: Toán học (thuật toán, lý thuyết ma trận, lý thuyết đại diện) hay Vật Lý. Trong bài tập này nhiệm vụ của bạn cần thực hiện là viết chương trình nhận đầu vào là một dãy số nguyên có N phần tử A1, A2, ..., An, tìm dãy con tăng dài nhất của dãy đã cho.

Dữ liệu nhập:

  - Dòng đầu tiên là số nguyên dương N (1 ≤ N ≤ 5.000)

  - Dòng thứ hai chứa N số nguyên thuộc dãy A. (|Ai| ≤ 109 Với i=1..N)

Kết quả:

  - Ghi ra một số nguyên là độ dài dãy con tăng dài nhất tìm được.

Ví dụ

input

5
1 1 3 4 1

output

3                                                                         

 Giúp ạ

1
26 tháng 6 2023

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))  
    

10 tháng 1 2022

Bạn @Lê Ngọc Diệp mình chẳng làm gì sai cả nên đừng có nói thế

10 tháng 1 2022

báo cáo

Ys và NN đang chơi 1 trò chơi có tên gọi là TowerDiv. Trò chơi này có luật như sau Ban đầu sẽ có N tòa tháp, mỗi tòa tháp ban đầu đều có độ cao là M Tại mỗi lượt chơi luân phiên, người chơi có thể chia đều 1 tòa tháp bất kỳ trong N tòa tháp thành các phần có chiều cao là nguyên dương bằng nhau (ít nhất chia ra làm 2 phần trở lên), Người chơi phải lấy ra tất cả các phần phía trên, chỉ chừa lại duy nhất 1 phần...
Đọc tiếp

YsNN đang chơi 1 trò chơi có tên gọi là TowerDiv. Trò chơi này có luật như sau

Ban đầu sẽ có N tòa tháp, mỗi tòa tháp ban đầu đều có độ cao là M

Tại mỗi lượt chơi luân phiên, người chơi có thể chia đều 1 tòa tháp bất kỳ trong N tòa tháp thành các phần có chiều cao là nguyên dương bằng nhau (ít nhất chia ra làm 2 phần trở lên), Người chơi phải lấy ra tất cả các phần phía trên, chỉ chừa lại duy nhất 1 phần ở dưới đáy, lúc này chiều cao của tòa tháp sẽ giảm đi 1 lượng đúng với tổng chiều cao của số phần đã lấy ra.

Ví dụ, chiều cao hiện tại của tòa tháp được Ys chọn đang là 6, Ys có thể chia tòa tháp làm 3 phần, mỗi phần có kích thước là 2, Theo quy định, Ys phải lấy đi 2 phần trên cùng và chỉ giữ lại 1 phần dưới đáy. Vì vậy chiều cao của tòa tháp hiện tại sẽ còn là 2.

Trò chơi chỉ kết thúc khi có 1 người không thể thực hiện được bước ở trên như đã quy định, và người đó sẽ thua.

Vì Ys muốn nhường NN nên để cho NN đi trước. Giả sử 2 người đều chơi tối ưu, hãy xác định người thắng cuộc.

Input:

- Dòng đầu tiên chứa 1 số T là số bộ test (T<=100)

- T dòng tiếp theo, mỗi dòng chứa lần lượt 2 số N và M (N, M<=106)

Output:

- Tương ứng mỗi bộ test, in ra 1 nếu NN thắng, in ra 2 nếu Ys thắng.

Ví dụ

Input:

2

2 2

1 4

Output:

2

1

Giải thích:

Ở test 1, n=2,m=2

- Lượt đầu tiên, NN có thể chọn 1 trong 2 tòa tháp và chia nó ra làm 2 và giữ lại phần đáy.

Đương nhiên, dù chọn tòa tháp nào thì cũng sẽ còn lại 1 tòa tháp có chiều cao là 2.

Lúc này chiều cao 2 tòa tháp lần lượt sẽ là: 1 2

- Lượt tiếp theo, Ys chỉ cần chia tòa tháp còn lại có chiều cao 2 đó ra làm 2 và giữ lại phần đáy.

Lúc này chiều cao của 2 tòa tháp là : 1 1

- Lượt thứ 3, NN không thể chia được tòa tháp nào bởi vì cả 2 đều đã bằng 1.

Vì vậy người chiến thắng là Ys.

2
24 tháng 2 2020

vẫn ko hiểu đề lắm........

16 tháng 12 2020

write('Nhap n: ');readln(n);

str(n,s);

d:=length(s);

if s[d-1]+s[d]='68' then writeln('day la bien so dep')

else writeln('day khong phai bien so dep');