최대유량 문제에서 정점 분할
·
PS/Algorithm
1. 정점이 용량을 갖는 유량 그래프최대유량 문제에서는 간선으로 용량 정보가 주어진다. 근데 만약 정점에 용량이 있다면? 음의 유량 처리 과정에 문제가 생긴다. 포드 풀커슨의 방법에서 가장 핵심적인 아이디어는 음의 유량을 만들어 기존 유량을 우회시키는 테크닉이다.정점 중심으로 생각해보면 정점 3은 나가는 방향의 간선 용량의 총합인 3의 용량을 갖는다고 할 수 있다. 1→3의 유량 2를 우회시키면 s-2-3-5-t에 2의 유량을 흘려보낼 수 있다. 여기서 유량 우회가 가능한 이유는 유량을 간선 정보로 관리하고 있기 때문이다. u-v 간선 용량을 capa[u][v], u-v 간선의 현재 유량을 flow[u][v] 라고 표현하면 그래프 자체에서 u와 v의 순서로 간선의 방향 정보를 모두 관리하고 있는 셈이다...
9576: 책 나눠주기(이분매칭)
·
PS/BOJ
시간 제한메모리 제한2초256MB문제백준이는 방 청소를 하면서 필요 없는 전공 서적을 사람들에게 나눠주려고 한다. 나눠줄 책을 모아보니 총 N권이었다. 책이 너무 많기 때문에 백준이는 책을 구분하기 위해 각각 1부터 N까지의 정수 번호를 중복되지 않게 매겨 두었다. 조사를 해 보니 책을 원하는 서강대학교 학부생이 총 M명이었다. 백준이는 이 M명에게 신청서에 두 정수 a, b (1 ≤ a ≤ b ≤ N)를 적어 내라고 했다. 그러면 백준이는 책 번호가 a 이상 b 이하인 책 중 남아있는 책 한 권을 골라 그 학생에게 준다. 만약 a번부터 b번까지의 모든 책을 이미 다른 학생에게 주고 없다면 그 학생에게는 책을 주지 않는다. 백준이가 책을 줄 수 있는 최대 학생 수를 구하시오. 입력첫째 줄에 테스트 케이스..
14750: Jerry and Tom(선분 교차 판정, 최대유량, 이분매칭)
·
PS/BOJ
시간 제한메모리 제한1초512MB문제https://www.acmicpc.net/problem/14750풀이다양한 알고리즘이 혼합된 문제다. 하지만 기본 개념 적용만 잘하면 까다로운 부분은 없어서 어렵지 않게 해결 할 수 있는 문제!..(맞나?) 문제에서 요구하는 것은 쥐구멍에 들어갈 수 있는 최대 쥐의 마릿 수다. 쥐는 쥐구멍까지 이어지는 일직선 상에 다른 벽과의 어떤 접점도 없어야만 해당 쥐구멍에 들어갈 수 있고, 각 쥐구멍에는 도망갈 수 있는 쥐의 수 제한이 있다. 우선은 쥐가 어떤 쥐구멍으로 도망갈 수 있는지 확인해야 한다.  1. 선분 교차 판정으로 쥐와 쥐구멍의 연결 여부 확인쥐의 위치를 m, 쥐구멍의 위치를 h, 벽의 양 끝 점을 a, b라고 하면 아래 그림과 같은 상황에서 ccw 값을 얻을 ..
와와와 솔브닥 1000솔브
·
기타
와와와우 예아아아
아 진짜 언제쯤 대회 전참 가능한거냐
·
기타
A 패널티 16먹은 것도 빡치지만 일 때문에 제대로 참여 못하고 맨날 패널티 퍽퍽먹는거 너무 싫다D풀고 E푸는데 10분 밖에 안걸렸는데F도 7분만에 코드 다 짰는데 다 짜고 제출 누르니까 404 뜨네 와아ㅏ아아가악아가각대학생 때 할껄...1!! 대학생 때 할껄...1!! 대학생 때 할껄...1!! 대학생 때 할껄...1!! 대학생 때 할껄...1!! 대학생 때 할껄...1!! 대학생 때 할껄...1!! 대학생 때 할껄...1!! 대학생 때 할껄...1!! 대학생 때 할껄...1!! 대학생 때 할껄...1!! 대학생 때 할껄...1!!
13161: 분단의 슬픔(최대유량-최소컷 정리, mfmc)
·
PS/BOJ
시간 제한메모리 제한1초512MB문제UCPC에는 N명의 사람이 있다. 먼 옛날 쇼킹핫치킨에 대한 논쟁에서 시작된 이념의 대립으로 UCPC에는 kriii를 따르는 쇼킹핫진보 진영 A와, august14를 따르는 쇼킹핫보수 진영 B의 두 진영이 존재한다. 모든 사람은 둘 중 한 진영에 소속되어 있으며, 두 진영에 동시에 들어가는 것은 불가능하다. i번 사람과 j번 사람에 대해 서로 다른 진영에 들어가게 될 경우 슬픈 정도 w[i, j]가 주어진다. 일부 사람들은 쇼킹핫에 관한 자신의 철학이 강해 무조건 A진영에 들어가는 사람도 있고, 무조건 B진영에 들어가는 사람도 있다. 물론 치킨은 무엇이든 옳으므로 두 진영 어디에 가든 상관없는 사람도 있다. N명의 사람들이 적절히 두 진영에 나누어 들어갈 때, 슬픔 정..
최대 유량(Network Flow), 디닉(Dinic's) 알고리즘
·
PS/Algorithm
지난 글에 이어서 더 빠른 최대 유량 알고리즘인 디닉 알고리즘.에드몬즈-카프는 bfs를 활용하며 O(VE2) 안에 문제를 해결할 수 있다. 간선에 대한 지수시간이기 때문에 정점의 수와 무관하게 간선이 여러 개라면 bfs에서 너무 많은 시간을 소모하게 된다. 하지만 디닉은 정점에 대한 지수시간 O(V2E) 안에 문제를 해결한다.디닉 알고리즘의 순서는 이렇다.유량 그래프 = G, source = s, sink = t1. G의 레벨그래프 L을 만든다.  a. s로부터 t까지의 bfs로 깊이는 각 정점의 레벨이 된다.  b. t의 레벨이 정의되지 않으면 모든 작업을 멈춘다.2. L에서 다음 작업을 반복한다.  a. dfs로 s→t의 증가경로를 찾는다.  b. 증가경로의 최소 컷을 찾아 경로에 유량을 생성한다.3..
최대 유량(Network Flow), 에드몬즈-카프(Edmonds-Karp) 알고리즘
·
PS/Algorithm
1. 최대 유량 문제정점 간에 흐를 수 있는 양이 있을 때 그 최대치를 간선으로 표현하면 하나의 방향 그래프가 나온다. 두 정점 사이에 흐를 수 있는 최대 양을 용량(capacity), 두 정점 사이에 흐르고 있는 양을 유량(flow), 현재 남아있는 용량을 잔여용량(residual)이라고 한다. 예를 들어 파주에서 안양에 이르는 수도권 서부의 도로 교통용량을 대충 다음과 같이 표현할 수 있다.(실제로 이런 상황에다가 써먹지는 않는 듯 하다.)그렇다면 이 그래프 외의 다른 연결을 전부 무시하고 모든 도로가 전부 비어있다고 가정했을 때 파주에서 안양까지 이어지는 도로 교통용량의 최대치는 얼마일까?자유로에서 서부간선도로를 타면 파주-일산-고양-서울-안양으로 이어진다. 이 경로에 따르면 일산~고양 구간이 용량..
31782: 저체온증(너비우선탐색)
·
PS/BOJ
시간 제한메모리 제한2초1024MB문제사람들이 N행 M열의 직사각형 모양으로 모여 있다. 초기에 각각의 사람의 상태는 정상 체온이거나 저체온증이고, 낮과 밤을 지나면서 사람들의 상태가 변화한다.낮은 따뜻하기 때문에 저체온증인 사람이 정상 체온으로 회복할 수 있는 기회이다. 어떤 사람과 사방으로 인접한 두 명 이상의 사람이 정상 체온이라면 따뜻한 체온을 나눠 받아 저체온증에서 정상 체온으로 회복된다. 어떤 사람이 정상 체온으로 회복된 후에는 같은 방법으로 인접한 다른 사람들이 정상 체온으로 회복할 수 있으며, 이러한 체온 회복 과정은 낮 사이에 충분히 많이 반복될 수 있다.밤은 춥기 때문에 정상 체온인 사람들이 저체온증에 걸릴 수 있다. 단, 밤 사이에 새롭게 저체온증에 걸리는 사람은 K명 이하이다.낮과 ..
포켓몬 픽셀아트 v2.1 업데이트 후기
·
C#
1년 반의 세월을 건너 드디어 다음 버전으로 업데이트를 하게 되었다. 실용성을 갖고 지속적으로 활용될 수 있는 프로그램을 작성, 관리하는 일이 "개발"이라고 한다면 내가 해오는 일들은 개발이라고 보기 어렵다. 돈을 받고 한 일도 아니고 댓가를 바라고 있는 것도 아니지만 비유해보자면 자동차 회사가 차를 만들고 수십년이 지나도록 신형 차를 만들지 않는 것과 똑같다. 나는 프로그램을 만들었고 방치했다. 물론 바빠서도 큰 이유였지만 이걸 업데이트 하는 일이 귀찮았다는 사실을 부정할 수 없다. 그리고 변호하자면 어려운 과정이 있었다. 1. 주석 달기지난 작업에 주석을 충분히 달아놓지 않은 것은 굉장히 멍청한 짓이었다. 1000줄 꼬박 넘는 작은 규모의 프로그램이긴 하지만 정식적인 개발 경험이 없어서 규격화되지 않..
23829: 인문예술탐사주간(누적합, 이분탐색)
·
PS/BOJ
23829번: 인문예술탐사주간 태영이는 SASA의 축제라고 불리는 "인문예술탐사주간"을 보내게 되었다. "인문예술탐사주간"을 맞이하여 세종호수공원에 가게 된 태영이는 아름다운 경치에 놀라움을 금치 못했다. 세종호수공원 www.acmicpc.net 만약 태영이의 위치가 0이라면 사진의 점수는 모든 나무의 위치 총합이 된다. 태영이의 위치가 X일 때, X 오른쪽 나무들로 얻는 점수는 각 나무의 위치에서 X를 뺀 값의 총 합이 된다. X 왼쪽 나무들의 점수는 X에서 나무의 위치를 뺀 값의 총합이 된다. 결국 점수는 특정 위치로부터의 누적합이 되는 셈이다. i번째 나무까지의 누적합을 prepix[i]에 저장한다. 그림으로 보면 아래와 같다. 태영이가 13에 있다면 a와 b는 이렇게 그려볼 수 있다. 파란색이 빼..
4384: 공평하게 팀 나누기(배낭문제)
·
PS/BOJ
시간 제한 메모리 제한 1초 128MB 문제 학생회장을 하고 있는 상근이는 이번 학교 축제 행사로 학우들간의 친밀감을 돈독히 하고자 줄다리기를 하려 한다. 하지만 이 줄다리기에 형평성을 최대한 고려하기위해 두 팀간의 사람 수 차이를 1 이하로 하려하며, 두 팀간의 몸무게의 차이가 최소화되도록 하고자 한다. 이때 상근이가 나누려 하는 두 팀의 몸무게를 각각 출력 하시오. 입력 가장 첫 번째 줄에 줄다리기를 하기 원하는 총 인원의 수(1 ≤ N ≤ 100)가 주어진다. 이후 N개의 줄에 줄다라기에 참여하기 원하는 사람의 몸무게(1 ≤ K ≤ 450)가 주어진다. 출력 두팀의 몸무게를 작은 순서대로 순차적으로 출력한다. 풀이 N명이 주어졌을 때, 한 팀에 있을 수 있는 최대 인원은 N//2명 또는 N//2+1..
전라남도교육지원청
맞았습니다!!