반응형

프로그래밍 알고리즘 81

[정올 2468] 비밀번호

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1729&sca=99&sfl=wr_hit&stx=2468 JUNGOL www.jungol.co.kr #include typedef unsigned long long u64; u64 A, little, big; /* -큰 수 찾기 낮은 자리 비트에서 높은 자리로 이동하며 01인 경우를 찾고 01을 10으로 바꾼 후에, 바꾼 10보다 낮은 자리에 있는 1인 비트를 가장 오른쪽으로 몰아서 배치한다. 예를 들어 8비트 정수 01011100이 주어진 경우 01을 찾으면 ->01'01'1100 10으로 바꾸면 ->01'10'1100 (숫자가 점점 커지면서 1의개수가 같아지려면 자리올림이 일어나야 함) 10보다 ..

[정올 2467] 비용

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1728&sca=99&sfl=wr_hit&stx=2467 JUNGOL www.jungol.co.kr /* 비용 union find 가장 큰 비용을 가지는 w는, 해당 시작점 s와 끝점 e의 비용을 구할 때만 쓰이고 나머지 경로에서는 안 쓰인다. 즉 가장 큰 비용 w는 Cost(s,e) 딱 한 번에서만 쓰인다. 가장 큰 w가 쓰인다는 것은 Cost가 모든 w의 합이라는 뜻이다. 가장 큰 w를 쓰고 나면, 이제 w는 짤릴 일이 없으므로 w로 연결된 s, e를 하나의 점으로 여길 수 있다. 그렇다면, s,e가 아닌 점 a에 대해 Cost(a,s) == Cost(a,e)가 된다. 즉 각개격파가 되는 것이며 ..

[정올 2261] 경로 찾기

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&code=2261 JUNGOL www.jungol.co.kr #include //#define DEBUG const int INF = 99999999; int N, K, S, D, s, e; bool visited[1010]; //가장 짧은 해밍 거리를 구해야 하는 것이므로, 한 번 해밍거리 1로 push된 놈을 또 방문하면 안 된다. char arr[1010][32]; struct P { int idx; //마지막 방문지점 int cnt; //방문 히스토리 개수 short* hist; void operator=(const P& from) { idx = from.idx; cnt = from.cnt; for (i..

[정올 2194] 요플레공장

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&code=2194 JUNGOL www.jungol.co.kr #include int C[10010], Y[10010], S, N; unsigned long long cost; int main(void) { //freopen("input.txt", "r", stdin); scanf("%d %d", &N, &S); for (int i = 0; i < N; i++) scanf("%d %d", C + i, Y + i); //S는 리터당 1주일 보관 비용, C는 우유가격, Y는 그 주 필요한 우유 for (int i = 0, j; i < N; i++) { //Y 기준 int mp = 5555, com = 0; for (..

반응형