标签:一个 display blank one img div c++ src code
传送门 密码:waxadyt
T1
打表找规律
从n>=5开始,就有相邻两个数的差是一个公差为28的等差数列
直接给代码吧
#include<bits/stdc++.h> using namespace std; int main() { int t; scanf("%d",&t); while(t--) { unsigned long long n; cin>>n; if(n==0){printf("1\n");continue;} if(n==1){printf("9\n");continue;} if(n==2){printf("41\n");continue;} if(n==3){printf("109\n");continue;} if(n==4){printf("205\n");continue;} if(n==5){printf("325\n");continue;} cout<<325+(148+(n-6)*14)*(n-5); } }
T2
dfs裸题
加一个vis
代码
#include<bits/stdc++.h> using namespace std; int vis[(1<<11)+1]; int a[1001001],n,p; void dfs(int pos) { if(p)return; if(pos==(1<<n)+1-n) { for(int i=1;i<=(1<<n);i++) { printf("%d",a[i]); } p=1; return; } int num=0; for(int i=pos-n+1;i<=pos;i++)num=(num<<1)+a[i]; if(!vis[num]) { a[pos]=0; vis[num]=1; dfs(pos+1); vis[num]=0; } if(p)return; vis[num+1]=1; a[pos]=1;dfs(pos+1); } int main() { scanf("%d",&n); for(int i=(1<<n)-n+1;i<=1<<n;i++)a[i]=1; vis[0]=1; int num=(1<<n)-1; for(int i=0;i<n;i++) { vis[num]=1; num^=(1<<i); } printf("%d ",1<<n); dfs(n+1); }
T3
留个坑
Contest1900 - 2019年6月多校联训a层测试1
标签:一个 display blank one img div c++ src code
原文地址:https://www.cnblogs.com/yanghaokun/p/10987764.html