기금넷 공식사이트 - 주식 지식 - 두 사람의 궁합 정도, 외모가 어울리는 정도

두 사람의 궁합 정도, 외모가 어울리는 정도

두 사람의 매칭 정도에 대해 이야기하면 두 사람의 외모가 얼마나 잘 어울리는지 묻는 사람도 있다는 것은 모두가 아는 사실이다. 또한, 어울리는 사진의 정의에 대해 묻고 싶어하는 사람도 있다. 무슨 일인지 알아? 실제로 두 사람의 외모 매칭 정도를 테스트하는 방법이 여러분께 도움이 되었으면 좋겠습니다! 두 사람의 궁합 정도

1. 두 사람의 궁합 정도 : 두 사람의 외모의 궁합 정도

남자와 여자의 외모는 참고해서는 안 된다 외국여자와 잘 어울리는 두 사람의 특징은 무엇일까.

2. 두 사람의 매칭 정도: 매칭 그래프의 정의

M명의 근로자 x1, x2,..., xm과 N개의 일자리 y1, y2, ..가 있다고 가정합니다. ., yn은 각 작업자가 최대 하나의 작업을 수행할 수 있고 각 작업에 최대 한 명의 작업자를 할당할 수 있다고 규정합니다. 다양한 이유로 인해 각 근로자는 이러한 작업 중 하나 또는 몇 가지에만 자격을 부여받을 수 있습니다. 가능한 한 많은 근로자가 자격을 갖춘 직무에 할당될 수 있도록 분배를 어떻게 수행해야 하는지 물어보십시오. 이 문제를 인력배치 문제라고 한다. 어떤 사람들은 완벽하게 일치한다고 느끼는 이유는 무엇입니까?

인력 배치 문제는 그래프의 언어로 표현될 수 있다. X={x1,x2,…,xm}, Y={y1,y2,…,yn}이라고 놓고 다음과 같이 이분 그래프 G=(X,Y,E)를 구성합니다. 두 사람이 서로 다르다는 것은 무엇을 의미합니까? 잘 어울린다.

1

헝가리 알고리즘은 일반적으로 일치에 사용됩니다. 기본 아이디어는 X의 선택된 M 불포화 지점에서 시작하여 알려진 일치 M에 대해 레이블 지정 방법을 사용하여 M 증가 체인을 찾는 것입니다. M 증가 체인이 발견되면 M이 증가될 수 있습니다. 그렇지 않으면 X의 다른 M 불포화 지점에서 시작하여 계속해서 M 증가 체인을 찾습니다. G에 증대체인이 없을 때까지 이 과정을 반복하고, 이때 일치하는 것이 G의 일치이다. 이 알고리즘은 종종 헝가리 알고리즘이라고 불리우는데, 여기에 소개된 증강 사슬을 찾는 라벨링 방법은 헝가리 치과학자 Egerváry가 처음 제안했기 때문입니다. 두 사람의 연애 매칭 지수를 측정해 보세요.

이 알고리즘을 이해하고 나면 인력 배치 문제에 대한 솔루션을 작성하는 것은 어렵지 않습니다. 프로그램을 제공하기 전에 몇 가지 가정을 해보겠습니다. 두 사람이 일치한다는 것은 무엇을 의미합니까?

단순화를 위해 근로자 수는 일자리 수와 같다고 가정합니다. 즉, N=M이고, 여기서 N은 |X|로도 간주될 수 있습니다. |Y| 커플의 호환성을 측정합니다.

데이터는 input.txt 파일에서 먼저 N과 |E|로 읽혀지며 다음 |E| 줄에는 각 줄에 두 개의 숫자(I, J)가 있어 작업자가 할 수 있음을 나타냅니다. 작업 J, 즉 이분 그래프의 Edge xiyj입니다.

