---
# System prepended metadata

title: Clique Solution
tags: [CP]

---

---
author: nguyencter
tags: Clique 
title: Clique Solution
---

$\Huge\text{Clique Solution}$

-------

:::info
🔗 Links: [Đề bài](https://drive.google.com/file/d/17jJcDZUqUnLEjdhnLWr7zTgxrTapW-Cu/view?usp=sharing)
📌 Tags: Backtrack   
✍️ Writer: nguyencter  
📋 Content:
[TOC]
:::

-----

## Giới Thiệu Đề Bài

**Clique**
Cho một đồ thị vô hướng G có n đỉnh m cạnh và số nguyên k.
**Yêu cầu**:  Hãy tìm một clique có kích thước bằng k

-----

## Thuật toán
Đối với bài toán này ta sử dụng phương pháp quay lui để tìm k đỉnh tạo thành 1 clique.
Nhưng vì giới hạn $N$ lớn nên ta cần đặt cận để giảm độ phức tạp.

Ta sử dụng tập  hợp $P$ để lưu lại các đỉnh tạo thành clique (ban đầu $P$ rỗng).

Recur(i,j) với mỗi đỉnh từ i+1 đến N ta kiểm tra xem nếu nó có cạnh nối trực tiếp tới mỗi phần tử trong $P$ hay không, nếu có thì thay đỉnh này thành phần tử thứ j của tập $P$ còn không thì xét đến đỉnh khác.

Tiếp tục cho đến khi số lượng phần tử của $P$ bằng với k thì in ra tập $P$.

----

Tham khảo code ở [đây](https://github.com/nguyencter/CODE/blob/main/clique.cpp)