BZOJ 3823 정정 신물 선형 체 곱셈 법 역 원

제목 대의: n 차원 다 면 체 중 n - 1 차원, n - 2 차원, n - 3 차원 이 얼마나 있 습 니까?1 차원 요소, 그들의 이 또는 합% p 를 구하 십시오.
사고: 시험 문 제 를 풀 때 선형 체 곱셈 법 역 원 을 하지 않 으 면 70 점 을 받 았 다.
알고리즘 과 표준 거 리 는 그다지 다 르 고 표준 거 리 는 전달 하 는 것 같 지만 나 는 공간 적 상상력 이 부족 해서 미 루 지 못 했다.규칙 을 찾 아야 지.한 시간 반 이 걸 려 서 야 찾 아 낸 규칙.
CODE:
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define MAX 10000000
using namespace std;
 
long long n,p;
long long ans,temp = 1;
long long inv[MAX];
int power[MAX];
 
void Shake()
{
    inv[1] = 1;
    for(int i = 2; i <= n; ++i)
        inv[i] = (p - p / i) * inv[p % i] % p;
}
 
int main()
{
    cin >> n >> p;
    power[0] = 1;
    for(int i = 1; i <= n; ++i)
        power[i] = (power[i - 1] * 2) % p;
    Shake();
    ans = power[n];
    for(int i = 1; i <= n; ++i) {
        temp = (temp * (n - i + 1)) % p;
        temp = (temp * inv[i]) % p;
        ans ^= (temp * power[n - i] % p);
    }
    cout << ans << endl;
    return 0;
}

좋은 웹페이지 즐겨찾기