결과는 output.txt 파일로 출력됩니다. 행은 일치하는 숫자 s입니다. 다음 s 행에는 각 행에 두 개의 숫자(I, J)가 있으며 이는 작업자 I가 작업을 수행하도록 지정되었음을 나타냅니다. 작업 J, 즉 일치하는 가장자리 xiyj입니다. 위의 인력배치 문제에 대해 근로자의 업무 효율성도 함께 고려한다면 소위 배분 문제가 제기될 수 있다. 전체적인 효율성을 달성하려면 어떻게 배분해야 하는가? 찰떡궁합인 것 같은 두 사람.

이전 섹션과 동일하게 이분 그래프 G를 구성할 수 있습니다. yi 작업을 수행하는 작업자 xi의 효율성 wij가 G의 가장자리 xiyi의 가중치로 간주되면 할당 문제는 a와 같습니다. 가중 이분 그래프 G에서 완전한 일치를 찾습니다.

선형 계획법에 대한 지식을 바탕으로 이분 그래프 G의 가중치 매칭을 찾으려면 헝가리 알고리즘을 기반으로 몇 가지 개선 사항만 필요합니다. 기본 아이디어는 이분 그래프의 꼭지점에 번호를 매긴 다음 해당 숫자를 기반으로 새로운 이분 그래프 G'를 구성하고 G의 가중치 일치를 G'의 완벽한 일치로 변환하는 것입니다. 커플 사진은 호환성을 측정합니다.

다음 정리는 이 알고리즘의 이론적 기초입니다.

정리: M이 가중치 그래프(음이 아닌 가중치)의 완전한 이분 그래프 G = (V, E)와 완벽하게 일치한다고 가정합니다. 여기서 M은 E의 하위 집합입니다. M이 G의 임의의 완벽한 일치 M?에 대해 M의 간선 가중치의 합이 M?의 간선 가중치의 합보다 크면 M은 G의 가중 일치입니다. 두 사람의 완벽한 조화.

아래에는 가중치 매칭 절차가 나와 있습니다.

첫 번째 입력 파일은 N과 |E|입니다. 다음 |E| 줄에는 각 줄에 세 개의 숫자(I, J, W)가 있으며 이는 J 작업을 수행하는 작업자 I의 효율성이 W임을 나타냅니다. 프로그램 결과에는 각 근로자의 선택과 총 이익이 포함됩니다. 다른 가정에 대해서는 이전 섹션의 알고리즘 가정을 참조하세요. 이 계산 문제: FJOI-봉투 문제

존 씨는 밤에 n개의 편지를 썼고, 이에 따라 편지를 포장하고 보낼 준비를 하기 위해 n개의 봉투를 썼습니다. 그러나 다음날 John의 아들 SmallJohn은 봉투에서 n개의 편지를 모두 꺼냈습니다. 불행하게도 SmallJohn은 편지를 봉투에 제대로 다시 넣을 수 없었습니다. 객체 매칭 테스트.

SmallJohn이 제공한 n개의 문자에 1, 2,..., n 순서로 번호를 매기고 n 봉투에도 1, 2,..., n 순서로 번호를 매깁니다. SmallJohn이 일련의 정보를 제공할 수 있다고 가정합니다. i번째 문자는 확실히 봉투 j에 포함되어 있지 않습니다. SmallJohn이 가능한 한 많은 편지를 봉투에 올바르게 넣을 수 있도록 SmallJohn을 프로그래밍하십시오. 여기서 n ≤. 두 사람의 궁합을 테스트해보세요.

예를 들어, 4개의 편지가 있는데, 편지는 봉투 1, 2, 3에 포장되지 않았고, 두 번째 편지는 봉투 2, 3에 포장되지 않았다고 판단할 수 있습니다. 편지는 봉투 4에, 두 번째 편지는 봉투 1에 들어 있습니다. 그러나 이러한 조건으로는 세 번째와 네 번째 문자를 찾는 데 충분하지 않습니다. 이 문제를 읽어보니 초등학교 수학 경시대회의 논리적 추리 문제와 똑같다는 생각이 들었습니다. 논리적 추리 문제는 대개 테이블 방식을 사용합니다.

