• VNOJ
  • Trang chủ
  • Danh sách bài
  • Các bài nộp
  • Thành viên
    >
    • Tổ chức
  • Các kỳ thi
  • Wiki
  • Thông tin
    >
    • Cpp Refference
    • Python Refference
    • FAQ
    • Trình chấm ngoài
    • Tag
    • Máy chấm
    • Devlog
    • Github
    • Tickets
    • Thư viện đề thi
    • Đề xuất contest
  • Tạp chí
Tối Sáng EN Đăng nhập  hoặc  Đăng ký

Chào mừng bạn đến với VNOI Online Judge!

VNOJ - VNOI Online Judge là hệ thống online judge open source chính thức của VNOI, dựa trên nền tảng của hệ thống DMOJ.

VNOJ được tạo ra với mục đích xây dựng một môi trường luyện tập và cạnh tranh dành cho cộng đồng Tin Học Việt Nam. VNOJ là một hệ thống chấm bài tự động hoàn toàn độc lập của VNOI và là bước tiến tiếp theo trong quá trình di dời và nâng cấp VOJ.

Hiện nay, hệ thống VNOJ đã đưa trở lại kho bài tập rộng lớn từ hệ thống cũ VOJ (bao gồm các đề thi Học Sinh Giỏi Quốc Gia, ACM-ICPC, ... qua các năm). Kho bài tập này sẽ được cập nhật thường xuyên với những bài tập mới từ các kì thi, trong đó có những kì thi luyện tập trên VNOJ và những đề thi chính thức của VNOI.

Nếu đây là lần đầu tiên tham gia VNOJ, hãy đăng ký tài khoản. Sau đó, thử bài tập A cộng B.

  • Blog
  • Sự kiện
  • Tin tức
  • Blog

0

neu sau nay la gay ban se nghĩ j

gdvoitoi đã đăng vào 29, Tháng 10, 2026, 12:13

cout << "toi tim em vi toi gay" << endl;

gdvoitoi
o29, Tháng 10, 2026, 12:13 0

0

cứu em

khanh_cpp_2013 đã đăng vào 24, Tháng 10, 2026, 4:46

theo các anh chị thì em lớp 8 muốn thi đội tuyển tin thì phải học những gì

khanh_cpp_2013
o24, Tháng 10, 2026, 4:46 1

-5

Thg Cao Hơn Tao Bị Gay

vanhbun2 đã đăng vào 22, Tháng 10, 2026, 12:00

Helloworld("print")

vanhbun2
o22, Tháng 10, 2026, 12:00 0

-2

hello

juanLoan đã đăng vào 13, Tháng 10, 2026, 8:47

hello

juanLoan
o13, Tháng 10, 2026, 8:47 0

2

Đơn giản hóa DFS/BFS

thinhphamminh274 đã đăng vào 12, Tháng 10, 2026, 12:18

Lý thuyết cơ bản về DFS và BFS

1. DFS (Depth-First Search - Tìm kiếm theo chiều sâu)

  • Bản chất: Đi "cắm đầu" đi sâu nhất có thể theo một hướng. Khi gặp ngõ cụt, mới quay ngược lại (backtrack) ngã rẽ gần nhất chưa khám phá để đi tiếp hướng khác.
  • Hình ảnh ví dụ: Giống như đi thám hiểm một cái hang sâu, chọn một ngách và đi sâu mãi đến tận cùng rồi mới quay ra thử các ngách phụ khác.
  • Cơ chế: Sử dụng Stack (Ngăn xếp) hoặc Đệ quy.
  • Ứng dụng: Duyệt cây, tìm kiếm đường đi, kiểm tra chu trình, thành phần liên thông, quay lui.

