1 条题解

  • 0
    @ 2025-9-10 0:11:14

    C :

    #include<stdio.h>
    int main()
    {
    	int n,i,j=1,k=1,x[200000]={0,1},m;
    	for(i=2;i<=200000;i++)
    	{
    		m=2*x[j]+1;
    		n=4*x[k]+5;
    		if(m>n){x[i]=n;k++;}else{x[i]=m;j++;}
    	}
    	while(scanf("%d",&n)==1)
    		printf("%d\n",x[n]);
    	return 0;
    }
    

    C++ :

    #include <bits/stdc++.h>
    using namespace std;
    
    #define maxn 200005
    int d[maxn];
    
    int main()
    {
    	int index1=0,index2=0;
    	int num=1;
    	d[0]=1;
    	while(num<maxn){
    		int b1=d[index1]*2+1;
    		int b2=d[index2]*4+5;
    		if (b1<=b2){
    			d[num++]=b1;
    			index1++;
    		} else d[num++]=b2,index2++;
    	}
    	
    	int n;
    	while(~scanf("%d",&n)){
    		printf("%d\n",d[n-1]);
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    3150
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者