Bài tập  /  Bài đang cần trả lời

Giải bài có thưởng!

Trên đường thẳng cho N điểm phân biệt: \( A_1, A_2, A_3, \ldots, A_n \) và điểm O không thuộc đường thẳng. Tính số tam giác có 3 đỉnh thuộc các đỉnh đã cho. **Input:** - Số nguyên dương \( N \) ( \( N \leq 10^9 \) ) **Output:** - Số tam giác có 3 đỉnh thuộc tập \( N + 1 \) đỉnh đã cho **Ví dụ** ``` INP OUT 4 6 ``` **Giới hạn** - 50% số test có \( N \leq 10^6 \) - 50% số test có \( N \leq 10^9 \)

----- Nội dung ảnh -----
Trên đường thẳng cho N điểm phân biệt: \( A_1, A_2, A_3, \ldots, A_n \) và điểm O không thuộc đường thẳng. Tính số tam giác có 3 đỉnh thuộc các đỉnh đã cho.

**Input:**
- Số nguyên dương \( N \) ( \( N \leq 10^9 \) )

**Output:**
- Số tam giác có 3 đỉnh thuộc tập \( N + 1 \) đỉnh đã cho

**Ví dụ**
```
INP OUT
4 6
```

**Giới hạn**
- 50% số test có \( N \leq 10^6 \)
- 50% số test có \( N \leq 10^9 \)
0 Xem trả lời
Hỏi chi tiết
27
Tham khảo câu trả lời từ Trợ lý ảo Lazi
Để tính số tam giác có 3 đỉnh thuộc tập \( N + 1 \) đỉnh (Gồm \( N \) điểm \( A_1, A_2, \ldots, A_N \) và điểm \( O \)), ta cần sử dụng công thức tính tổ hợp.

### Các bước tính toán:

1. **Chọn 3 điểm từ 1 trong 2 loại:**
- Chọn 3 điểm từ \( N \) điểm trên đường thẳng.
- Chọn 2 điểm từ \( N \) và 1 điểm từ \( O \).

2. **Sử dụng công thức tổ hợp:**
- Số cách chọn 3 điểm từ \( N \) là \( C(N, 3) \) nếu \( N \geq 3 \).
- Số cách chọn 2 điểm từ \( N \) và 1 từ \( O \) là \( C(N, 2) \).

3. **Công thức tổ hợp:**
- \( C(n, k) = \frac{n!}{k!(n-k)!} \)
- Với \( C(N, 3) = \frac{N(N-1)(N-2)}{6} \)
- Với \( C(N, 2) = \frac{N(N-1)}{2} \)

### Kết hợp hai loại:

- Tổng số tam giác = Số tam giác từ 3 điểm + Số tam giác từ 2 điểm và O
\[ T(N) = C(N, 3) + C(N, 2) \]
\[ T(N) = \frac{N(N-1)(N-2)}{6} + \frac{N(N-1)}{2} \]

### Chú ý:
- Nếu \( N < 2 \) thì không có tam giác nào (kết quả là 0).
- Nếu \( N = 2 \) thì chỉ có thể tạo 1 tam giác từ 2 điểm và điểm O.

### Mã giả:
```python
def count_triangles(N):
if N < 2:
return 0
count_C3 = (N * (N - 1) * (N - 2)) // 6 if N >= 3 else 0
count_C2 = (N * (N - 1)) // 2
return count_C3 + count_C2

N = int(input().strip())
print(count_triangles(N))
```

### Ví dụ:
Nhập vào \( N = 4 \):
- \( C(4, 3) = 4 \)
- \( C(4, 2) = 6 \)
- Vậy tổng số tam giác là \( 4 + 6 = 10 \).

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm
Câu hỏi liên quan

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường
×
Trợ lý ảo Trợ lý ảo
×
Đấu trường tri thức | Lazi Quiz Challenge +500k
Gửi câu hỏi
×