社区讨论

赛时60,赛后写一遍成10了[T-T]

P11229[CSP-J 2024] 小木棍参与者 6已保存回复 10

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
10 条
当前快照
1 份
快照标识符
@m3yf0kkx
此快照首次捕获于
2024/11/26 20:10
去年
此快照最后确认于
2025/11/04 13:52
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
#define int long long
inline int read()
{
    int x=0,F=1;
    char ch=getchar();
    while(ch<'0'||ch>'9')
    {
        if(ch=='-')
            F=-1;
        ch=getchar();
    }
    while(ch>='0' && ch<='9')
        x=x*10+ch-'0',ch=getchar();
    return x*F;
}
void write(int x)
{
    if(x<0)
        putchar('-'),x=-x;
    if(x>9)
        write(x/10);
    putchar(x%10+'0');
    return;
}
const int N=1E3;
int sticks[N+5]={6, 2, 5, 5, 4, 5, 6, 3, 7, 6}, pre[N+5];
void work(int n)
{
	if(n==1)
	{
		write(-1), putchar(10);
		return;
	}
	write(pre[n]);
	while(n>7*3)
	{
		n-=7, write(8);
	}
	putchar(10);
}
signed main(){
	//天才CuteQiQi
	for(int i=1; i<N; ++i)
	{
		if(i>9)
		{
			sticks[i]=sticks[i/10]+sticks[i%10];
		}
		if(not pre[sticks[i]])
		{
			pre[sticks[i]]=i;
		}
	}
	for(int t=read(); t; --t)
	{
		work(read());
	}
	return 0;
}


回复

10 条回复,欢迎继续交流。

正在加载回复...