분류 전체보기 (49)
KOI (26)
STL (1)
ACM (18)
Algorithm & Tip (1)
ColorSwitch 00 01 02
▣  [UVA] 104 Arbitrage - ACM - 2007/08/26 23:29

문제 원본

난이도 : MH

Background
//여전히 생략 =ㅁ=;;

The Problem
한 통화를 다른 통화로 거래하는데 있어서 이윤이 나도록 하는 것을 Arbitrage(재정 거래..(?)) 라고 한다. 예를 들어 U.S. 1달러로 0.7 파운드를 살수 있고 1파운드로 프랑스의 프랑 9.5를 살 수 있으며, 1 프랑으로 0.16의 달러를 살 수 있다고 할 때, 1달러를 가지고 거래를 하면 1 x 0.7 x 9.5 x 0.16 = 1.064 달러로 6.4%이윤이 남는다.

당신은 이윤이 남는 방법 중 가장 짧은 길이를 찾아라.

The Input ( 해석이 도저히 안 되서 제 마음대로 쓸께요... 단 문제는 풀 수 있게 말입니다...)
하나의 테이블이 들어온다.
이 테이블에서 n번째 줄의 입력 값은 n을 제외한 입력 순서대로의 환율이다.
즉 첫번째 줄에는 2~n까지의 환율이 들어오는 것이고
두번째 줄에는 1, 3~n까지의 환율이 들어오는 것이다.
n의 제한은 20까지이다.

The Output
이윤이 1%이상 남는 것을 출력해야되며, 이윤이 남는 방법 중 가장 짧은 길이를 출력한다.
이윤이 1%이상 남는 것이 없다면
no arbitrage sequence exists
을 출력하라.

Sample Input

3
1.2 .89
.88 5.1
1.1 0.15
4
3.1    0.0023    0.35
0.21   0.00353   8.13
200    180.559   10.339
2.11   0.089     0.06111
2
2.0
0.45

Sample Output

1 2 1
1 2 4 1
no arbitrage sequence exists

Solution


Source


이올린에 북마크하기(0) 이올린에 추천하기(0)
TAG C/C++, uva
Trackback Address :: http://arubirate.tistory.com/trackback/118 관련글 쓰기
  1. BlogIcon 자유치 2007/09/22 21:20 수정/삭제 댓글에댓글달기

    3차원 플로이드 케 압박 -ㅅ-

  2. BlogIcon babe fuck love 2008/03/13 06:07 수정/삭제 댓글에댓글달기

    우수한과 아주 도움이 되는!

  3. Neon 2008/11/10 10:07 수정/삭제 댓글에댓글달기

    matrix multiply + 이분검색을 사용하면 매우 쉽습니다. M, M^2, M^4, M^8, ... 을 검색하다가... 검색 범위를 반으로 줄여서 다시 검색하고... 등등등.









▣  [UVA] 103 Stacking Boxes - ACM - 2007/08/22 22:45

문제 원본

난이도 : M

Background
//해석이 잘 안되는 관계로 생략을...(문제 푸는데에는 지장이 없습니다.)

The problem
n차원으로 이루어진 박스가 주어집니다. 2차원으로 이루어진 박스 (2,3)은 길이가 2와 너비가 3인 박스이다. 3차원 박스인 (4,8,9)는 4x8x9 (길이,넓이 그리고 높이)를 나타낸다. 그리고 6차원 박스인 (4,5,6,7,8,9) 명확하진 않지만..뭐 계산 할 수 있다. (?)

이 문제에서 너는 n차원의 박스들의 특성을 분석할 것이다. 너는 가장 많이 포갤 수 있는 상자들을 결정해야 한다. (상자 안에 상자를 넣는 것 같습니다.)

박스를 포개는 방법은 각 박스를 구성하는 요소들이 한 박스가 다른 박스보다 전부 작다면 포갤 수 있다. (이 조건을 만족시키기 위해 각 박스들을 구성하는 요소들을 재 배열 할 수 있다.)