이전 예를 예로 들면 조건에 따라 다음 정보를 얻을 수 있습니다.

사랑 궁합 테스트 이름.

1×××둘이 잘 어울린다는 말은 무슨 뜻인가요?

2××Table 1

각 행과 열에 √가 하나만 있어야 하므로 편지가 봉투 4에 포장되어 있다고 판단할 수 있으므로 다음을 얻을 수 있습니다.

1×××√사랑 궁합 테스트는 무료입니다.

2×××4×커플의 궁합을 테스트하는 방법.

그러면 두 번째 줄에 ×가 3개 있는 것으로 나타나 나머지는 √가 되어야 하므로 봉투 1: 부부 궁합 테스트에 두 번째 글자가 들어 있다고 결론을 내릴 수 있다. .

이름이 잘 일치하는지 테스트해 보세요.

1×××√

2√×××

이제 3행과 4행 모두 ×가 2개밖에 없어서 판별할 수 없습니다. 그 봉투에.

이런 식으로 우리는 예비 알고리즘을 얻습니다. 프로그램에서 2차원 테이블을 만듭니다. 먼저, 행(열)이 없으면 n-1 ×s가 있습니다. , 그렇지 않으면 나머지 빈칸을 √로 채우고, √가 채워진 행(열)의 다른 위치에 ×를 채웁니다.

이 방법은 생각하기 쉽지만 사랑의 궁합을 테스트하는 등 이 방법에 대한 반례도 있습니다.

차트 3은 무료 커플 매칭 테스트의 반례이다.

그림의 위쪽 절반에 있는 꼭지점은 "문자"를 나타내고 아래쪽 절반에 있는 꼭지점은 "봉투"를 나타냅니다. 문자 i가 봉투 j에 배치될 수 있으면 문자 사이에 선이 있습니다. i와 봉투 j. 각 꼭지점의 차수가 2보다 크거나 같기 때문에, 즉 각 행과 열에 최소 2개의 공백이 있으므로 이전 알고리즘에서는 어떠한 추론도 수행할 수 없지만 예를 들어 문자의 경우는 그렇지 않습니다. 중간은 중간 봉투에만 배치할 수 있습니다. 그 사람과 내가 함께 있을 수 있는지 볼까요?

우리가 다른 방법을 찾아야 하는 것은 바로 이 반례입니다. 더 자세히 분석해 보면 편지와 봉투의 관계가 일대일 대응임을 알 수 있습니다. 이는 편지는 하나의 봉투에만 넣을 수 있고 봉투에는 하나의 문자만 담을 수 있기 때문입니다. 정보학적인 관점에서 볼 때, 이러한 일대일 대응은 이분 그래프의 매칭 관계로도 간주될 수 있습니다.

i가 봉투 j에 배치될 수 있고 가장자리 xiyj가 G에 존재한다고 가정합니다. 이런 식으로 어떤 문자 분할도 그래프 G와 완벽하게 일치하는 것으로 간주될 수 있습니다.

예를 들어, 위 그림에는 다음 두 개의 완벽한 일치만 있습니다.

차트 4의 모든 완벽한 일치

중간 일치 가장자리가 두 완벽한 일치에 나타나기 때문에 우리는 다음과 같이 생각합니다. 이 일치하는 가장자리는 "결정"됩니다. 즉, 이 가장자리가 나타내는 관계도 결정됩니다. G의 모든 완벽하게 일치하는 M에 대해 일치하는 모서리 xiyj가 있는 경우에만 문자 i가 봉투 j에 배치될 수 있다는 것을 쉽게 알 수 있습니다.

이로써 매칭 관점에서 새로운 모델을 확립하게 되었습니다. 그렇다면 이 모델을 어떻게 해결해야 할까요? 사랑의 호환성 계산.