2. BFS (Breadth-First Search - Tìm kiếm theo chiều rộng)

  • Bản chất: Đi "loang" rộng ra từng lớp một. Đứng ở một điểm, khám phá hết hàng xóm gần nhất (khoảng cách 1 bước) rồi mới dịch chuyển sang các điểm xa hơn.
  • Hình ảnh ví dụ: Thả viên sỏi xuống mặt hồ, gợn sóng lan rộng đều ra các phía theo hình tròn đồng tâm.
  • Cơ chế: Sử dụng Queue (Hàng đợi - FIFO).
  • Ứng dụng: Tìm đường đi ngắn nhất trên đồ thị không trọng số.

3. Bảng so sánh nhanh

Tiêu chí DFS (Chiều sâu) BFS (Chiều rộng)
Chiến lược Đi sâu hết mức một nhánh rồi mới quay lại Loang rộng đều theo từng lớp/khoảng cách
Cấu trúc dữ liệu Ngăn xếp (Stack / Recursion) Hàng đợi (Queue)
Ưu điểm lớn nhất Tốn ít bộ nhớ hơn với cây sâu; dễ viết Tìm ra đường đi ngắn nhất (về số bước)
Ứng dụng điển hình Duyệt cây, thành phần liên thông, mê cung Tìm đường ngắn nhất không trọng số
thinhphamminh274
o12, Tháng 10, 2026, 12:18 0

-21

Nguyễn Dũng Prime

minhminhminh21112011 đã đăng vào 5, Tháng 10, 2026, 9:09

Nguyễn Dũng Prime🤴🤴 âm dâu🍓🍓bậm dao🥵🥵đạo dụ👉👌🤰🤰🏻🤰🏼🤰🏽🤰🏾🤰🏿 Nguyễn Dũng Prime🤴🤴 âm dâu🍓🍓bậm dao🥵🥵đạo dụ👉👌🤰🤰🏻🤰🏼🤰🏽🤰🏾🤰🏿 Nguyễn Dũng Prime🤴🤴 âm dâu🍓🍓bậm dao🥵🥵đạo dụ👉👌🤰🤰🏻🤰🏼🤰🏽🤰🏾🤰🏿 Nguyễn Dũng Prime🤴🤴 âm dâu🍓🍓bậm dao🥵🥵đạo dụ👉👌🤰🤰🏻🤰🏼🤰🏽🤰🏾🤰🏿 Nguyễn Dũng Prime🤴🤴 âm dâu🍓🍓bậm dao🥵🥵đạo dụ👉👌🤰🤰🏻🤰🏼🤰🏽🤰🏾🤰🏿

minhminhminh21112011
o5, Tháng 10, 2026, 9:09 1

-1

HSG TIN Nguyễn Văn Linh

ntba đã đăng vào 3, Tháng 10, 2026, 18:46

Nhóm HSG TIN Nguyễn Văn Linh

ntba
o3, Tháng 10, 2026, 18:46 0

0

Links tài liệu ôn thi Tốt nghiệp THPT môn Tin học

chunganhdbp đã đăng vào 28, Tháng 9, 2026, 3:21

https://drive.google.com/drive/folders/1bYDPzz-N4Wcyph6Sl7A8UKrFL29Oi7T6

chunganhdbp
o28, Tháng 9, 2026, 3:21 0

-10

toibingu

minh18122010 đã đăng vào 21, Tháng 9, 2026, 1:03

include<bits></bits>

define ll long long

define ull unsigned long long

define ii pair

define fi first

define se second

define ass assign

define pb push_back

using namespace std;

mt1993764 rng(chrono::steadyclock::now().timesinceepoch().count());

