#include<cstdio>#include<iostream>usingnamespace std;typedefunsignedlonglong ull;constint N =3e6;
ull f[N]={0,1,2,3};intmain(){for(int i =4; i <= N ; i++) f[i]= f[i-1]+ f[i-2];int t ,m,n,x;scanf("%d",&t);while(t--){
ull a=0,b=0,c=0;scanf("%d",&n);for(int i =1; i <= n ; i++){scanf("%d",&x); a+= f[i]*(ull)x;}scanf("%d",&m);for(int i =1; i <= m ; i++){scanf("%d",&x); b+= f[i]*(ull)x;}scanf("%d",&m);for(int i =1; i <= m ; i++){scanf("%d",&x); c+= f[i]*(ull)x;}
a *= b;//printf("%lld %lld %lld\n",a,b,c);int i;for( i =1; c+f[i]!= a ; i++);printf("%d\n",i);}return0;}
1010 爆搜
#include<cstdio>#include<cstring>#include<algorithm>#include<map>#include<vector>#include<queue>#include<set>#include<cstdlib>#include<cstdlib>#include<algorithm>#include<cmath>usingnamespace std;typedeflonglong ll;int num[55],vis[55],tot;
ll val[55][55][5],ans;
ll ma(ll a, ll b){return a>b?a:b;}voiddfs(int pos,ll a,ll b,ll c,ll d){//printf("%d\n",pos);if(pos > tot){
ans =ma(ans , a*b*c*d);return;}for(int i =1; i <= num[pos]; i++)dfs(pos+1,a+val[pos][i][1],b+val[pos][i][2],c+val[pos][i][3],d+val[pos][i][4]);}intmain(){int t,k,n,x,a,b,c,d;scanf("%d",&t);while(t--){scanf("%d %d",&n,&k);tot =0;for(int i =1; i <= n ; i++){scanf("%d",&x);if(vis[x]==0) vis[x]=++tot;
num[vis[x]]++;for(int j =1; j <=4; j++)scanf("%lld",&val[vis[x]][num[vis[x]]][j]);}
ans =0;dfs(1,100,100,100,100);printf("%lld\n",ans);memset(num,0,sizeof(num));memset(vis,0,sizeof(vis));}return0;}
1006 斐波拉契相关#include<cstdio>#include<iostream>using namespace std;typedef unsigned long long ull;const int N = 3e6;ull f[N] = {0,1,2,3};int main(){ for(int i = 4 ; i <= N ; i++) f[i] = f[i-1] + f[i-2]; int t ,m,n,x; scanf("%