물론 G의 완벽한 일치 항목을 모두 열거한 다음 해당 모서리의 교차점을 찾을 수는 없습니다. 이는 검색과 다르지 않습니다. 여기서는 이 모델에 대해 또 다른 작은 변환을 수행해야 합니다. "G의 모든 완벽하게 일치하는 M에 대해 일치하는 가장자리 xiyj가 존재합니다"라는 조건은 "그래프 G에 완벽하게 일치하는 경우, 그래프 G의 에지 xiyj에 의해 획득된 그래프 G'에는 완벽하게 일치하는 항목이 없습니다." 예를 들어 왼쪽 아래 그림에서는 "key edge"가 삭제되어 완벽한 일치가 없고, 오른쪽 아래 그림에서는 "non-criticity edge"가 삭제되어 완벽한 일치가 있습니다. 일치하는 것은 무엇입니까?

차트 5 에지 삭제의 예

표면적으로 이 알고리즘의 시간 복잡도는 여전히 매우 높은 것처럼 보입니다. 그래프 G에는 최대 n2개의 간선이 있으므로 간선을 삭제하려고 할 때마다 완벽한 일치를 찾는 데 O(n3) 시간 복잡도가 걸립니다. 총 복잡도는 O(n5)만큼 높습니다. 두 사람의 궁합을 확인해보세요.

실제로 그래프 G에서 완벽하게 일치하는 M을 먼저 찾을 수 있습니다. 이런 식으로 가장자리를 삭제할 때 일치하는 가장자리만 고려하면 됩니다(일치하지 않는 가장자리를 삭제하면 G'가 되기 때문에, M은 여전히 ​​G' 일치의 완벽한 일치입니다.) 이렇게 하면 n개의 edge만 삭제하면 되고, 시간복잡도는 O(n4)로 줄어든다.

추가 분석에 따르면 에지를 삭제한 후 다시 완벽한 일치를 찾을 필요가 없으며 새로운 증대 체인을 찾을 수 있는지 확인하면 됩니다. 이러한 방식으로 시간 복잡도는 O(n3)으로 더욱 감소됩니다. 질문: CTSC-큐피드의 고민

사회가 지속적으로 발전함에 따라 사람들 사이의 감정은 점점 더 실용적으로 변하고 있습니다. 최근 사랑의 신 큐피드는 사랑이 더 이상 완전히 순수하지 않다는 사실을 발견했습니다. 이로 인해 큐피드는 적합한 남자와 여자를 찾고 그들에게 큐피드의 화살을 쏘는 것이 점점 더 어려워졌습니다. 그래서 큐피드는 먼 중국까지 여행을 하다가 동방의 사랑을 관장하는 달아래노인을 만나 조언을 구했습니다.

달빛 아래 노인은 큐피드에게 순수한 사랑이 존재하지 않는 것이 아니라 찾지 못했다고 말했다. 동양에서는 운명을 중시합니다. 달빛 아래 노인이 남자와 여자라는 두 개의 점토 인형을 만들고 그 사이에 붉은 선을 연결하는 한, 그들이 대표하는 사람들은 어디에 있든 사랑에 빠지게 될 것입니다. 큐피드의 사랑의 화살은 꽤 가까운 두 사람에게만 맞을 수 있기 때문에 선택의 폭은 당연히 훨씬 작아지고, 진정한 운명의 사람을 찾는 것도 불가능하다.

큐피드는 달아래노인의 설명을 듣고 갑자기 깨달음을 얻었고, 돌아온 후 인간계의 것들을 이용해 자신의 것을 변형시켜 큐피드의 화살의 사거리를 크게 늘렸다. 이렇게 하면 운명의 사람을 맞힐 확률도 많이 높아진다.

발렌타인데이 자정, 큐피드는 작업을 시작했습니다. 운명처럼 짝을 이룬 남녀를 동수로 골라 사랑에 빠지게 만들기 위해 연달아 화살을 쏘아 올렸다. 그는 자신이 선택한 사람이 한 번씩 총에 맞고, 총에 맞은 각 쌍의 운명이 합산되는 방식을 선택하기를 희망한다.

물론 큐피드가 어떻게 변신하더라도 여전히 부족한 점은 있다. 우선, 총의 사거리가 늘어났지만 여전히 제한적이다. "실 한 가닥으로 천리의 결혼을 할 수 있는" 달 아래 노인과 같지는 않다. 둘째, 아무리 변형시켜도 결국 화살의 궤적은 직선이 될 수밖에 없다. 즉, 두 사람 사이의 연결선에 다른 사람이 있다면 그 사람에게 큐피드의 화살을 던져서는 안 된다는 것이다. 그렇지 않으면 달 아래 노인의 말에 따르면 그것은 단지 "원양 스펙트럼의 임의의 비트"일뿐입니다.

인간으로서 당신의 임무는 고급 컴퓨터를 사용하여 큐피드에 대한 해결책을 찾는 것입니다.

입력 파일 행에는 큐피드 화살의 범위를 나타내는 양의 정수 k가 있고 두 번째 행에는 양의 정수 n(n<30)이 있고 그 뒤에는 큐피드의 화살표 정보를 나타내는 2n개의 행이 있습니다. 큐피드가 선택한 사람 중 처음 n줄은 남자이고 나중에 n줄은 여자 ​​역할을 합니다. 각 개인의 정보는 이름과 위치라는 두 부분으로 구성됩니다. 이름은 길이가 20자 미만의 문자열이며 대문자와 소문자의 차이를 무시하고 문자만 포함합니다. 위치는 공백으로 구분된 정수 쌍으로 표시되는 좌표입니다. 형식은 Namexy입니다. 입력 파일의 나머지 부분은 이 사람들의 운명을 설명합니다. 각 줄의 형식은 다음과 같습니다. Name1과 Name2는 운명의 사람들의 이름이고, p는 그들 사이의 운명값(p는 이하의 양의 정수)이다. End를 파일 표시의 끝으로 사용합니다. 두 사람의 운명은 최대 한 번만 설명됩니다. 기술되지 않은 경우에는 운명값이 1임을 의미합니다.

출력 파일에는 총에 맞은 각 쌍의 사람들 사이의 운명의 합을 나타내는 하나의 양의 정수만 포함됩니다. 이 금액이 되어야 합니다. 질문에는 세 가지 유형의 객체와 두 가지 관계가 있습니다. 하나씩 분석해 보겠습니다.

큐피드의 화살, 그 속성 중 하나는 범위,

남성과 여성, 그들의 속성입니다. 이름과 직위도 포함,

남자와 여자의 관계, 이 관계는 두 사람의 운명값,

화살과 남자와 의 관계 여자, 둘 사이의 거리가 넘지 않으면 화살의 범위가 다른 사람에 의해 막히지 않으면 화살에 맞을 수 있습니다. 문제는 총에 맞은 모든 남자와 여자의 운명을 평등하게 만드는 양궁 계획을 요구하는 것이다.

이 문제는 이분 그래프의 가중치 일치를 요구하는 것과 매우 유사합니다. 남성과 여성은 서로 다른 두 부분에 속하고 동성 사이에는 관계가 없기 때문에 이분 그래프입니다. 운명 값이 간선의 가중치로 기록되면 운명의 합은 이 이분 그래프에서 일치하는 가중치에 해당합니다.

제목에는 기술되지 않은 남녀의 운명값이 1이라고 적혀 있지만, 그렇다고 해서 얻은 이분 그래프가 완전한 이분 그래프라는 뜻은 아니다. 왜냐하면 사진을 구성하는 과정에서 화살표의 범위와 같은 요소도 고려해야 하기 때문입니다. 두 사람 사이의 거리가 화살표의 범위를 초과하면 서로를 놓칠 수밖에 없습니다.

이 때 문제가 발생하는 이유는 운명과 화합을 요구하는 것 외에도 '큐피드가 선택한 사람은 누구나 한 번씩 총에 맞아야 한다'는 제목도 요구하고 있기 때문이다.

운명이 클수록 총에 맞는 사람이 많을수록 좋다고 생각할 수도 있지만 그렇지 않습니다. 예:

그림 6의 반례