void file(){ #define TASK "" if(fopen(TASK".INP","r")) freopen(TASK".INP","r",stdin), freopen(TASK".OUT","w",stdout); }

ll rand(ll l,ll r){ return rng()%(r-l+1)+l; }

const int N=1e5+5; const int LG=20;

struct Edge{ int u,v,idu,idv; };

int n,q; vector<pair>>adj[N]; Edge canh[N];</pair>

void init(){ cin>>n>>q; for(int i=1;i<n int u cin>>u>>v; adj[u].pb({v,1LL}); adj[v].pb({u,1ll}); canh[i]={u,v,(int)adj[u].size()-1,(int)adj[v].size()-1}; } }</n>

namespace sub{ bool check(){ return 1; }

int timer,sta[N],fin[N],depth[N],up[N][LG];

void dfs(int u,int p){
    sta[u]=++timer;
    up[u][0]=p;
    for(int i=1;i<LG;i++)
        up[u][i]=up[up[u][i-1]][i-1];
    for(pair<int,ll>pr:adj[u]){
        int v=pr.fi;
        ll w=pr.se;
        if(v==p)
            continue;
        depth[v]=depth[u]+1;
        dfs(v,u);
    }
    fin[u]=timer;
}

int lca(int u,int v){
    if(depth[u]<depth[v])
        swap(u,v);
    int diff=depth[u]-depth[v];
    for(int i=0;i<LG;i++)
        if((diff>>i)&1)
            u=up[u][i];
    if(u==v)
        return u;
    for(int i=LG-1;i>=0;i--)
        if(up[u][i]!=up[v][i]){
            u=up[u][i];
            v=up[v][i];
        }
    return up[u][0];
}

void solve(){
    dfs(1,0);
    while(q--){
        char opt;
        cin>>opt;
        if(opt=='I'){
            int r,s,t;
            cin>>r>>s>>t;
            if(canh[r].u<canh[r].v){
                adj[canh[r].u][canh[r].idv].se=s;
                adj[canh[r].v][canh[r].idu].se=t;

            }else{
                adj[canh[r].v][canh[r].idu].se=s;
                adj[canh[r].u][canh[r].idv].se=s;

            }
        }
        if(opt=='Q'){
            int x,y;
            cin>>x>>y;

        }
    }
}

}

int main(){ srand(time(NULL)); iosbase::syncwith_stdio(0); cin.tie(0);cout.tie(0); file();

init();
if(sub::check())
    sub::solve();

} /*

*/

minh18122010
o21, Tháng 9, 2026, 1:03 1

-1

bí kíp vào College of Progamming and Technology

cabral đã đăng vào 17, Tháng 9, 2026, 7:27

i luv cpt

cabral
o17, Tháng 9, 2026, 7:27 2
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • ...
  • 39
  • 40
  • »

Top thành viên

# Tên truy cập Rating
1
fextivity
3236
2
hollwo_pelw
2814
3
Hollowed
2785
4
marvinthang
2759
5
BaoJiaoPisu
2745
Tổ chức Xem đầy đủ >>>

Top đóng góp

# Tên truy cập Đóng góp
1
dquynh_2811
1480
2
I_love_Hoang_Yen
676
3
Mike4235
582
4
ntkwan
547
5
PhuocThien
529
Xem đầy đủ >>>

Dòng bình luận Discord

  • baonemay09 → VM 08 Bài 13 - Bin Laden
  • baonemay09 → Vé xe miễn phí
  • baonemay09 → Vé xe miễn phí
  • vextor11 → Free Contest Testing Round 8 - ELECTRIC
  • vextor11 → Beginner Free Contest 3 - ELECTRIC
  • quancat2k13 → hhhh
  • nghtudung → [Mirror] ICPC 2026 miền Trung
  • User272820 → [Mirror] ICPC 2026 miền Trung
  • quangykqh → [Mirror] ICPC 2026 miền Trung
  • quangykqh → [Mirror] ICPC 2026 miền Trung
RSS / Atom

Bài mới

  • ICPC 2026 miền Trung - N: Lanterns on the Perfume River
  • ICPC 2026 miền Trung - M: Aegis
  • ICPC 2026 miền Trung - L: Quadrilateral Classification
  • ICPC 2026 miền Trung - K: Drone
  • ICPC 2026 miền Trung - J: Dominant Champion
  • ICPC 2026 miền Trung - I: Same Level
  • ICPC 2026 miền Trung - H: Souvenirs at Dong Ba Market
RSS / Atom

dựa trên nền tảng DMOJ | theo dõi VNOI trên Github và Facebook