史上第一次AK 哈哈哈哈
团队的力量果然厉害
#include<iostream>
#include<cmath>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<string>
#include<vector>
#include<stack>
#include<bitset>
#include<cstdlib>
#include<cmath>
#include<set>
#include<list>
#include<deque>
#include<map>
#include<queue>
#include <sstream>
using namespace std;
#define ll long long
#define maxn 100010
ll v[maxn][25],a[maxn],b[25];
int main()
{
ll i,j,c;
c=1;
for(i=0;i<25;i++)
{
b[i]=c;
c=2*c;
}
ll t,n;
scanf("%lld",&t);
while(t--)
{
ll ans=0;
scanf("%lld",&n);
for(i=0;i<n;i++)
scanf("%lld",&a[i]);
for(i=0;i<n;i++)
{
ll flag=a[i];
for(j=0;j<25;j++)
{
v[i][j]=flag&1;
flag>>=1;
}
}
for(i=0;i<25;i++)
{
ll len=0;
for(j=0;j<n;j++)
{
if(v[j][i]!=0)
len++;
else{
ans+=(len)*(len+1)*b[i]/2;
len=0;
}
}
ans+=(len)*(len+1)*b[i]/2;
}
printf("%lld\n",ans);
}
return 0;
}
#include<iostream>
#include<cmath>#include<algorithm>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<string>
#include<vector>
#include<stack>
#include<bitset>
#include<cstdlib>
#include<cmath>
#include<set>
#include<list>
#include<deque>
#include<map>
#include<queue>
#include <sstream>
using namespace std;
#define ll long long
const long long int MOD=1e9+7;
ll a[15][6];
map<ll,ll>mm;
ll x,ans=0;
ll pow(ll x,ll n)
{
ll u=x%MOD,k;
k=1;
while(n)
{
if(n%2)
k=k*u%MOD;
n=n/2;
u=u*u%MOD;
}
return k;
}
void dfs1(ll s,ll r,ll o)
{
if(s==r)
mm[o]++;
else{
for(ll i=0;i<6;i++)
dfs1(s+1,r,o*a[s][i]%MOD);
}
}
void dfs2(ll s,ll r,ll o)
{
if(s==r)
ans+=mm[x*pow(o,MOD-2)%MOD];//x/o
else{
for(ll i=0;i<6;i++)
dfs2(s+1,r,o*a[s][i]%MOD);
}
}
int main()
{
int t;
cin>>t;
while(t--){
ans=0;
ll n,i,j;
cin>>n;
cin>>x;
mm.clear();
for(i=0;i<n;i++)
for(j=0;j<6;j++)
cin>>a[i][j];
dfs1(0,n/2,1);
dfs2(n/2,n,1);
cout<<ans<<endl;
}
return 0;
}
#include<iostream>
#include<cmath>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<string>
#include<vector>
#include<stack>
#include<bitset>
#include<cstdlib>
#include<cmath>
#include<set>
#include<list>
#include<deque>
#include<map>
#include<queue>
#include <sstream>
using namespace std;
#define ll long long
#define maxn 100010
ll mod=1e9+7;
ll dp[100005],a[100005];
int main()
{
ll t;
scanf("%lld",&t);
ll i,j;
while(t--)
{
ll n;
scanf("%lld",&n);
dp[0]=0;
for(i=1;i<=n;i++)
{
scanf("%lld",&a[i]);
dp[i]=(a[i]+a[i]*dp[i-1]+dp[i-1])%mod;
}
printf("%lld\n",dp[n]);
}
return 0;
}
题解的话明天再补,今天先把代码写上