소유권 주장이 일치하면 일치하는 에지 AD가 선택되고 운명의 합은 10이 됩니다. 하지만 모두 한 번씩 총을 맞아야 하기 때문에 AC와 BD만 선택할 수 있고, 운명의 합은 2이다.

즉, 이 예의 경우 정답은 2가 되어야 하는데, 가중치 일치 값은 10이 됩니다. 이는 이 질문과 단순 가중치 일치 사이에 여전히 차이가 있음을 보여줍니다. 왜냐하면 이 질문은 가중치 값을 요구하면서 완벽한 일치도 요구하기 때문입니다. 우리는 이를 "완벽한" 가중치 일치라고 부릅니다.

그렇다면 가중치 매칭을 이용하면 이 문제를 해결할 수 없는 걸까요? 걱정하지 마십시오. 가중치 일치 알고리즘을 검토해 보겠습니다. 정점에 번호를 매겨 그래프 G를 G'로 변환한 다음 G의 가중치 일치를 G'의 완벽한 일치로 변환합니다. 여기서는 A 완벽을 요구하는 것 같습니다. 일치하지만 위의 예에서는 왜 안 될까요?

위의 예에서 라벨링 후 새로운 간선 BC가 새 그래프 G'에 추가되고 이 간선의 가중치는 0이 되어 그래프 G에서 완벽하게 일치하는 것으로 나타났습니다. ' 는 실제로 AD와 BC이며 그래프 G의 모서리 AD에 해당합니다.

따라서 BC의 간선의 가중치를 미리 -무게로 설정한 후 그래프에서 일치하는 가중치를 찾으면 더 이상 문제가 발생하지 않습니다.

보다 일반적으로, 이분 그래프의 "완벽한" 가중치 일치가 필요한 경우 원래 그래프에 없는 간선의 가중치를 -무한으로 설정하기만 하면 됩니다. 질문: IPSC-Magic

무대에서 마술사가 공연하고 그 뒤에 아름다운 여성 조수가 따라옵니다. 마술사는 먼저 마술 모자에서 토끼 몇 마리를 꺼낸 다음, 여성 조수의 스카프에서 꽃다발을 꺼내어 겉보기에 비어 있는 상자에 여성 조수를 가두었습니다. 그런 다음 마술사는 공연에 협력할 청중을 선택합니다. 그는 N개의 카드를 테이블 위에 놓습니다(N개의 카드는 모두 쌍이 다르며 N은 홀수입니다).

마술사는 지원자에게 연단 위로 올라가서 (N+1)/2개의 카드를 선택하라고 요청했고, 나머지 카드는 마술사의 모자 속에서 영원히 사라졌습니다. 마술사는 선택한 카드 위에 손을 흔들고 그 중 하나를 선택하여 자원봉사자에게 건네주었습니다. 자원봉사자는 자신의 손에 있는 카드를 청중에게 보여준 다음 주머니에 넣었습니다. 여성 조수가 상자에서 풀려난 후 테이블로 와서 남은 (N+1)/2-1 카드 위에 손을 흔들고 즉시 자원봉사자의 주머니에 어떤 카드가 있는지 말했습니다.

왜 그럴까요? 먼저 다음 표를 살펴보겠습니다. N=5의 경우입니다:

지원자가 선택한 카드, 카드 마술사가 선택한 카드, 보조자가 본 카드

p>

1, 2, 2

1, 2, 4

1, 2, 5

1, 3, 3

1, 3, 5

1, 4, 5

2, 3, 3

2, 3, 5

2, 4, 4

p>

3, 4, 4

그 중 자원봉사자가 선택한 카드 - 마술사가 선택한 카드 = 본 카드 조수에 의해. 표에는 자원봉사자가 서로 다른 쌍으로 된 카드를 선택할 수 있는 모든 가능성이 포함되어 있습니다. 보조자가 본 카드도 달랐습니다.

