thảo luận [Học Tập] Topic thuật toán

  • Người tạo chủ đề Người tạo chủ đề unknowpc90
  • Ngày bắt đầu Ngày bắt đầu
Xin hướng dẫn bài này,
https://codeforces.com/gym/101933/problem/K
tóm tắt: bài này tìm số cách tô màu một cây n node bằng k màu, sao cho 2 node nằm cùng trên 1 cạnh khác màu.
đi từ leaf node lên, với mỗi node denote 1 vector a_1,a_2, ... , a_k với a_i là số cách tô màu subtree với màu ở roots là i.
Bài toán đưa về biết j vector ở child, tính vector ở parent.
Với limit 2500 làm n^2 được.
Tính đơn giản bằng Inclusion-exclusion principal thôi.
K biết thì gợi ý tiếp ;) ;)
 
đi từ leaf node lên, với mỗi node denote 1 vector a_1,a_2, ... , a_k với a_i là số cách tô màu subtree với màu ở roots là i.
Bài toán đưa về biết j vector ở child, tính vector ở parent.
Với limit 2500 làm n^2 được.
Tính đơn giản bằng Inclusion-exclusion principal thôi.
K biết thì gợi ý tiếp ;) ;)
giải thích kỹ với fen, tui cũng đọc giải solution 2 hình như cũng như ý fen mà ko hiểu lắm
kcolors.jpg
 

Tệp đính kèm

  • 1632813774693.png
    1632813774693.png
    1 MB · Lượt xem: 59
  • 1632813774693.png
    1632813774693.png
    1 MB · Lượt xem: 70
Má cái bài này sao em bị bí ý tưởng luôn mấy bác. Giúp em với ạ
1632827102496.png

Lưu ý: Không theo thứ tự.
 

Tệp đính kèm

  • 1632825886833.png
    1632825886833.png
    67,7 KB · Lượt xem: 89
  • 1632827092516.png
    1632827092516.png
    68,6 KB · Lượt xem: 81
Sửa lần cuối:
Nay vừa vào làm thử 1 bài LeetCode, đề cũng đơn giản nhưng có giới hạn bộ nhớ nên cũng khá khoai. Các bác hứng thú có thể vào thảo luận cho vui :D

41. First Missing Positive

Given an unsorted integer array nums, return the smallest missing positive integer.
You must implement an algorithm that runs in O(n) time and uses constant extra space.

Example 1:

Input:
nums = [1,2,0]
Output: 3

Example 2:

Input:
nums = [3,4,-1,1]
Output: 2

Example 3:

Input:
nums = [7,8,9,11,12]
Output: 1
 
Nay vừa vào làm thử 1 bài LeetCode, đề cũng đơn giản nhưng có giới hạn bộ nhớ nên cũng khá khoai. Các bác hứng thú có thể vào thảo luận cho vui :D
Nhìn đề tưởng dễ ăn lên leetcode mới phát hiện ra bài này hardcore để thử giải xem sao :byebye:
 
n.logn thì dễ mà o(n) thì sao nhỉ
C++:
class Solution {
public:
    int firstMissingPositive(vector<int>& a) {
        sort(a.begin(),a.end());
        int n=a.size();
        int min=1;
        for(int i=0;i<n;i++){
             if(a[i]<0) a[i]=0;
             if(a[i]==min) min++;
        }
        return min;
    }
};
 

Thống kê chủ đề

Ngày tạo
unknowpc90,
Người trả lời cuối
Spaghetti Code,
Trả lời
1.460
Lượt xem
154.113
Quay lại
Lên đầu trang