4 条题解
-
2
直接打表找规律!
除前两项外,若为奇数项,则 否则
#include<iostream> #include<cstdio> #include<cmath> #define int long long #define N 55 using namespace std; bool Test_MLE_start; int T=1,n; int ans[N]; inline int reads(){ char c=getchar(); int sum=0,f=1; while(!isdigit(c)){ if(c=='-') f=-1; c=getchar(); } while(isdigit(c)){ sum=(sum<<3)+(sum<<1)+(c^'0'); c=getchar(); } return sum*f; } inline void files(){ freopen("std.in","r",stdin); freopen("std.out","w",stdout); } inline void clr(){ // Don't forget! } bool Test_MLE_end; signed main(){ // printf("%lf Mb\n",(&Test_MLE_end-&Test_MLE_start-1)/1024.0/1024.0); // files(); // T=reads(); int now=4; ans[1]=3,ans[2]=6; for(int i=3;i<=50;i++){ ans[i]=now*2; now*=2; if(i&1) ans[i]-=2; else ans[i]+=2; } while(scanf("%lld",&n)!=EOF){ clr(); printf("%lld\n",ans[n]); } return 0; } -
0
60pts
#include <bits/stdc++.h> using namespace std; #define int long long #define ull unsigned long long const int N=1e7+5; ull f[N]; signed main() { int m=3; f[1]=1ull*m; f[2]=1ull*m*(m-1); f[3]=1ull*m*(m-1)*(m-2); for(int i=4;i<N;i++) { f[i]=1ull*(m-1)*f[i-2]+1ull*(m-2)*f[i-1]; } int n; while(cin>>n) { cout<<f[n]<<'\n'; } return 0; } -
0
方格填数(诡异版)
分享一个有趣的规律~
写一个无脑dfs,跑前30个应该都是没有问题的,然后把这30个数打表:
int a[N]={0,3,6,6,18,30,66,126,258,510,1026,2046,4098,8190,16386,32766,65538,131070,262146,524286,1048578,2097150,4194306,8388606,16777218,33554430,67108866,134217726,268435458,536870910,1073741826,};看后面的大数,更容易注意到,现在这个数差不多是前一个数的两倍噢!然后发现有细微的不同...这个时候不要慌,发现这个细微的不同基本上都出现在个位上,所以期望通过一些加减运算等得出规律。
从N=3开始(N=1,2都无法构成一个真正意义上的“圈”,赋特值即可),观察前面的小数:
N=3: ans = (6-3)* 2 = 6 N=4: ans = (6+3)* 2 = 18 N=5: ans = (18-3)* 2 = 30 N=6: ans = (30+3)* 2 = 66 ......好了,规律很显然了...
#include<bits/stdc++.h> #define int unsigned long long using namespace std; const int N=51; int n,dp[N]; void init(int n){ dp[0]=0,dp[1]=3,dp[2]=6;//!!! for(int i = 3;i<=n;i++){ if(i%2)dp[i]=(dp[i-1]-3)*2; else dp[i]=(dp[i-1]+3)*2; } } signed main(){ ios::sync_with_stdio(0); cin.tie(0);cout.tie(0); init(N); while(cin>>n){cout<<dp[n]<<'\n';} return 0; }好神奇好有趣好诡的规律
- 1
信息
- ID
- 248
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- (无)
- 递交数
- 17
- 已通过
- 10
- 上传者