luyencode / comments

Server lưu trữ bình luận trên Luyện Code
https://luyencode.net
6 stars 3 forks source link

https://oj.luyencode.net/problem/PAINT #50

Open utterances-bot opened 3 years ago

utterances-bot commented 3 years ago

Chi tiết bài tập - Luyện Code Online

https://luyencode.net/problem/PAINT

ApokPhuoc commented 3 years ago

Bài này sao để AC ạ , em dùng hàm của python cx limt cay nhở 😭😭😭

thanh25122008 commented 2 years ago

ai có code C++ không cho mình xin với

Jeffreys38 commented 2 years ago

Bên máy mình acept hết mà qua đây lại bị runtime :(((

luuquybip commented 2 years ago

Đây là lời giải của mình đã TLE. Nếu bạn đã cố gắng mà chưa làm được thì có thể tham khảo lời giải của mình.

Xem code AC

```cpp #include using namespace std; int main() { int n; cin >> n; char a[1000005]; for (int i = 1; i <= 1000000; i++) { a[i] = 'a'; } for (int i = 1; i <= n; i++) { int t; cin >> t; if (t == 1) { char c; cin >> c; for (int j = 1; j <= 1000000; j++) { if (a[j] == 'a') { a[j] = c; break; } } } else { char x, y; cin >> x >> y; for (int j = 1; j <= 1000000; j++) { if (a[j] == x) { a[j] = y; } } } } for (int i = 1; i <= 1000000; i++) { if (a[i] != 'a') { cout << a[i]; } } return 0; } ```

KhaNguyen13 commented 2 years ago

Ai dùng code Python AC cho mình xem với, mình code Python test ok mà qua đây TLE cả =((

luuquybip commented 2 years ago

Đây là lời giải của mình đã AC. Nếu bạn đã cố gắng mà chưa làm được thì có thể tham khảo lời giải của mình.

Xem code AC

https://oj.luyencode.net/status/4e78ecdb23b07f4a83fb53dc0ebe6ef9?problem=PAINT

Letrungkien17092004 commented 1 year ago

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace LearnCS { class Task { public int taskType; public string x, y; public Task(int taskType, string x, string y = "") { this.taskType = taskType; this.x = x; this.y = y; } } class Room { public string color; public Room(string color = null) { this.color = color; }

    public override string ToString()
    {
        return this.color;
    }
}
internal class SonPhong
{

    int n;
    Task[] tasks;
    List<Room> rooms = new List<Room>();
    private void TaskOne(string colorX)
    {
        colorX = colorX.Trim();
        if (rooms.Count == 0)
        {
            rooms.Add(new Room(colorX));
        } else
        {
            int len = rooms.Count;
            bool flag = false;
            for (int i = 0; i < len; i++)
            {
                if (rooms[i].color == null)
                {
                    rooms[i].color = colorX;
                    flag = true;
                    break;
                }
            }
            if (flag == false) 
            {
                rooms.Add(new Room(colorX));
            }
        }
    }

    private void TaskTwo(string colorX, string colorY)
    {

        colorX = colorX.Trim();
        colorY = colorY.Trim();
        int len = rooms.Count;
        for (int i = 0; i < len; i++)
        {
            if (rooms[i].color == colorX && rooms[i].color != null)
            {
                rooms[i].color = colorY;
            }
        }
    }
    private void HandLeTasks()
    {
        int len = tasks.Length;
        for (int i = 0; i < len; i++)
        {
            if (tasks[i].taskType == 1)
            {
                TaskOne(tasks[i].x);
            } else
            {
                TaskTwo(tasks[i].x, tasks[i].y);
            }
        }
    }

    // like Main Method
    public void Run()
    {
        string[]  data = GetData();
        LoadTasks(data);
        HandLeTasks();
        ShowArray(rooms);

    }
    private void LoadTasks(string[] data) 
    {
        string[] dataAfterClean;

        for (int i = 0; i < n; i++)
        {
            dataAfterClean = data[i].Split(' ');
            if (dataAfterClean[0] == "1")
            {
                tasks[i] = new Task(
                    Convert.ToInt32(dataAfterClean[0]),
                    dataAfterClean[1]
                    );
            }
            else
            {
                tasks[i] = new Task(
                    Convert.ToInt32(dataAfterClean[0]),
                    dataAfterClean[1],
                    dataAfterClean[2]
                    );
            }
        }
    }
    private string[] GetData()
    {
        string[] rawData = File.ReadAllText("E:\\IT\\LearnCS\\LearnCS\\data.txt").Split('\n');
        n = rawData.Length;
        tasks = new Task[n];
        return rawData;
    }
    private void ShowArray(string[] array)
    {
        foreach (var item in array)
        {
            Console.Write($"item: {item}\n");
        }
    }

    private void ShowArray(Task[] array)
    {
        int len = array.Length;
        for (int i = 0; i < len; i++)
        {
            Console.WriteLine($"stt {i + 1}\n" +
                $"Type: {array[i].taskType}\nx: {array[i].x}\n" +
                $"y: {array[i].y}");
            Console.WriteLine("\n**********************");
        }
    }
    private void ShowArray(List<Room> array)
    {
        int len = array.Count;
        for (int i = 0; i < len; i++)
        {
            Console.WriteLine($"I: {i+1} | {array[i]}");
        }
    }
}

}

code C# ạ, mn chạy thì tạo một object sonPhong ở Main rồi chạy method Run của sonPhong nhé. nhớ sửa lại link đến tệp (mình bỏ dòng đầu tiên vì không cần thiết nên mn nghi theo như này vào tệp nhé: 1 c 1 b 1 a 1 c 1 d 2 a b 1 c 1 a 1 b 2 b d c ơm mn nhiều ae có góp ý để cải thiện tốc độ của bài này thì ib mình nhé

m4rcus06 commented 1 year ago

bài này cài ctdl