BZOJ 5055: 막 마법사 나무 모양 배열

5055: 막 마법사
Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 58  Solved: 35 [Submit][Status][Discuss]
Description
1e9 차례 의 대형 전쟁 을 겪 은 우주 에는 아직 n 개의 완벽 한 차원 이 남아 있다.
지금 은 다 원 우주 에서 온 막 마법사 가 그 중의 세 가지 차원 을 훔 쳐 위대 한 장자 속 초 를 만 들 려 고 합 니 다.
분명 한 것 은 그 가 윗사람 에 게 이 어 질 수 있 는 시간 은 이 세 가지 차원 에서 에너지 의 곱 이다.
그러나 현재 의 우 주 는 매우 낙관적 이지 않다. 함부로 훔 치면 차원 의 붕 괴 를 초래 할 수 있다.
그래서 그 는 역순 으로 이런 차원 을 훔 치고 훔 치 는 중 이 었 다.
매번 훔 치 는 차원 의 에 너 지 는 그 가 지난번 에 훔 친 에너지 보다 엄 격 히 작 아야 한다.
막 법사 가 다 원 우주 에 살 고 있 기 때문에 그 는 가능 한 모든 훔 치 는 방안 을 모두 발생 시 킬 수 있다.
제목 설명
하지만 그 는 수학 을 잘 못 해서 어른 을 위해 몇 초 동안 계속 할 수 있 는 지 찾 아 주 었 다.
당신 이 해 야 할 일 은 주어진 차원 시퀀스 a 에서
모든 만족 을 구하 다 i
즉 ∑ (a i * a j * a k), 요구 i
Input
첫 줄 1 개 n
두 번 째 줄 n 개 수 ai
Output
한 수 는 윗사람 을 위해 몇 초 동안 계속 할 수 있다 는 것 을 나타 낸다. 윗사람 은 불후 하기 때문이다.
그래서 오래 살 수 있 으 니 정 답 을 * * 19260817 * * 모델 링 하 세 요.
Sample Input
샘플 1, 4, 1, 2, 3, 4, 2, 10, 6, 8, 4, 1, 3, 0, 7, 5, 9, 2.
Sample Output
샘플 출력 150 샘플 출력 2 1737 샘플 설명 샘플 1 에 만족 하 는 조건 이 있 는 서열 은 {1, 2, 3} - 6 {1, 2, 4} - 8 {1, 3, 4} - 12 {2, 3, 4} - 24 ans = 6 + 8 + 12 + 24 = 50 데이터 범위 30% 의 데이터 n < = 300 60% 의 데이터 n < = 3000 100% 의 데이터 n < = 300000 < = a [i] < 214483647
문제 풀이 가 없다
제 가 편 지 를 써 서 여러분 들 이 코드 를 붙 일 수 있 도록 하 겠 습 니 다.
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;

typedef long long ll;

inline int read()
{
	int x=0,f=1;char ch=getchar();
	while(ch'9'){if(ch=='-')f=-1;ch=getchar();}
	while(ch<='9'&&ch>='0'){x=(x<<1)+(x<<3)+ch-'0';ch=getchar();}
	return f*x;
}
void print(int x)
{if(x<0)putchar('-'),x=-x;if(x>=10)print(x/10);putchar(x%10+'0');}

const int N=300100,mod=19260817;

int n,a[N],b[N],c[N],pos[N];

int bit[N];

inline void modify(int x,int val)
{for(;x<=n;x+=(x&-x))(bit[x]+=val)%=mod;}

inline int query(int x)
{
	int res=0;
	for(;x;x-=(x&-x))(res+=bit[x])%=mod;
	return res;
}

inline bool cmp(int x,int y)
{return a[x]

좋은 웹페이지 즐겨찾기