먼저 마술사와 조수 모두 이 목록을 외워야 합니다. 이런 식으로 보조자는 카드 2와 4를 볼 때 지원자가 선택한 카드가 2, 4, 5이고 마술사가 선택한 카드가 5임을 확신할 수 있습니다.

이제 n의 값을 알려주고 이 표를 찾아보라고 합니다. 여기서 n ≤15입니다. 분석의 편의를 위해 M은 N개의 카드 중에서 (N+1)/2-1개의 카드를 선택하는 옵션의 수를 나타냅니다. 번호도 M입니다.

열거의 관점에서 시작해 보겠습니다. 다음은 두 가지 열거 방법입니다.

자원봉사자의 각 카드 선택 계획에 대해 열거 마술사는 카드를 선택합니다. 두 사람의 매칭 정도를 테스트하는 방법

자원 봉사자의 각 카드 선택 계획에 대해 해당 보조자가 카드를 봅니다.

옵션 1에는 M개의 결정이 필요하고 각 결정에는 N개의 선택이 있습니다. 옵션 2에도 M개의 결정이 필요하며 각 결정에는 M개의 선택이 있을 수 있습니다. 이러한 관점에서 볼 때 옵션 1이 훨씬 좋습니다. ,

그러나 플랜 1에 표시된 '자원봉사자의 카드 선택 계획'과 '마술사가 선택한 카드'의 관계는 카드 선택 계획에서 마술사가 할 수 있는 일대일 대응이 아닙니다. 같은 카드를 선택하세요.

계획 2에 표시된 관계는 일대일 대응입니다. 왜냐하면 질문에서는 자원봉사자의 다양한 카드 선택 계획에 대해 보조자가 보는 카드가 달라야 하기 때문입니다.

앞서 언급한 것처럼 정보과학의 관점에서 일대일 대응은 이분 그래프의 매칭 관계로도 볼 수 있다. 따라서 옵션 2를 사용하면 사람들이 성냥에 더 쉽게 연락할 수 있습니다.

xiyj하자. 이런 방식으로 원래의 문제는 그래프 G의 완벽한 일치를 찾는 것으로 변환됩니다.

다음 질문이 또 나오네요. 우선, 이분 그래프는 최대 2M개의 정점을 갖습니다. N=15일 때 M은 가까우며, 매칭을 찾는 복잡도는 O(M3)입니다.

이 그래프는 ***에 MN 간선만 있는 희소 그래프입니다. 희소 이분 그래프 매칭의 복잡도는 O(|V|×|E|)로 표현될 수도 있습니다. 따라서 시간복잡도는 O()가 되어야 기본적으로 감당할 수 있는 수준이다.

게다가 이것은 희소 그래프이고 인접 리스트를 사용하여 저장하기 때문에 공간 복잡도가 O(NM)에 불과해 비용도 저렴합니다.

이 질문 역시 구축 방식을 활용해 더 나은 효율성을 얻을 수 있다는 점에 유의해야 하지만, 매칭처럼 생각하기는 쉽지 않습니다. 구체적인 구축 방법은 여기에 제시되어 있지 않으며 독자가 스스로 생각해 볼 수 있습니다. 질문: OOPC - 신비한 산

M 사람들이 이상한 작은 동물을 쫓고 있습니다. 막 따라잡으려던 순간, 그 작은 것이 갑자기 신비한 산 위로 뛰어올랐습니다.

모두가 올려다보면 산은 다음과 같습니다.

다이어그램 7 샘플 다이어그램

산은 N+1개의 선분으로 구성되어 있습니다. 각 끝점은 왼쪽에서 오른쪽으로 0...N+1로 번호가 지정됩니다. 즉, x

경험에 따르면 그 작은 것은 1...N 사이의 특정 끝점에 있을 가능성이 매우 높습니다. 흥미로운 점은 모두가 M이 N과 정확히 동일하다는 사실을 빨리 발견했다는 것입니다. 이런 식으로 그들은 각자 한 점을 선택하여 그곳에 숨어 있는지 확인하기로 결정했습니다.

