Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
55147 xit. 线性基 (basis) C++ 解答错误 0 3 MS 1036 KB 769 2022-08-09 11:39:05

Tests(0/10):


#include <bits/stdc++.h> using namespace std; typedef long long ll; ll ans,a[200001],f[2]; inline ll Read() { static ll x=0,c=getchar(); for(; c<=47||c>=58; c=getchar()); for(x=0; c>=48&&c<=57; c=getchar()) x=(x<<3)+(x<<1)+(c&15); return x; } void F(int x,int y) { f[0]=(x&y),f[1]=(x|y); } int main() { // freopen("basis.in","r",stdin); // freopen("basis.out","w",stdout); ll n=Read(); for(int i=1; i<=n; i++) a[i]=Read(); for(int i=1; i<n; i++) { F(a[i],a[i+1]); bool x=0; if(a[i]>=a[i+1] && f[0]>a[i]) x=1; else if(a[i]<=a[i+1] && f[1]>a[i+1]) x=1; if(x) a[i]=f[0],a[i+1]=f[1]; } for(int i=1; i<=n; i++) ans+=a[i]*a[i]; printf("%lld\n",ans); return 0; }


测评信息: