1 条题解

  • 2

    思路

    先把 nn115050 的打表打出来,发现打表如下:

    int ans[55]={-1,-1,1,7,4,2,6,8,10,18,22,20,28,68,88,108,188,200,208,288,688,888,1088,1888,2008,2088,2888,6888,8888,10888,18888,20088,20888,28888,68888,88888,108888,188888,200888,208888,288888,688888,888888,1088888,1888888,2008888,2088888,2888888,6888888,8888888,10888888,18888888};
    

    对于 nmod7n \bmod 7 为每个情况去枚举,发现余数不同的结果前缀不同,但后面全是 88(其实是个贪心,因为 88 用的木棍最多),所以可以写出如下代码。 注意特判 17!!!

    code(考场 AC 代码)

    #include<bits/stdc++.h>
    using namespace std;
    int ans[55]={-1,-1,1,7,4,2,6,8,10,18,22,20,28,68,88,108,188,200,208,288,688,888,1088,1888,2008,2088,2888,6888,8888,10888,18888,20088,20888,28888,68888,88888,108888,188888,200888,208888,288888,688888,888888,1088888,1888888,2008888,2088888,2888888,6888888,8888888,10888888,18888888};
    void solve(int n){
    	if(n<=50) cout<<ans[n]<<'\n';
    	else if(n%7==0){
    		int t=n/7;
    		while(t--){
    			cout<<8;
    		}
    		puts("");
    	}else if(n%7==1){
    		cout<<10;
    		for(int i=1;i<(n-1)/7;i++)	cout<<8;
    		puts("");
    	}
    	else if(n%7==2){
    		cout<<1;
    		for(int i=0;i<(n-2)/7;i++)	cout<<8;
    		puts("");
    	}
    	else if(n%7==3){
    		cout<<200;
    		for(int i=0;i<((n-3)/7)-2;i++)	cout<<8;
    		puts("");
    	}
    	else if(n%7==4){
    		cout<<20;
    		for(int i=0;i<((n-4)/7)-1;i++)	cout<<8;
    		puts("");
    	}
    	else if(n%7==5){
    		cout<<2;
    		for(int i=0;i<((n-5)/7);i++)	cout<<8;
    		puts("");
    	}
    	else if(n%7==5){
    		cout<<2;
    		for(int i=0;i<((n-5)/7);i++)	cout<<8;
    		puts("");
    	}
    	else if(n%7==6){
    		cout<<6;
    		for(int i=0;i<((n-6)/7);i++)	cout<<8;
    		puts("");
    	}
    	return;
    }
    int main(){
    	freopen("sticks.in","r",stdin);
    	freopen("sticks.out","w",stdout);
    	int t;
    	cin>>t;
    	while(t--){
    		int n;
    		cin>>n;
    		solve(n);
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    574
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    (无)
    递交数
    1
    已通过
    1
    上传者