예를 들어 박스 D가 (2,6)이고 E가 (7,3)이라면 ... 이 상태로는 포갤 수 없겠지만 D를 (6,2)로 바꾸거나 E를 (3,7)로 바꾼다면 박스를 포갤 수 있다. 또 박스 D가 (9,5,7,3)이고 E가 (10,4,6,8)이라면 D를 (9,3,5,7)로 재 배열하면 포갤 수 있다.

이럴 때 가장 많은 박스들이 포갠 수와 가장 안에 있는 박스들 순서대로 출력한다.

input
첫줄에 박스들의 수와 차원이 주워진 후
그 다음 줄 n개(박스의 수)만큼 m(차원)의 숫자가 주어진다.

n <= 30 이고 m <= 10입니다.

output
가장 많은 박스들이 포갠 수와 가장 안에 있는 박스들 순서대로 출력한다.

Sample Input
5 2
3 7
8 10
5 2
9 11
21 18
8 6
5 2 20 1 30 10
23 15 7 9 11 3
40 50 34 24 14 4
9 10 11 12 13 14
31 4 18 8 27 17
44 32 13 19 41 19
1 2 3 4 5 6
80 37 47 18 21 9

Sample Output
5
3 1 2 4 5
4
7 2 5 6

Solution


Source


이올린에 북마크하기(0) 이올린에 추천하기(0)
TAG C/C++, uva
Trackback Address :: http://arubirate.tistory.com/trackback/116 관련글 쓰기
  1. 자갈치 2008/01/30 01:22 수정/삭제 댓글에댓글달기

    횽 해석되어있는거 찾다가 형꺼 봣는데

    정렬되어 있는 값 비교할 때 하나하나 비교할 필요 없이 min 값이랑 max값만 비교해주는게 더 효율적임

  2. 자갈치 2008/01/30 01:45 수정/삭제 댓글에댓글달기

    이거 저렇게 복잡하게 짤 필요 없고 min값 기준으로 소트한 다음에 max값으로 LIS돌리면 좀 쉽게 풀려

    이제 문제 보니까 대충 감이 와서 짜는데 별로 걸리지도 않더군 ㅎㅎ

  3. BlogIcon gay nude twin 2008/03/13 05:46 수정/삭제 댓글에댓글달기

    우수한과 아주 도움이 되는!










데렌님의 부탁으로 빅넘계산을 짜보았는데요...

아쉽게도 부호도 안되고 ... 단순히 더하기만됩니다...ㅜㅡ

아 그리고 이런 빅넘문제로는 acm.pku.edu.cn에 있는 2756번 autumn of genus...를 추천합니다.

