hdu 6430 bitset 폭력

1137 단어 데이터 구조
제목:
뿌리 가 있 는 나무, 1e5, 각 노드 의 검색 어 를 출력 합 니 다. 검색 은 다음 과 같이 정 의 됩 니 다. 이 노드 를 뿌리 로 하 는 나 무 는 두 노드 의 가중치 GCD 를 선택 하고 아이 가 없 으 면 - 1 입 니 다.
생각:
무리 속 에서 bitset 를 보 니 findfirst () 와 findnext (x) 의 조작 을 찾 아 보 았 습 니 다. 한 사내 의 생각 을 베 꼈 습 니 다. 구체 적 으로 실현 하 는 것 은 폭력 서브 트 리 의 인자 입 니 다. bitset 로 합병 하면 조회 할 때 & (인자 가 두 번 나타 나 는 것 을 보장 합 니 다) 그리고 find먼저 하면 돼.findlast 가 없 기 때문에, 우리 가 삽입 할 때 거꾸로 삽입 하면 된다. 분명히 시간 복잡 도 n * n / 64
코드:
#include
#define PB push_back
using namespace std;
const int N = 1e5+7;
vector E[N];
int v[N],ans[N],n,x;

bitset gao(int x){
    bitset as(0),bs(0);
    for(int i=1;i*i<=v[x];i++)
        if(v[x]%i==0)as[N-i]=as[N-v[x]/i]=1;
    int ret=-1,en=E[x].size();
    for(int i=0;i>n;
    for(int i=2;i<=n;i++){
        cin>>x;
        E[x].PB(i);
    }
    for(int i=1;i<=n;i++)cin>>v[i];
    gao(1);
    for(int i=1;i<=n;i++)cout<

좋은 웹페이지 즐겨찾기