11070. Xóa Chữ Số | Lập Trình C/C++
Có thể bạn quan tâm
Cho một số có N chữ số. Bạn hãy xóa đi K chữ số để được số còn lại sau khi xóa là lớn nhất có thể.
Input
– Dòng 1: số N và K (1<=K<N<=500 000).
– Dòng 2: Số có N chữ số, bắt đầu bằng số khác 0.
Output
– Số lớn nhất có thể sau khi xóa K chữ số.
Example
Input: 4 2 1924 Output: 94Ý tưởng
Giả sử n có d chữ số dùng đệ quy giải bài toán
- Nếu k=0 thì giữ nguyên n
- Nếu k > 0 thì ta giữ tìm max trong phần d-k chữ số nửa đầu để bắt đầu giữ lại để sau khi xóa đi đoạn đầu chữ thì vẫn phải đủ d-k chữ số sau đó gọi đệ quy xử lý xóa chỗ còn lại tùy theo số chữ số đã được xóa
Nguồn
http://www.spoj.com/PTIT/problems/PTIT125I/
Code
http://ideone.com/b5t7DZ
long N,d=0; char *q,*p; void xoa(long k,char *x) { if(k==0) printf("%s",x); else if(d==N-k) return; else { q=x; for(p=x+1;p<=x+k;p++) { if(*q<*p) q=p; if(*q=='9') break; } printf("%c",*q); d++; xoa(k-(q-x),q+1); } } int main() { long k; scanf("%ld%ld",&N,&k); char *x=new char[N+3]; scanf("%s",x); xoa(k,x); }Chia sẻ ngay:
Đang tải... Điều hướng bài viết ← 11069. Chỗ ngồi 11071. Bàn cờ →7 thoughts on “11070. Xóa chữ số”
-
bài này e sắp xếp 1924 thành giảm dần là 9421 rồi trừ 2 số cuối đi sao vẫn sai ạ
ThíchThích
-
Bài này không được sắp xếp em ạ, ví dụ xóa 2 chữ số của 59362 thì còn 962
ThíchThích
-
thầy ơi như thầy với bạn trên kia trao đổi em không hiểu lắm, tại sao 59362 sắp xếp thành 96532, xóa 2 chữ số cuối đi lại thành 962 ạ ???
ThíchThích
-
59362 nếu xoá 1 chữ số thì nó sẽ có thể sinh ra các số sau Xoá số 5 còn 9362 Xoá số 9 còn 5362 Xoá số 3 còn 5962 Xoá số 6 còn 5932 Xoá số 2 còn 5963
Vậy xoá đi 1 chữ số ra số lớn nhất là 9362. Em làm tương tự xem xoá 2 chữ số thì ra những số nào, max là số nào. chứ không hề có sắp xếp nào
ThíchThích
-
em hiểu rồi ạ. Em cảm ơn thầy.
ThíchThích
-
xin Thầy cho xin địa chỉ mail hoặc cách liên hệ được không ah.. thanks Thầy
ThíchThích
-
Email của mình tichpx@yahoo.com
ThíchThích
Bình luận về bài viết này
- Bình luận
- Đăng lại
- Theo dõi Đã theo dõi
- Lập trình C/C++ Đã có 26 người theo dõi Theo dõi ngay
- Đã có tài khoản WordPress.com? Đăng nhập.
-
- Lập trình C/C++
- Tùy biến
- Theo dõi Đã theo dõi
- Đăng ký
- Đăng nhập
- URL rút gọn
- Báo cáo nội dung
- Xem toàn bộ bài viết
- Quản lý theo dõi
- Ẩn menu
Từ khóa » Xóa K Chữ Số để được Số Lớn Nhất C
-
Xóa N Chữ Số để được Số Lớn Nhất - Programming - Dạy Nhau Học
-
PTIT125I - Xóa Chữ Số - E16CN PTIT
-
Bài Toán Tạo Số Lớn Nhất: | Cộng đồng Học Sinh Việt Nam
-
Xóa K Chữ Số để được Số Lớn Nhất. - HOCMAI Forum
-
Xóa Một Chữ Số để Thu được Số Lớn Nhất? [Archive] - Diễn Đàn Tin Học
-
Thuật Toán Xoá K Chữ Số để được Dãy Lớn Nhất. - YouTube
-
Xóa Chữ Số - Cộng đồng C Việt
-
Lập Trình C - Cho Một Số Có N Chữ Số. Bạn Hãy Xóa đi K Chữ...
-
Xóa Chữ Số - LQDOJ: Le Quy Don Online Judge
-
[PDF] Xóa Chữ Số - SPOJ
-
Giải Thích Giúp Mình Thuật Toán Của Bài Này Cho Minh Với( Khó Quá)
-
Cho Số 92457813. Hãy Xóa đi Ba Chữ Số để được Số Có Năm ... - Hoc24
-
Cho Số 6789101112 .Hãy Xoá đi 4 Chữ Số Sao Cho Số Còn Lại Làa) Số ...
-
4219183456 .Hãy Xóa đi 5 Chữ Số Trong Số Trên ,giữ Nguyên Thứ Tự ...