您的位置:首页 > 其它

bzoj4029: [HEOI2015]定价

2017-06-26 14:47 302 查看
尽量让末尾多0。判断能不能是5.

附黄学长代码(其实是我写挂不想改QAQ)。

#include<set>
#include<map>
#include<ctime>
#include<queue>
#include<cmath>
#include<cstdio>
#include<vector>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#define ll long long
using namespace std;
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;
}
int T,l,r,ans,mn;
int add(int x)
{
int k=1;
while(x%10==0)k*=10,x/=10;
return k;
}
int cal(int x)
{
while(x%10==0)x/=10;
int t=x%10,a=0;
while(x)x/=10,a++;
if(t==5)return 2*a-1;
return 2*a;
}
int main()
{
T=read();
while(T--)
{
l=read();r=read();
mn=cal(l);ans=l;
while(1)
{
l+=add(l);
if(l>r)break;
int t=cal(l);
if(t<mn)mn=t,ans=l;
}
printf("%d\n",ans);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: