Skip to content

Commit 05ac30e

Browse files
authored
Merge pull request #3 from AMR-KELEG/uva-problems
UVA problems
2 parents d54185a + 6b716ee commit 05ac30e

File tree

1 file changed

+75
-0
lines changed

1 file changed

+75
-0
lines changed

UVA/10461.cpp

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
/* AC
2+
- Simple dfs is enough to solve the problem.
3+
- Don't clear the visited array for each case to avoid TLE.
4+
/*
5+
6+
#include <bits/stdc++.h>
7+
using namespace std;
8+
std::vector<std::vector<int> > adjlist;
9+
std::vector<std::vector<int> > adjlist_rev;
10+
std::vector<int> w;
11+
std::vector<long long int> vis(501, 0);
12+
long long int cur_test = 1;
13+
14+
int dfs(int node, const std::vector<std::vector<int> > & adjList)
15+
{
16+
if (vis[node] == cur_test)
17+
{
18+
return 0;
19+
}
20+
21+
vis[node] = cur_test;
22+
int ans =w[node];
23+
for (int i=0;i<adjList[node].size(); i++)
24+
{
25+
int child = adjList[node][i];
26+
ans += dfs(child, adjList);
27+
}
28+
return ans;
29+
}
30+
31+
int main()
32+
{
33+
int u,v;
34+
cin>>u>>v;
35+
int t=1;
36+
while(!(u==0 && v==0)){
37+
adjlist = std::vector<std::vector<int> > (u+1, std::vector<int> ());
38+
adjlist_rev = std::vector<std::vector<int> > (u+1, std::vector<int> ());
39+
w = std::vector<int> (u+1, 0);
40+
int sum_w = 0;
41+
for (int i=1;i<=u;i++)
42+
{
43+
cin>>w[i];
44+
sum_w += w[i];
45+
}
46+
47+
while(v--)
48+
{
49+
int a,b;
50+
cin>>a>>b;
51+
adjlist[a].push_back(b);
52+
adjlist_rev[b].push_back(a);
53+
}
54+
int q;
55+
cin>>q;
56+
printf("Case #%d:\n", t);
57+
while(q--)
58+
{
59+
int node;
60+
cin>>node;
61+
int earliest = dfs(node, adjlist) - w[node];
62+
cur_test += 1;
63+
// cout<< dfs(node, adjlist_rev)<< endl;
64+
int last = sum_w - dfs(node, adjlist_rev);
65+
int ans = last - earliest;
66+
printf("%d\n", ans);
67+
// cout<<earliest<< " "<< last<<endl;
68+
cur_test += 1;
69+
}
70+
printf("\n");
71+
cin>>u>>v;
72+
t++;
73+
}
74+
return 0;
75+
}

0 commit comments

Comments
 (0)