Đúng là chính xác thì có 3 cái big:
1) big O
2) big Theta
3) big Gama
Tuy nhiên khi nói general term trong thuật toán thì người ta dùng O tương đương với Theta vì khó type. Nếu bạn hiểu O() là...
Type: Các bài viết; User: rox_rook; Từ khóa:
Đúng là chính xác thì có 3 cái big:
1) big O
2) big Theta
3) big Gama
Tuy nhiên khi nói general term trong thuật toán thì người ta dùng O tương đương với Theta vì khó type. Nếu bạn hiểu O() là...
@boss14420: Mặc dù worst case là O(n), average case không thể O(n) được, size grows double every time, analysis như vậy không chính xác. Algorithm analysis phải phân tích cả 3 cases:
1) Worst (+...
@prog10: Lung tung quá, ở đây là OOP design, chẳng có liên quan gì tới dùng STL hay không hết.
Hơn nữa trong STL không có nhiều data-structure ví dụ thằng graph, đó là lý do tại sao có boost.
Về...
@prog10: Tại sao không được dùng OOP hay design pattern ở đây? Mấy cái library của bạn dùng (STL, boost) nó dùng cái gì nhỉ?
Cồng kềnh hay không là do cách design, chứ không phải do OOP.
@quano1:
1. Bạn tạo một vector<Vertex*> để sử dụng polymorphism, nhưng nhìn vào thằng Edge và Vertex, liệu chúng có khả năng mở rộng không?
2. Có quá nhiều concrete class.
3. Làm sao phân biệt hay...
1) Nếu chưa biết keyword, đơn giản thì dùng Trie, muốn efficient thì Suffix Array (dễ implement và gọn hơn suffix tree, counting sort dùng AC3 algorithm sẽ rất nhanh), hoặc build Suffix Automaton...
@quano1:
- Viết library thì syntactically correct là một chuyện, semantically correct là chuyện khác.
- Viết library là rất khó, khó hơn viết app thường nhiều, vì chúng ta phải design rất cẩn thẩn...
Dùng số lớn thì dùng kiểu char là đủ vì chỉ lưu digit. Mà box này là box góp ý cho code chứ đâu có phải box hỏi thuật toán nhỉ?(:-)?
@prog10: Cái này chắc là O(n)
#include <memory>
#include <vector>
#include <iostream>
#include <unordered_map>
std::vector<int> find_max_frequency(const std::vector<int> &ary) {...
@quano1: Chưa hiểu bạn đang muốn làm cái gì? Bạn ghi rõ tên class chứ đừng demo vậy, không đoán được thì không thể nào design đúng được.
Nếu thằng tham số là local thì sau khí ra khỏi scope, thì...
Tiêu đề là thuật toán random, câu hỏi thì lại là dùng hàm nào để tạo random, pó tay :mad:
@prog10: Không cần dùng mảng, hash là ok vì chỉ cần tìm max.
@prog10:
O(n) thôi là đủ, counting sort! Có vẻ như tiendaotd làm cách này.
Trang coursera.org có rất nhiều course hay về Algorithm, bạn nào có thời gian và hứng thú thì có thể đang kí, rất hữu ích cho programming contest:
Algorithm Part I...
@doicanhden: I don't know [:-(
@doicanhden: Em thử thằng này, chắc là nhanh hơn :D
/* VBOARD: Difference of values in a rectangular part of a chessboard. */
#include <cstdio>
#define MAXSIZE 501 /* +1 as the...
@cvht: good work :D
Đúng là chỉ cần lưu cái phần diff là đủ, code cũng gọn hơn nhiều.
Code bạn chạy chậm do bạn dùng getchar() thôi, thằng đó thread safe, nên rùa tí. Bỏ thằng getchar_unlocked vào...
@boss14420: Để check terminate, em chỉ cần kiểm tra xem factor của base 10 là 2 và 5 mà thôi. Code em dài quá :(
@tiendaotd: Bạn dùng giải thuật nào có thể chia sẽ được không? 30 dòng mình cũng...
Nên làm kèm SPOJ với TopCoder hay Codeforces, vì 2 trang này luyện phản xạ tốt hơn.
- TopCoder 3 bài 45'
- Codeforces 5 bài 2 tiếng
Tuy nhiên SPOJ có rất nhiều các giải thuật cổ điển mà 2 trang...
Cách đơn giản nhất là tạo một node *parent, không thì O(n) để tìm cha :(
#include <memory>
#include <iostream>
template<class K, class V>
struct binary_node {
public:
K key;
@doicanhden: Thanks em. Tại đang xài C++11 mà trang spoj chỉ có GCC 4.3.2 (siêu cùi bắp), nên anh mới phải dùng cái kiểu enum pha integer return như thế :(
Còn cái else thì đúng là bỏ cũng được,...
@prog10: Loại được prime thì nhanh hơn chứ nhỉ? Với lại sieve chỉ một lần, nếu input toàn primes, thì cách kia có vẻ không ổn cho lắm.
@fithou91192:
Bài VBOARD của bạn đây (100% test), muốn nhanh...
@fithou91192:
http://vn.spoj.com/problems/ETF/
#include <iostream>
#include <map>
#include <limits>
#include <climits>
#include <memory>
#include <fstream>
@star: Cũng vậy thôi em vì bản chất thằng AsyncTask nó vẫn spawn một thread thôi. Nếu cần update lên UI (Main Thread) thì anh cứ gọi runOnUiThread() thôi. Nhưng thật sự trong Android thì nên dùng...
Login thường là một task tốn thời gian, vì vậy bạn chỉ nên chạy nó trên background task thôi. Chuyển qua Activity khác thì dùng Intent là xong.
Cách mà mình xử lý (không chắc tối ưu):
1) Tạo một...