가중치가 있는 이분 그래프에서 무게 합이 t 이상이고 어떤 매칭이 모든 꼭짓점을 덮는 부분집합의 개수를 센다.
어려움8동적 계획법비트 연산조합론그래프아직 제출이 없습니다시간 제한3초메모리 제한512 MB이분 그래프는 정점 집합이 서로소인 두 집합 A와 B로 나뉘고, 모든 간선이 A의 정점 하나와 B의 정점 하나를 잇는 그래프다. 매칭 M은 어떤 두 간선도 정점을 공유하지 않는 간선 집합이다. 정점 집합 V에 속한 모든 정점이 M의 어떤 간선의 끝점이면, 매칭 M이 V를 덮는다고 하자.
각 정점에 양의 정수 가중치가 붙은 이분 그래프가 주어진다. 정점 집합의 가중치는 그 집합에 속한 정점의 가중치를 모두 더한 값이다.
정수 기준값 t가 주어진다. 가중치가 t 이상이면서 적어도 하나의 매칭이 덮는 정점 집합 V가 몇 개인지 구하라. V는 A∪B의 부분집합이며, 서로 다른 두 부분집합은 다른 것으로 센다.
첫째 줄에 A의 정점 개수 n과 B의 정점 개수 m이 공백으로 구분되어 주어진다 (1≤n,m≤20). A의 정점을 a1,a2,…,an, B의 정점을 b1,b2,…,bm이라고 하자.
다음 n개 줄에는 간선을 나타내는 m개의 문자가 주어진다. i번째 줄의 j번째 문자는 ai와 bj 사이에 간선이 있으면 1, 없으면 0이다.
다음 줄에 n개의 정수 v1,v2,…,vn이 주어진다 (1≤vk≤10000000). vk는 ak의 가중치다. 그다음 줄에 m개의 정수 w1,w2,…,wm이 주어진다 (1≤wk≤10000000). wk는 bk의 가중치다.
마지막 줄에 정수 t가 주어진다 (1≤t≤400000000).
가중치가 t 이상이고 어떤 매칭이 덮는 정점 집합의 개수를 한 줄에 출력한다.
첫 번째 예제에서 부분집합 {a1,a2,b2,b3}은 매칭 {(a1,b2),(a2,b3)}이 덮고 가중치가 21이다. {a3,b2,b3}과 {a2,a3,b2,b3}은 둘 다 매칭 {(a2,b3),(a3,b2)}가 덮으며 가중치는 각각 21과 23이다. 나머지 부분집합은 가중치가 21보다 작거나 어떤 매칭도 덮지 못한다. 예를 들어 {a2,a3,b1,b3}은 가중치가 26이지만 이를 덮는 매칭이 없으므로 세지 않는다.