您的位置:首页 > 其它

HDU 5867 Water problem(模拟题目)【HDU多校联合8.18】

2016-08-18 19:07 351 查看
题目链接:

http://acm.split.hdu.edu.cn/showproblem.php?pid=5867

简单的模拟题目。

下面是AC代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;

int a[22]= {0,3,3,5,4,4,3,5,5,4,3,6,6,8,8,7,7,9,8,8,6};
int b[1005];
int num[1005];

void init()
{
b[20]=6,b[30]=6,b[40]=5,b[50]=5,b[60]=5,b[70]=7,b[80]=6,b[90]=6,b[100]=7;
int sum=0;
for(int n=0; n<=1000; n++)
{
if(n<=10)
{
sum+=a
;
num
=sum;
continue;
}
if(n==1000)
{
sum+=11;
num
=sum;
continue;
}
int n1=n/100;
int n2=n%100;
if(n2==0)
{
sum+=(a[n1]+b[100]);
num
=sum;
continue;
}
if(n2<=20)
{
if(n1==0)
{
sum+=a[n2];
num
=sum;
}
else
{
sum+=(a[n2]+3+a[n1]+b[100]);
num
=sum;
}
}
else
{
int n3=n2%10;
n2=(n2/10)*10;
if(n1==0)
{
sum+=(b[n2]+a[n3]);
num
=sum;
}
else
{
sum+=(b[n2]+a[n3]+3+a[n1]+b[100]);
num
=sum;
}
}
}
}

int main()
{
int nn,t;
scanf("%d",&t);
init();
while(t--)
{
scanf("%d",&nn);
printf("%d\n",num[nn]);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  HDU