만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

이분 바리케이드

시간 제한2.5초메모리 제한1024 MB

요약
이분 그래프에서 가중치 합이 t 이상이고, 어떤 매칭이든 집합의 모든 정점을 끝점으로 포함하는 정점 집합의 개수를 구합니다.
난이도

어려움10점 중 8점

유형
비트 연산, 동적 계획법, 그래프
정답자
아직 제출이 없습니다

문제

이분 그래프에서 정점은 서로소인 두 집합 AA와 BB로 나눌 수 있으며, 모든 간선은 AA의 정점과 BB의 정점을 잇습니다. 매칭 MM은 두 간선이 정점을 공유하지 않는 간선들의 집합입니다. 매칭 MM이 정점 집합 VV를 바리케이드한다는 것은 VV의 모든 정점이 MM에 속한 간선 중 하나의 끝점이라는 뜻입니다.

각 정점에는 정수 가중치가 주어집니다. 정점 집합의 가중치는 그 집합에 속한 정점들의 가중치 합입니다.

정수 tt가 주어졌을 때, 가중치가 tt 이상이면서 적어도 하나의 매칭으로 바리케이드되는 정점 집합 VV의 개수를 구하세요.

입력

첫 줄에 자연수 nn과 mm (1≤n,m≤201 \le n, m \le 20)이 주어집니다. 각각 집합 AA와 BB의 정점 수입니다. 정점은 a1,…,ana_1, \dots, a_n과 b1,…,bmb_1, \dots, b_m으로 표시합니다.

다음 nn개 줄에는 각각 mm개의 문자가 주어집니다. ii번째 줄의 jj번째 문자가 '1'이면 aia_i와 bjb_j를 잇는 간선이 있고, '0'이면 없습니다.

다음 줄에는 a1,…,ana_1, \dots, a_n의 가중치 v1,…,vnv_1, \dots, v_n (1≤vk≤100000001 \le v_k \le 10000000)이 주어집니다.

다음 줄에는 b1,…,bmb_1, \dots, b_m의 가중치 w1,…,wmw_1, \dots, w_m (1≤wk≤100000001 \le w_k \le 10000000)이 주어집니다.

마지막 줄에는 자연수 tt (1≤t≤4000000001 \le t \le 400000000)가 주어집니다.

출력

가중치가 tt 이상이면서 적어도 하나의 매칭으로 바리케이드되는 정점 집합의 개수를 출력하세요.

힌트

첫 번째 예시에 대한 설명입니다. 집합 {a1,a2,b2,b3}\{a_1, a_2, b_2, b_3\}은 매칭 {(a1,b2),(a2,b3)}\{(a_1, b_2), (a_2, b_3)\}으로 바리케이드되며, 가중치는 21입니다. 집합 {a3,b2,b3}\{a_3, b_2, b_3\}과 {a2,a3,b2,b3}\{a_2, a_3, b_2, b_3\}은 매칭 {(a2,b3),(a3,b2)}\{(a_2, b_3), (a_3, b_2)\}으로 바리케이드되며, 가중치는 각각 21과 23입니다. 나머지 정점 집합은 가중치가 21보다 작거나 어떤 매칭으로도 바리케이드되지 않습니다. 예를 들어 집합 {a2,a3,b1,b3}\{a_2, a_3, b_1, b_3\}의 가중치는 26이지만, 이를 바리케이드하는 매칭은 존재하지 않습니다.

예제2

  1. 예제 1

    입력
    3 3
    010
    111
    010
    1 2 3
    8 5 13
    21
    
    예상 출력
    3
    
  2. 예제 2

    입력
    3 2
    01
    11
    10
    1 2 3
    4 5
    8
    
    예상 출력
    13