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/NUMTRANS #281

Open utterances-bot opened 3 years ago

utterances-bot commented 3 years ago

Trò chơi ghép số - Luyện Code Online

https://code.nguyenvanhieu.vn/problem/NUMTRANS

hathaictb commented 3 years ago

ai gợi ý cách làm bài này cho em với ạ

hieuguyen07012004 commented 3 years ago

ai gợi ý cách làm bài này cho em với ạ

Mình sẽ lấy ví dụ ở đề là ghép 3 số 12, 907, 91. Thì khi đó bạn sẽ đưa chúng về 120, 907, 910 rồi so sánh. Ta có 910>907>120 nên số ghép được sẽ là 91"+" 907 "+" 12 --> 9190712.

ncc02 commented 3 years ago

1 dòng là AC with multiset<string, greater < string> > :)

andrewlxm commented 3 years ago

adu multiset cực mạnh :<

HimuraBiaken commented 2 years ago

Sao Tí ko nhờ 'Các bạn' giải hộ luôn mà phải nhờ viết CT nhỉ ?

ghost 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

``` #include #include int main() { int n; std::cin >> n; std::multiset> mse; while(n--) { std::string s; std::cin >> s; mse.insert(s); } for(auto& x : mse) std::cout << x; return 0; } ```

honga789 commented 2 years ago

Theo mình vừa test thì bạn nào dùng multiset vẫn sai nha do test case trên luyencode nè thiếu các bạn hãy cho code mình chạy thử th này đi : 4 99 98 97 9 ai dùng multiset là in ra 9998979 là các bạn tự hiểu rằng sai ở đâu rồi nhỉ !

nvnamson commented 2 years ago

Bài tập này mình có viết hướng dẫn giải chi tiết trên Facebook cá nhân của mình rồi. Bạn nào đã cố gắng hết sức nhưng vẫn chưa làm ra hoặc đã làm ra rồi nhưng muốn tham khảo thì có thể xem chi tiết bài viết tại đây nha, hy vọng mang đến được giá trị cho các bạn, chúc các bạn sức khỏe và thành công: https://www.facebook.com/100003824621962/posts/2313061355497996/?d=n

mcsmuscle commented 2 years ago

Theo mình vừa test thì bạn nào dùng multiset vẫn sai nha do test case trên luyencode nè thiếu các bạn hãy cho code mình chạy thử th này đi : 4 99 98 97 9 ai dùng multiset là in ra 9998979 là các bạn tự hiểu rằng sai ở đâu rồi nhỉ !

đúng rồi bác, phải ra 9999897 mới đúng

MinhNghiaTran01 commented 2 years ago

Đây là code đã khắc phục được case wrong(không có trong test của đề) của bạn trên khi dùng multiset nha. Đây là code AC của mình. Nếu b k làm đc có thể tham khảo . Ai học qua C++ cơ bản r muốn vô nhóm học trao đổi C++ thì kb qua facebook mình nhé: https://www.facebook.com/profile.php?id=100073166117422 https://ideone.com/fJHlZH

minhhdtr 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

``` cpp #include #include #include #include int main() { std::cin.tie(nullptr), std::cout.tie(nullptr)->std::ios_base::sync_with_stdio(false); int n; std::cin >> n; std::vector v(n); for(int i = 0; i < n; i++) { std::cin >> v[i]; } std::sort(v.begin(), v.end(), [](const std::string &a, const std::string &b) { return a + b > b + a; }); if(v[0][0] == '0') { std::cout << '0'; } else { for(int i = 0; i < n; i++) { std::cout << v[i]; } } return 0; } ```

nhileomao2810 commented 2 years ago

sort string

ThuanNqt commented 2 years ago

Đây là lời giải tối ưu nhất tránh lỗi khi dùng multiset.

Xem code AC

```cpp #include using namespace std; //THUẬN IT2-03 HUST int cmp(const string &a,const string &b){ string ab=a+b; string ba=b+a; return ab>ba; } int main(){ vector v; int n;cin>>n; cin.ignore(); string s;getline(cin,s); string tmp; stringstream ss(s); while(ss>>tmp){ v.push_back(tmp); } sort(v.begin(),v.end(),cmp); for(int i=0;i

tHoangAnh1003 commented 1 year ago
#include <bits/stdc++.h>
using namespace std;

int main() {
    int n; cin >> n;
    vector<string> v(n);
    for (int i = 0; i < n; ++i) cin >> v[i];
    sort(v.begin(), v.end(), greater<string>());
    for (int i = 0; i < n; ++i) cout << v[i];
}