|
Trả lời: STNODE - Ai ACC được 100đ chỉ giáo giùm mình với! 10 năm, 2 tháng trước
|
(+1)
|
Đúng là nếu viết như cách giải trên thì không ổn. Em cũng mất một ngày ngồi tự nghĩ cách giải thì cũng nghĩ ra cách này. Phải sửa lại là f[u]=nhãn lớn nhất trong các nhãn của những đỉnh đến được từ u mà các đỉnh trung gian trên đường đi không thuộc k đỉnh trên. Mỗi tội là em cài hơi chán nên mới được có 60, chưa 100 được, chắc phải sửa lại một chút chỗ xét điều kiện.
|
|
|
Đã lưu IP
|
|
Đã khóa chức năng gửi bài. |
ntlvl (Thành viên)
Đang tập code
Bài viết: 1
|
Trả lời: STNODE - Ai ACC được 100đ chỉ giáo giùm mình với! 10 năm, 2 tháng trước
|
(+0)
|
Các bác cho em hỏi, em làm thế này:
- Dùng BFS tìm 1 đường đi duy nhất từ s-->t
- Bỏ từng đỉnh trong đường đi đó rồi dùng DFS tìm thử xem có đường đi hay không, nếu không có đường đi thì thêm 1 nút xung yếu.
mà sao em AC được 90 thôi, vậy là nó bị TLE hay WA vậy các bác ! em kiểm tra lại thì thấy các test tự tạo đều đúng hết. Nhưng không biết có trường hợp nào đặc biệt nào mà chưa xử lí được không ?
|
|
|
Đã lưu IP
|
|
Đã khóa chức năng gửi bài. |
|
Trả lời: STNODE - Ai ACC được 100đ chỉ giáo giùm mình với! 9 năm, 9 tháng trước
|
(+0)
|
Mong các anh chị đã AC cho em hỏi cách làm bài này, em làm mãi vẫn chỉ 90 điểm 
{NOTE: em chỉ mong muốn tiếp thu thuật toán nên hi vọng mọi người không post code}
|
|
|
Đã lưu IP
|
|
Cầu trời mai đề dễ chịu với con
|
|
Đã khóa chức năng gửi bài. |
|
Trả lời: STNODE - Ai ACC được 100đ chỉ giáo giùm mình với! 9 năm, 9 tháng trước
|
(+0)
|
Ai giúp em với  , em thấy có khá nhiều anh chị đã AC mà
|
|
|
Đã lưu IP
|
|
Cầu trời mai đề dễ chịu với con
|
|
Đã khóa chức năng gửi bài. |
|
Trả lời: STNODE - Ai ACC được 100đ chỉ giáo giùm mình với! 9 năm, 9 tháng trước
|
(+0)
|
Em phơi bài trên đây cả tuần rồi mà không ai giúp em ak 
|
|
|
Đã lưu IP
|
|
Cầu trời mai đề dễ chịu với con
|
|
Đã khóa chức năng gửi bài. |
|
Trả lời: STNODE - Ai ACC được 100đ chỉ giáo giùm mình với! 9 năm, 8 tháng trước
|
(+0)
|
Bài này em BFS tìm đường đi từ s->t. Rồi lần lượt bỏ điểm đó đi, nếu có đường khác từ s->t k cần qua diểm đó thì là k xung yếu ngược lại là xung yếu.
Code: | const fi='';//'STNODE.inp';
fo='';//'STNODE.out';
type ptr=^node;
node=record
v : longint;
next:ptr;
end;
var f1,f2 : text;
tr,thu,q : array[0..10000] of longint;
f,l,i,dem,kq,n,m,s,t,v,u : longint;
k : array[0..10000] of ptr;
inq :array[0..10000] of boolean;
p : ptr;
procedure tinh;
var w : longint; p:ptr;
BEGIN
w:=t;
while w<>s do
BEGIN
w:=tr[w];
if w<>s then
BEGIN
inc(dem);
thu[dem]:=w;
end;
end;
end;
procedure bfs(u : longint);
var p:ptr;
BEGIN
f:=1;
l:=1;
fillchar(inq,sizeof(inq),false);
inq[u]:=true;
// inq[k]:=true;
q[f]:=u;
repeat
v:=q[f]; inc(f);
p:=k[v];
while p<> nil do
if inq[p^.v]=false then
BEGIN
inc(l);
q[f]:=p^.v;
tr[p^.v]:=v;
inq[p^.v]:=true;
if p^.v=t then
BEGIN
tinh;
exit;
end;
p:=p^.next;
end
else p:=p^.next;
until f>l;
end;
function bfs2(u,o : longint): boolean;
var p:ptr; v: longint;
BEGIN
fillchar(q,sizeof(q),0);
bfs2:=true;
f:=1;
l:=1;
fillchar(inq,sizeof(inq),false);
inq[u]:=true;
inq[o]:=true;
q[f]:=u;
repeat
v:=q[f];
inc(f);
p:=k[v];
while p<> nil do
if inq[p^.v]=false then
BEGIN
inc(l);
q[f]:=p^.v;
inq[p^.v]:=true;
if p^.v= t then
BEGIN
bfs2:=false;
exit;
end;
p:=p^.next;
end
else p:=p^.next;
until f>l;
end;
BEGIN
assign(f1,fi);
reset(f1);
assign(f2,fo);
rewrite(f2);
read(f1,n,m,s,t);
for i:=1 to m do
BEGIN
read(f1,u,v);
new(p);
p^.v:=v;
p^.next:=k[u];
k[u]:=p;
end;
//for i:=1 to n do k[i]:=nil;
bfs(s);
kq:=0;
if dem=0 then
BEGIN
write(f2,0);
halt;
end;
for i:=1 to dem do if bfs2(s,thu[i]) then inc(kq);
write(f2,kq);
close(f1);
close(f2);
end.
|
|
|
|
Đã lưu IP
|
|
Đã khóa chức năng gửi bài. |
|
Trả lời: STNODE - Ai ACC được 100đ chỉ giáo giùm mình với! 9 năm, 8 tháng trước
|
(+0)
|
Tôi thấy bạn cài kém ở một vài vị trí, nó làm chậm chương trình và tôi không thấy cái bạn bảo là loại bỏ đỉnh ở đâu, ct của bạn được 20 điểm có nghĩa là đến test nhỏ vẫn chạy sai, bạn nên xem kĩ càng trước khi post bài
|
|
|
Đã lưu IP
|
|
Đã khóa chức năng gửi bài. |
|
Trả lời: STNODE - Ai ACC được 100đ chỉ giáo giùm mình với! 9 năm, 8 tháng trước
|
(+0)
|
Anh xem kĩ lại đi. Ở chỗ BFS2, đỉnh o là cần loại bỏ. Em cho inq[o]=true => không xét tiếp điểm O. Anh nói rõ thêm giúp em được không. Được có 20đ thôi
|
|
|
Đã lưu IP
|
|
Đã khóa chức năng gửi bài. |
|
Trả lời: STNODE - Ai ACC được 100đ chỉ giáo giùm mình với! 9 năm, 7 tháng trước
|
(+0)
|
Mọi người giúp em với ạ. Em đã nhìn nhưng không ra được lỗi sai.
|
|
|
Đã lưu IP
|
|
Đã khóa chức năng gửi bài. |
|
Trả lời: STNODE - Ai ACC được 100đ chỉ giáo giùm mình với! 9 năm, 7 tháng trước
|
(+0)
|
|
|
|
Đã lưu IP
|
|
Đã khóa chức năng gửi bài. |
|