처음에는 모두 산기슭에 있었고 i 번째 사람의 위치는 (s, 0)이었습니다. 각자는 중간지점(x,0)을 선택하고, 먼저 거기까지 수평으로 w의 속도로 걸어간 다음, 단숨에 c의 속도로 직선을 따라 목적지까지 올라간다. 그들은 수학을 잘하지 못하기 때문에 정수를 중간점의 가로 x로 선택하는 방법만 알고 있습니다. 그리고 분명히, 경로의 어떤 부분도 산 위에 있을 수 없습니다(그리고 그들은 날 수 없습니다).

이번엔 또 실패하고 싶지 않았기에 선장은 사람을 목적지에 최대한 빨리 도착시킬 수 있는 방안을 찾기로 했다. 그들은 무엇을 해야 합니까?

그 중 1≤N≤, 0≤x,y,s≤, 1≤c

샘플 입력

샘플 출력

1.43

샘플 설명

이 예에서 사람은 ( 5.0) 먼저 끝점 2로 올라갑니다. 두 번째 사람은 끝점 3으로 직접 올라갑니다. 세 번째 사람은 먼저 (4.0)에 도달한 다음 끝점 1로 올라갑니다. 아래와 같이:

차트 8의 샘플 답변 질문에 있는 데이터는 많고 복잡합니다. 먼저 하나씩 분석해 보겠습니다.

사람, ***n , 관련은 초기 가로좌표 s, 속도 w 및 c입니다.

***n개의 언덕이 있고 관련은 x 및 y 좌표입니다.

이 정보를 기반으로 우리는 다음을 수행할 수 있습니다. get, 사람과 산 정상의 관계: t[I,J], i번째 사람이 산 정상 j에 도달하는 데 필요한 최단 시간을 나타냅니다.

제목에는 한 사람이 하나의 언덕을 담당한다고 명시되어 있습니다. 이는 분명히 일대일 대응이므로 이 문제를 이분 그래프 매칭의 관점에서 고려할 수 있습니다.

그렇다면 이 질문은 어떤 매칭에 속할까요? 단순 매칭인가요, 체중 매칭인가요, 아니면 앞서 언급한 '완벽한' 체중 매칭인가요?

사실 둘 다 아니다. 왜냐하면 일반적인 가중치 매칭에서 매칭 가중치의 정의는 매칭에 포함된 모든 간선의 가중치의 합이 되며, 이 질문에서 매칭 가중치는 매칭 간선 가중치의 값을 의미하기 때문입니다. 질문에서는 이 값이 가장 작아야 하므로 일시적으로 "최소 일치"라고 부릅니다.

직접 해결하기에는 불편한 것 같습니다. 또 다른 관점에서 시간을 주면 완벽 매칭 알고리즘을 이용해 이 시간 내에 모든 작업을 완료할 수 있는지 판단할 수 있다.

구체적으로, 주어진 이분 그래프 G와 시간 T에 대해 G'의 모든 간선의 가중치가 T를 초과하지 않는 새로운 그래프 G'를 도출할 수 있습니다. G'에 대한 완벽한 일치가 있으면 모든 작업은 T 시간 내에 완료될 수 있지만 그렇지 않으면 완료될 수 없습니다.

이러한 방식으로 간단한 알고리즘이 탄생합니다. 완벽한 일치를 찾을 때까지 T를 순차적으로 증가시킵니다. 이분 그래프의 간선은 n2를 초과하지 않으므로 T는 최대 n2배까지 증가할 수 있으며 T의 값이 증가할 때마다 증가 사슬을 찾는 데 O(n2) 시간이 걸리므로 총 시간 복잡도는 다음과 같습니다. 오(n4) .

이 T를 찾기 위해 이진 검색을 사용할 수도 있습니다. 이 알고리즘의 시간 복잡도는 O()로 줄일 수 있습니다.

위 내용은 두 사람의 외모 매칭 정도에 대한 공유입니다. 두 사람이 얼마나 잘 어울리는지 읽어본 후, 도움이 되었으면 좋겠습니다!