zoj1346 (토폴로지 정렬을 만족시키는 서열 개수 구하기)
Comparing Your Heroes
시간 제한: Sec 메모리 제한: 128MB 전송: 9 해결: 6 [전송] [상태] [토론판] [명제: admin]
제목 설명
Nowadays many students wouldn't attend classes in university, instead, they stay in dormitory playing Electronic games on computers. One of the most popular games among the boys is KOF (the King Of Fighters), a kind of action game presented by SNK corporation. This series of games becomes so successful that SNK has even created comics and story for it. Although in the story IORI and KYO are the definitely two strongest heroes, it would not affect players' true affection of other characters. Actually, every player has his own favorite heroes. As a fanatical fan of the KOF game, you're going to help the other players to find out the ranking of their favorite heroes. Players would only provide information of comparisons between the heroes. This sometimes can lead to confusion: maybe not only one ranking satisfies the comparisons. So at first you'd like to find out the number of the rankings that satisfy a specific player's comparisons.
입력
The input consists of several test cases. Each test case begins with a positive integer N on a line, indicating the number of the comparisons. The following N lines are the comparisons between the heroes. Each one is a line containing 2 names of the heroes separated by a space, means the player prefer the first hero to the second. The name of the hero is a sequence of at most 10 upper case letters. No two comparisons would be same, and you can always assure one's favorite heroes would not exceed 16.
출력
For each test case, print out the number of the rankings that satisfy the comparisons on a single line. If no such ranking exists, just print out 0.
샘플 입력
샘플 데이터 복사
4
IORI KYO
MARY SHERMIE
KYO ANDY
SHERMIE ANDY
3
IORI KYO
KYO CLARK
CLARK IORI
샘플 출력
6
0
소스/분류
ZJU 2002
제목 대의: 제목은 토폴로지 정렬의 서열을 만족시키는 개수를 구한다.
문제풀이 사고방식: 쓸 줄 모른다.보충 문제를 풀 때 비로소 배열 총수는 현재 입도가 0인 수를 제외한 나머지 수의 배열 총수와 같다는 것을 알게 되었다.
한 개만 있을 때 요구를 충족시키는 배열수는 1이다.그래서 우리는 거슬러 올라갈 때 답을 통계할 수 있다.
구체적인 과정: 연결, 각 점의 입도를 통계하고 상태가 압축된 후 dp수조를 초기화한다(한 점만 있을 때 답은 1).
그 다음에 현재 입도가 0인 점을 순서대로 열거한 다음에 현재 점을 제거하면 된다.
#include
#include
#include
#include
#include
#include
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【경쟁 프로 전형적인 90문】008의 해설(python)의 해설 기사입니다. 해설의 이미지를 봐도 모르는 (이해력이 부족한) 것이 많이 있었으므로, 나중에 다시 풀었을 때에 확인할 수 있도록 정리했습니다. ※순차적으로, 모든 문제의 해설 기사를 들어갈 예정입니다. 문자열...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.