HDU 전달 - 5961 문제 풀이

제목 전송 문
분석 하 다.
제목 대의: 하나의 경기 그림 을 주 고 그림 을 두 부분 으로 나 누 어 두 부분의 그림 이 전달 패 킷 에 부합 되 는 지 판단 합 니 다. a - > b, b - > c 는 a - > c 라 는 문 제 를 Floyd 로 억지로 달 리 는 것 은 분명 n \ ({^ 3} \) T 가 bfs 로 넘 어 갈 수 있 지만 시간 도 많 습 니 다. 사실 패 킷 을 전달 하면 bitset 로 시간 효율 이 n \ ({^ 2} \) 이 고 모두 20 개의 데이터 가 있 습 니 다.그래서 실제 적 으로 더 크 지만 bitset 의 상수 가 매우 작 습 니 다. 대개 \ (\ frac {1} {32} \) 만 있 기 때문에 이 문 제 를 넘 기 는 데 문제 가 없습니다.
코드
#include
using namespace std;
const int maxn=2021;
bitset p[maxn];
bitset q[maxn];
bool visq[maxn][maxn],visp[maxn][maxn];
int main(){
    int t;
    scanf("%d",&t);
    while(t--){
        for(int i=0;i

다음은 정 해 사 고 를 첨부 합 니 다. 경기 도 는 바로 임 의 두 점 중간 에 있 고 한 가지 만 방향 이 있 습 니 다.처음에 폭력 적 으로 해결 하려 고 하 다가 T 가 되 었 습 니 다. 마지막 으로 문 제 를 보고 두 개의 그림 을 저장 해 야 한 다 는 것 을 알 게 되 었 습 니 다. 그 중에서 Q 의 역방향 변 은 P 에 존재 하고 P 의 역방향 변 은 Q 에 존재 한 다음 에 두 개의 그림 에서 고리 가 있 는 지 판단 하면 되 고 고리 가 있 으 면 전달 되 지 않 는 다 는 것 을 의미 합 니 다.판단 은 dfs 로 가능 합 니 다.

좋은 웹페이지 즐겨찾기