- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
Chúng ta có N cặp. Mỗi cặp có hai số. Chúng ta phải tìm số K tối đa sao cho nếu chúng ta lấy bất kỳ tổ hợp J (1<=J<=K) nào từ N cặp đã cho, chúng ta có ít nhất J số khác nhau trong số tất cả các cặp J đã chọn này. Chúng ta có thể có nhiều hơn một cặp giống nhau.
Ví dụ, xét cặp (1,2)(1,2)(1,2)(7,8)(9,10) Với trường hợp này K = 2, vì với K > 2, nếu ta chọn ba cặp ( 1,2), ta chỉ có hai số khác nhau là 1 và 2.
Bắt đầu với một và kiểm tra mọi sự kết hợp có thể sẽ mất rất nhiều thời gian. Thuật toán hiệu quả để giải quyết vấn đề này là gì?
câu trả lời hay nhất
Tạo đồ thị có một đỉnh trên mỗi số và một cạnh trên mỗi cặp.
Nếu biểu đồ này là một chuỗi hoặc một cây, chúng ta có số "số" bằng số "cặp" cộng với một và sau khi loại bỏ bất kỳ số cạnh nào khỏi biểu đồ này, chúng ta sẽ không bao giờ có ít đỉnh hơn số cạnh .
Bây giờ hãy thêm một vòng lặp vào chuỗi/cây này. Số đỉnh và số cạnh bằng nhau. Sau khi loại bỏ bất kỳ số cạnh nào khỏi biểu đồ này, chúng ta không bao giờ có ít đỉnh hơn số cạnh.
Bây giờ hãy thêm bất kỳ số lượng thành phần bị ngắt kết nối nào, mỗi thành phần không được chứa nhiều hơn một vòng lặp. Một lần nữa, sau khi loại bỏ bất kỳ số cạnh nào, chúng ta không bao giờ có được số đỉnh ít hơn số cạnh.
Bây giờ hãy thêm vòng lặp thứ hai vào bất kỳ thành phần nào bị ngắt kết nối. Sau khi loại bỏ tất cả các thành phần khác. Chúng ta có nhiều cạnh hơn đỉnh (nhiều logarit hơn số).
Tất cả điều này dẫn đến kết luận rằng K+1 chính xác là số cạnh trong đồ thị con nhỏ nhất có thể, bao gồm hai chu trình và các chuỗi có thể nối các chu trình này.
Đối với mỗi thành phần được kết nối, hãy sử dụng thuật toán Floyd-Warshall để tìm chu trình ngắn nhất qua mỗi nút.
Sau đó, đối với mỗi cặp vòng lặp không chồng chéo (trong một thành phần), hãy sử dụng thuật toán Dijkstra để tìm đường đi ngắn nhất đến vòng lặp khác bắt đầu từ bất kỳ nút nào có ít nhất 3 cạnh trong một vòng lặp và tính tổng độ dài của cả hai vòng lặp; đường đi ngắn nhất nối chúng. Đối với mỗi cặp chu trình chồng lên nhau, chỉ cần đếm số cạnh của chúng.
Bây giờ hãy tìm độ dài tối thiểu của tất cả các đồ thị con này. và trừ 1.
Thuật toán trên tính toán K nếu có ít nhất một thành phần chu trình kép trong biểu đồ. Nếu không có thành phần nào như vậy thì K = N.
Về thuật toán - tìm số k tối đa sao cho với tất cả các kết hợp k cặp, chúng tôi có k phần tử riêng biệt trong mỗi kết hợp, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/10534241/
Thật khó để nói những gì đang được hỏi ở đây. Câu hỏi mơ hồ, mơ hồ, không đầy đủ, quá rộng hoặc hùng biện và không thể trả lời hợp lý ở dạng hiện tại. Để được trợ giúp làm rõ vấn đề này để bạn có thể mở lại, hãy truy cập trung tâm trợ giúp. Đã đóng
Chúng ta có thể nói rằng O(K + (NK)logK) tương đương với O(K + N logK) với 1 < = K <= N không? Câu trả lời hay nhất Câu trả lời ngắn gọn là chúng không tương đương, nó phụ thuộc vào giá trị của k. Nếu k bằng N thì độ phức tạp đầu tiên là O(
Tôi có giải pháp sau, nhưng tôi nghe từ những người bình luận khác rằng đó là O(N * K * K), không phải O(N * K) trong đó N là độ dài (tối đa) của danh sách K và K là số lượng danh sách . Ví dụ: cho các danh sách [1, 2, 3] và [4,
Tôi đang cố gắng hiểu sự khác biệt về ngữ nghĩa giữa các cấu trúc ngữ pháp này. câu trả lời hay nhất cho biểu thức cụ thể của bạn ((i
Đôi khi tôi sử dụng mảng 1D: A = np.array([1, 2, 3, 4]) hoặc mảng 2D (sử dụng scipy.io.wavfile để đọc tín hiệu đơn âm hoặc âm thanh nổi): A = np.array( [ [1, 2
Trong quá trình phân cụm tài liệu, như một bước tiền xử lý dữ liệu, trước tiên tôi áp dụng phân tách vectơ số ít để nhận được U, S và Vt. Sau đó, bằng cách chọn một số giá trị riêng thích hợp, tôi đã cắt bớt Vt, điều này giúp tôi hiểu rõ hơn về những gì tôi đọc được. Tài liệu hay - tài liệu liên quan ở đây Hiện tại tôi đang làm việc.
Tôi đang hỏi về thuật toán Top K. Tôi nghĩ O(n + k log n) sẽ nhanh hơn vì... ví dụ: nếu bạn cố chèn k = 300 và n = 100000000 chúng ta có thể thấy O(n + k log
Câu hỏi này liên quan chặt chẽ đến một câu hỏi khác R:sample(). . Tôi muốn tìm cách trong R để liệt kê tất cả các hoán vị của k số có tổng bằng k, trong đó mỗi số được chọn từ 0: k. Nếu k=7 thì có thể chọn từ 0,1,...,7
Tôi hiện đang đánh giá hệ thống gợi ý dựa trên phản hồi ngầm. Tôi hơi bối rối về các số liệu đánh giá cho các nhiệm vụ xếp hạng. Cụ thể, tôi muốn đánh giá bằng độ chính xác và thu hồi. Precision@k có ưu điểm là không yêu cầu
Tôi đang làm việc bằng Python và cần tìm một thuật toán để tạo ra tất cả các mảng k, k,..., k n chiều có thể có, mỗi mảng có một hàng 1 dọc theo trục. Vì vậy, hàm chấp nhận hai số - n và k và sẽ trả về một danh sách mảng chứa dọc theo
Chúng ta có N cặp. Mỗi cặp có hai số. Ta phải tìm số K lớn nhất sao cho nếu lấy J từ N cặp đã cho (1 2), nếu chọn ba cặp (1,2) thì ta chỉ có hai số khác nhau là 1 và 2. Bắt đầu bằng một Kiểm tra mọi khả năng
Tôi không hoàn toàn chắc chắn về giải pháp hiện tại của mình khi gặp vấn đề sau: Câu hỏi: Cho một đống tối đa n phần tử, được lưu trữ trong một mảng A, liệu có thể in tất cả các phần tử max-K trong O(K* log(K) ) ở giữa? Câu trả lời của tôi: Có, có,
Tôi hiểu: val vector: RDD[(String, Array[String])] = [("a", {v1,v2,..}),("b", {u1,u2,..})] Want để chuyển đổi thành: RDD[(St
Tôi có X số dương với chỉ số x_i. Mỗi x_i cần thuộc một trong K nhóm (trong đó K được xác định trước). Gọi S_j là tổng của tất cả x_i trong K_j. Tôi cần phân phối tất cả x_i sao cho phương sai của tất cả S_j được giảm thiểu.
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
Tôi đang nghiên cứu một thuật toán tìm số nguyên thủy và nhìn thấy câu lệnh sau, tôi không hiểu tại sao. while (k*k <= n) có tốt hơn while (k <= Math.sqrt(n)) vì lệnh gọi hàm không? Chức năng gọi sử dụng nhiều tài nguyên hơn. Thậm chí
Tôi muốn tìm cách nhanh nhất có thể để nhân hai ma trận bool nhỏ, trong đó nhỏ có nghĩa là 8x8, 9x9... 16x16. Quy trình này sẽ được sử dụng nhiều và do đó cần phải rất hiệu quả, vì vậy vui lòng không gợi ý rằng giải pháp đơn giản phải đủ nhanh. vì
Có cách nào thành ngữ để có được Bộ và Hàm cũng như có được chế độ xem trực tiếp trên Bản đồ không? (tức là Bản đồ được hỗ trợ bởi sự kết hợp giữa Bộ và Hàm, ví dụ: nếu một phần tử được thêm vào Bộ, thì mục tương ứng cũng có trong M
Câu hỏi này đã có câu trả lời ở đây: Bộ nhớ của biến cục bộ có thể được truy cập ngoài phạm vi của nó không? (20 câu trả lời) trả về địa chỉ
Cho một ma trận:- k = [1 2 3; 4 5 6; 7 8 NaN]; Nếu tôi muốn thay thế một số bằng 0, chẳng hạn như 2, tôi có thể sử dụng: k(k==2) =
Tôi là một lập trình viên xuất sắc, rất giỏi!