cf 150&&152 div 2
#150上次做了忘写解题报告了,不过也因为做的很烂,最近想回过头来重新做一遍。#152昨天晚上做的,做的也很烂,最近熬夜熬得扛不住了。
先把文章写这,做完了补上代码,也算是个提醒吧。
round #150
A。不贴了,太水了。
B。
[cpp]
ll n;
set<int>ss;
void dfs(ll x,int y,int z)//x 为构造的数,y,z分别为2个数字,就是用y和z 2个数字构造的x.
{
if(x>n)return ;
ss.insert(x);
if(x==0&&y==0&&z==0)return ;
if((x==0&&y==0))
{
dfs(x+z,y,z);
}
else if(x==0&&z==0)
{
dfs(x+y,y,z);
}
else
{
dfs(x*10+y,y,z);
dfs(x*10+z,y,z);
}
}
void solveB()
{
cin>>n;
for(int i=0; i<10; i++)
for(int j=0; j<10; j++)
dfs(0,i,j);
cout<<ss.size()-1<<endl;
}
C
D
E
round #152
A,水题。
B。一开始想是JAVA爆搞,因为最多是210次循环,以为能搞,没想到还是TLE了,因为JAVA大数的运算实在太费时间了。一个pow(10^5)估计就超时了。
然后打了个4-100位的表,发现最后3位是有循环节的。分别是50,80,170,20,200,110。
接下来就很简单了。
[cpp]
string aa[]={"50","80","170","20","200","110"};
void solveB()
{
int n;
cin>>n;
if(n<=2)
cout<<-1<<endl;
else
{
if(n==3)
cout<<210<<endl;
else
{
int l=n-1-aa[(n-4)%6].size();
cout<<1;
for(int i=0;i<l;i++)
cout<<0;
cout<<aa[(n-4)%6]<<endl;
}
}
}
C
D
E
太水了,赶紧把其他题A了。。。
补充:软件开发 , C++ ,