( http://acm.pku.edu.cn/JudgeOnline/problem?id=2756 )
소스는 차차 수정하겠습니다 . (삽입이 좀 더 확실한 표현일지도...)

Source


이올린에 북마크하기(0) 이올린에 추천하기(0)
Trackback Address :: http://arubirate.tistory.com/trackback/115 관련글 쓰기
  1. BlogIcon 자유치 2007/07/24 14:22 수정/삭제 댓글에댓글달기

    아아..

    나누기 빼고 다짠 소스 있는데..

    나누기는 진짜 절망 -┌;;

    대체 어떻게 짜는거야..

    • BlogIcon [Aruray]Mirgon 2007/07/25 10:09 수정/삭제

      밑의 그 값을 하나하나씩 늘려가면서 옆의 수보다 커지면 나누는데 그때 뭐 1~9까지 수중 하나 곱해서 빼는거지...이게 이론적으론 쉬운데 'ㅁ';;................

  2. BlogIcon 데렌 2007/07/28 21:01 수정/삭제 댓글에댓글달기

    오옷 감사합니다 +ㅅ+

  3. BlogIcon xxx milf rider 2008/03/13 05:38 수정/삭제 댓글에댓글달기

    많은 감사 우수한 위치! 나는 너의 웹사이트를 사랑한다!









▣  [UVA]102 Ecological Bin Packing - ACM - 2007/07/22 00:13

문제 원본 ( http://acm.uva.es/p/v1/102.html )

난이도 : Low

병들을 재활용하기 위해선 색깔에 따라 분리해야 한다.
3가지 색이 있는데 갈색,초록색 그리고 투명한 색이 있다.
문제는 3개의 통이 있는데 각각의 통에 갈색, 초록색 그리고 투명한 색의 병들이 섞여있다.
그래서 통 각각에 한 가지색만 있도록 분리를 해야하는데
(한번에 하나의 병만 옮길 수 있으며 하나의 병을 옮기는데 거리에 상관없이 이동횟수 하나가 증가한다.)
이 때 최소한의 이동횟수로 병들을 분리하는 것이 문제이다.

input
정수 9개가 들어오는데
처음 정수 3개는 처음 통에 있는 갈색, 초록색, 투명한색의 병 갯수고
그 다음 정수 3개는 2번째 통에 있는 갈색, 초록색, 투명한색의 병 갯수이며,
마지막으로 정수 3개는 3번째 통에 있는 갈색, 초록색, 투명한색의 병 갯수이다.

output
각각의 경우에 대해서 각 통에있는 병의 색깔과 답을 구한다.
만약 답이 여러개인 경우 알파뱃순으로 빠른 것을 출력한다.
(답이 2^31을 넘어가는 것은 없다.)

Solution


Source


이올린에 북마크하기(0) 이올린에 추천하기(0)
Trackback Address :: http://arubirate.tistory.com/trackback/114 관련글 쓰기
  1. 자갈치 2008/01/30 01:42 수정/삭제 댓글에댓글달기

    문제 보자 마자 풀이법이 생각나는데 설마 이렇게 쉬울까 하고 고민하게 만드는 대표적인 케이스









▣  [UVA]101, [PKU]1208 The Blocks Problem - ACM - 2007/07/18 23:57

문제 원본 ( uva : http://acm.uva.es/p/v1/101.html )
              ( pku : http://acm.pku.edu.cn/JudgeOnline/problem?id=1208 )

난이도 : Low

background 생략...

Problem...

N개의 블록들이 주어지는데 각각의 번호는 0~N-1까지의 번호를 부여 받습니다.
그리고 각각의 명령어들이 들어옵니다...

move a onto b은
a블록을 b블록 위에 올려놓는데 이 때 a블록과 b블록 위에 있는 모든 블록들을 원래 위치에다가 올려놓은 뒤에 하라는 것이고...

move a over b은
a블록을 b블록을 포함하고 있는 블록들의 위에 올려놓는데 이 때 a블록 위에 있는 모든 블록들을 원래 위치에다가 올려놓은뒤 행합니다.

pile a onto b
a블록과 a블록 위에 쌓여져 있는 블록들을 모두 b블록위에 올려놓는데 이 때 b블록 위에있는 모든 블록들을 원래 위치에 올려놓은뒤 합니다.

pile a over b
a블록과 a블록 위에 쌓여져 있는 블록들을 모두 b블록 위에 올려놓습니다.

quit
종료합니다.

그리고 만약 어떤 명령이 들어왔을때 a,b가 같거나 a,b가 같은 블록더미에 쌓여있을 때에는 무시합니다.

input
n제한은 0< n < 25이고 별다른 것은 없습니다... 단지 양수정도가 들어온다는 거 더?;
output
그다지...-_-;;출력형식을 보면 알 수 있을거라고 봅니다 ㄷㄷ...

Solution



Source

이올린에 북마크하기(0) 이올린에 추천하기(0)
Trackback Address :: http://arubirate.tistory.com/trackback/113 관련글 쓰기
  1. 자갈치 2008/01/30 01:43 수정/삭제 댓글에댓글달기

    문제 이해가 어려운 케이스

  2. BlogIcon chick e fil 2008/03/13 05:40 수정/삭제 댓글에댓글달기

    나의 친구는 너의 위치의 현재 팬이 되었다!










articles
recent replies
recent trackbacks
notice
Admin : New post
BLOG main image
Independent Programming Blog
1 16,015
  rss skin by  m22m
tistory 티스토리 가입하기!