๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Algorithm ๐Ÿง‘๐Ÿป‍๐Ÿ’ป457

[๋ฐฑ์ค€,c++] 17266๋ฒˆ - ์–ด๋‘์šด ๊ตด๋‹ค๋ฆฌ ๋ฌธ์ œ 17266๋ฒˆ: ์–ด๋‘์šด ๊ตด๋‹ค๋ฆฌ ์ธํ•˜๋Œ€ํ•™๊ต ํ›„๋ฌธ ๋’ค์ชฝ์—๋Š” ์–ด๋‘์šด ๊ตด๋‹ค๋ฆฌ๊ฐ€ ์žˆ๋‹ค. ๊ฒ์Ÿ์ด ์ƒ๋นˆ์ด๋Š” ๊ธธ์ด ์กฐ๊ธˆ์ด๋ผ๋„ ์–ด๋‘ก๋‹ค๋ฉด ๊ฐ€์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ๊ตด๋‹ค๋ฆฌ๋กœ ๊ฐ€๋ฉด ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋กœ ์ง‘๊นŒ์ง€ ๊ฐˆ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ตด๋‹ค๋ฆฌ๋Š” ์–ด๋‘ก๊ธฐ ๋•Œ๋ฌธ์— ๋น™ www.acmicpc.net ์ฝ”๋“œ #include #include #include using namespace std; int N, M; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cin>>N>>M; vector v(M); double height = 0; for(int i=0; i>v[i]; if(M==1) height = N; height = fmax(v.front(), (ceil(N-v.back()))); for(int i=.. 2022. 8. 18.
[๋ฐฑ์ค€,c++] 17521๋ฒˆ - Byte Coin ๋ฌธ์ œ 17521๋ฒˆ: Byte Coin ์ž…๋ ฅ์€ ํ‘œ์ค€์ž…๋ ฅ์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ค„์— ์š”์ผ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์–‘์˜ ์ •์ˆ˜ n๊ณผ ์ดˆ๊ธฐ ํ˜„๊ธˆ W(1 ≤ n ≤ 15, 1 ≤ W ≤ 100,000)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ n ๊ฐœ์˜ ์ค„์—์„œ, i๋ฒˆ์งธ ์ค„์€ i์ผ์˜ ๋ฐ”์ดํŠธ ์ฝ”์ธ ๊ฐ€๊ฒฉ์„ ๋‚˜ www.acmicpc.net ์ฝ”๋“œ #include #include #define ll long long using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); ll n, w; cin>>n>>w; ll coin = 0; vectorv(n+1); for(int i=0; i>v[i]; for(int i=0; i 2022. 8. 18.
[๋ฐฑ์ค€,c++] 11437๋ฒˆ - LCA ๋ฌธ์ œ 11437๋ฒˆ: LCA ์ฒซ์งธ ์ค„์— ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง€๊ณ , ๋‹ค์Œ N-1๊ฐœ ์ค„์—๋Š” ํŠธ๋ฆฌ ์ƒ์—์„œ ์—ฐ๊ฒฐ๋œ ๋‘ ์ •์ ์ด ์ฃผ์–ด์ง„๋‹ค. ๊ทธ ๋‹ค์Œ ์ค„์—๋Š” ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ณตํ†ต ์กฐ์ƒ์„ ์•Œ๊ณ ์‹ถ์€ ์Œ์˜ ๊ฐœ์ˆ˜ M์ด ์ฃผ์–ด์ง€๊ณ , ๋‹ค์Œ M๊ฐœ ์ค„์—๋Š” ์ • www.acmicpc.net ์ฝ”๋“œ #include #include using namespace std; int N, M; vectorgraph[50001]; int depth[50001]; int parent[50001]; bool visited[50001]; void dfs(int node, int _depth){ visited[node] = 1; depth[node] = _depth; for(auto next: graph[node]){ if(!visited[next]){ par.. 2022. 8. 17.
[๋ฐฑ์ค€,c++] 15900๋ฒˆ - ๋‚˜๋ฌด ํƒˆ์ถœ ๋ฌธ์ œ 15900๋ฒˆ: ๋‚˜๋ฌด ํƒˆ์ถœ ํ‰์†Œ์— ์‚ฌ์ด๊ฐ€ ์ข‹์ง€ ์•Š๋˜ ์„ฑ์›์ด์™€ ํ˜•์„์ด๊ฐ€ ๋“œ๋””์–ด ์ œ๋Œ€๋กœ ํ•œ ํŒ ๋ถ™์œผ๋ ค๊ณ  ํ•œ๋‹ค. ์„ฑ์›์ด์™€ ํ˜•์„์ด ๋‘˜๊ณผ ๋ชจ๋‘ ๋˜‘๊ฐ™์ด ์นœํ•œ ์ธ์„ญ์ด๊ฐ€ ๋Œ€๊ฒฐ ์ข…๋ชฉ์„ ์ •ํ•ด ๊ฐ€์ ธ์™”๋‹ค. ๋ฐ”๋กœ '๋‚˜๋ฌด ํƒˆ์ถœ' ์ด๋ผ๋Š” ๋ณด๋“œ๊ฒŒ www.acmicpc.net ์ฝ”๋“œ #include #include using namespace std; int N; vectorgraph[500001]; bool visited[500001]; int odd_height_cnt; void dfs(int node, int depth){ if(graph[node].size()==1 && node != 1){ // ๋ฆฌํ”„๋…ธ๋“œ์ผ ๋•Œ if(depth&1) odd_height_cnt++; return; } visited[node] = 1; for(a.. 2022. 8. 15.
[๋ฐฑ์ค€,c++] 1595๋ฒˆ - ๋ถ์ชฝ๋‚˜๋ผ์˜ ๋„๋กœ ๋ฌธ์ œ 1595๋ฒˆ: ๋ถ์ชฝ๋‚˜๋ผ์˜ ๋„๋กœ ์ž…๋ ฅ์€ ์—ฌ๋Ÿฌ์ค„์— ๊ฑธ์ณ ์ฃผ์–ด์ง„๋‹ค. ์ž…๋ ฅ์˜ ๊ฐ ์ค„์€ ์„ธ ๊ฐœ์˜ ์–‘์˜ ์ •์ˆ˜๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋Š”๋ฐ, ๊ฐ๊ฐ์€ ์ฐจ๋ก€๋Œ€๋กœ ์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ๋„์‹œ์˜ ๋ฒˆํ˜ธ์™€ ๋‘ ๋„์‹œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋„๋กœ์˜ ๊ธธ์ด๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๋ชจ๋“  ๋„๋กœ๋Š” www.acmicpc.net ์ฝ”๋“œ #include #include #include using namespace std; vectorgraph[10001]; bool visited[10001]; int max_cost, max_node; void dfs(int node, int cost){ if(cost>max_cost){ max_cost = cost; max_node = node; } visited[node] = 1; for(auto next: graph[node]){ if(!visit.. 2022. 8. 15.
[๋ฐฑ์ค€,c++] 14267๋ฒˆ - ํšŒ์‚ฌ ๋ฌธํ™”1 ๋ฌธ์ œ 14267๋ฒˆ: ํšŒ์‚ฌ ๋ฌธํ™” 1 ์˜์„ ํšŒ์‚ฌ์—๋Š” ๋งค์šฐ ์ข‹์€ ๋ฌธํ™”๊ฐ€ ์žˆ๋Š”๋ฐ, ๋ฐ”๋กœ ์ƒ์‚ฌ๊ฐ€ ์ง์† ๋ถ€ํ•˜๋ฅผ ์นญ์ฐฌํ•˜๋ฉด ๊ทธ ๋ถ€ํ•˜๊ฐ€ ๋ถ€ํ•˜์˜ ์ง์† ๋ถ€ํ•˜๋ฅผ ์—ฐ์‡„์ ์œผ๋กœ ์นญ์ฐฌํ•˜๋Š” ๋‚ด๋ฆฌ ์นญ์ฐฌ์ด ์žˆ๋‹ค. ์ฆ‰, ์ƒ์‚ฌ๊ฐ€ ํ•œ ์ง์† ๋ถ€ํ•˜๋ฅผ ์นญ์ฐฌํ•˜๋ฉด ๊ทธ ๋ถ€ํ•˜ www.acmicpc.net ์ฝ”๋“œ #include #include using namespace std; vectorgraph[100001]; int point[100001]; void add_point(int node, int _point){ point[node] += _point; for(auto next: graph[node]){ add_point(next, point[node]); } } int main(){ ios_base::sync_with_stdio(false); cin.t.. 2022. 8. 15.
[๋ฐฑ์ค€,c++] 19542๋ฒˆ - ์ „๋‹จ์ง€ ๋Œ๋ฆฌ๊ธฐ ๋ฌธ์ œ 19542๋ฒˆ: ์ „๋‹จ์ง€ ๋Œ๋ฆฌ๊ธฐ ํ˜„๋ฏผ์ด๋Š” ํŠธ๋ฆฌ ๋ชจ์–‘์˜ ๊ธธ ์œ„์—์„œ ์˜คํ† ๋ฐ”์ด๋ฅผ ํƒ€๊ณ  ์ „๋‹จ์ง€๋ฅผ ๋Œ๋ฆฌ๋ ค๊ณ  ํ•œ๋‹ค. ํ˜„๋ฏผ์ด์˜ ๋ชฉํ‘œ๋Š” ์ผ€๋‹ˆ์†Œํ”„ํŠธ์—์„œ ์ถœ๋ฐœํ•˜์—ฌ ๋ชจ๋“  ๋…ธ๋“œ์— ์ „๋‹จ์ง€๋ฅผ ๋Œ๋ฆฌ๊ณ , ๋‹ค์‹œ ์ผ€๋‹ˆ์†Œํ”„ํŠธ๋กœ ๋Œ์•„์˜ค๋Š” ๊ฒƒ์ด๋‹ค. ํ˜„๋ฏผ www.acmicpc.net ์ฝ”๋“œ #include #include #include using namespace std; vectorgraph[100001]; int depth[100001]; int N, S, D, ans = 0; int dfs(int node, int before){ for(auto next: graph[node]){ if(next != before){ depth[node] = max(depth[node], dfs(next, node)+1); // ๊ฐ ๋…ธ๋“œ์˜ ๊นŠ์ด ์ž์†๋“ค .. 2022. 8. 14.
[๋ฐฑ์ค€,c++] 2250๋ฒˆ - ํŠธ๋ฆฌ์˜ ๋†’์ด์™€ ๋„ˆ๋น„ ๋ฌธ์ œ 2250๋ฒˆ: ํŠธ๋ฆฌ์˜ ๋†’์ด์™€ ๋„ˆ๋น„ ์ฒซ์งธ ์ค„์— ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ N(1 ≤ N ≤ 10,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ N๊ฐœ์˜ ์ค„์—๋Š” ๊ฐ ์ค„๋งˆ๋‹ค ๋…ธ๋“œ ๋ฒˆํ˜ธ์™€ ํ•ด๋‹น ๋…ธ๋“œ์˜ ์™ผ์ชฝ ์ž์‹ ๋…ธ๋“œ์™€ ์˜ค๋ฅธ์ชฝ ์ž์‹ ๋…ธ๋“œ์˜ ๋ฒˆํ˜ธ๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. www.acmicpc.net ์ฝ”๋“œ #include #include #include #include using namespace std; vectorgraph[10001]; unordered_map cnt; vector height_arr[10001]; int N, root; int col[10001]; int seq = 1; int height = 1; void inorder(int node){ for(auto next: graph[node]){ if(next.fir.. 2022. 8. 14.
[๋ฐฑ์ค€,c++] 19637๋ฒˆ - IF๋ฌธ ์ข€ ๋Œ€์‹  ์จ์ค˜ ๋ฌธ์ œ 19637๋ฒˆ: IF๋ฌธ ์ข€ ๋Œ€์‹  ์จ์ค˜ ์ฒซ ๋ฒˆ์งธ ์ค„์—๋Š” ์นญํ˜ธ์˜ ๊ฐœ์ˆ˜ N (1 ≤ N ≤ 105)๊ณผ ์นญํ˜ธ๋ฅผ ์ถœ๋ ฅํ•ด์•ผ ํ•˜๋Š” ์บ๋ฆญํ„ฐ๋“ค์˜ ๊ฐœ์ˆ˜ M (1 ≤ M ≤ 105)์ด ๋นˆ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N, M ≤ 105) ๋‘ ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๊ฐ ์นญ www.acmicpc.net ์ฝ”๋“œ #include #include using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); int N, M; cin>>N>>M; multimap m; for(int i=0; i>a>>b; m.insert({b,a}); } for(int i=0; i>inp; coutsecond 2022. 8. 2.