Bipartitna Barikada
시간 제한2.5초메모리 제한1024 MB
이분 그래프에서 무게 합이 t 이상이고 어떤 매칭으로 모든 정점이 덮이는 정점 부분집합의 수를 구한다.
문제
U bipartitnom grafu, čvorovi se mogu podijeliti u dva disjunktna skupa i tako da svaki brid povezuje čvor iz skupa s čvorom iz skupa . Sparivanje je skup bridova gdje nijedna dva brida ne dijele zajednički čvor. Kažemo da sparivanje barikadira skup čvorova ako je svaki čvor iz krajnja točka barem jednog brida iz .
Zadan je bipartitan graf u kojem je svakom čvoru pridružena cjelobrojna težina. Pritom, težinu skupa čvorova definiramo kao sumu težina čvorova toga skupa.
Za dani cijeli broj , potrebno je pronaći broj skupova takvih da je njihova težina barem te da je skup barikadiran barem jednim sparivanjem .
입력
U prvom su retku prirodni brojevi i () koji redom predstavljaju broj čvorova u skupovima i . Označit ćemo čvorove u skupu s , a čvorove u skupu s .
Svaki od idućih redaka sastoji se od znakova koji opisuju bridove bipartitnog grafa. Preciznije, -ti znak u -tom retku je '1' ako postoji brid koji spaja čvorove i , odnosno '0' tako to nije slučaj.
U idućem je retku prirodnih brojeva () koji redom predstavljaju težine čvorova .
U idućem je retku prirodnih brojeva () koji redom predstavljaju težine čvorova .
U posljednjem je retku prirodan broj () iz teksta zadatka.
출력
Ispišite broj skupova čvorova težine barem koji su barikadirani barem jednim sparivanjem.
힌트
Pojašnjenje prvog probnog primjera:
Skup je barikadiran sparivanjem i ima težinu . Skupovi i barikadirani su sparivanjem , te redom imaju težine i . Preostali skupovi čvorova ili imaju težinu manju od ili nisu barikadirani niti jednim sparivanjem. Primjerice, skup ima težinu , međutim ne postoji sparivanje koje ga barikadira.