B:Binary Vector
详解
f(n)=f(n-1)* (2^n-1) / 2^n = f(n-1)*(1-1/2^n)
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int mod=1e9+7;
ll a[20000010],x=5e8+4,y=5e8+4;
int main()
{
ios::sync_with_stdio(false);
int t,n;
a[1]=5e8+4;
for(int i=2;i<=2e7;i++)
{
x=x*y%mod;
a[i]=(a[i-1]-a[i-1]*x)%mod+mod;
}
for(int i=2;i<=2e7;i++)
a[i]^=a[i-1]; //ans=f1^f2^...^fn
cin>>t;
while(t--)
{
cin>>n;
cout<<a[n]<<endl;
}
return 0;
}
C:Combination of Physics and Maths
寻找单列的子列最大值
原因
#include<bits/stdc++.h>
using namespace std;
#define ll long long
double a[210][210];
int main()
{
int t,n,m;
double maxn;
cin>>t;
while(t--)
{
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
scanf("%lf",&a[i][j]);
maxn=1;
for(int i=1;i<=m;i++)
{
double sum=0;
for(int j=1;j<=n;j++)
{
sum+=