[HEOI2015] 定价

BZOJ 4027: 在市场上有很多商品的定价类似于 999 元、4999 元、8999 元这样。它们和 1000 元、5000 元和 9000 元并没有什么本质区别,但是在心理学上会让人感觉便宜很多,因此也是商家常用的价格策略。不过在你看来,这种价格十分荒谬。于是你如此计算一个价格 p(p 为正整数)的荒谬程度:

1、首先将 p 看做一个由数字组成的字符串(不带前导 0);

2、然后,如果 p 的最后一个字符是 0,就去掉它。重复这一过程,直到 p 的最后一个字符不是 0;

3、记 p 的长度为 a,如果此时 p 的最后一位是 5,则荒谬程度为 2 * a - 1;否则为 2 * a。

例如,850 的荒谬程度为 3,而 880 则为 4,9999 的荒谬程度为 8。

现在,你要出售一样闲置物品,你能接受的定价在 [L, R] 范围内,你想要给出一个荒谬度最低的价格。T ≤ 100,1 ≤ L ≤ R ≤ 10^9.

贪心。

#include <cstdio>
#include <cstring> int T, L, R;
int ans; inline int calc(int x) {
while (!(x%10)) x/=10;
register int k=x%10, a=0;
while (x) x/=10, ++a;
if (k==5) return (a<<1)-1; return a<<1;
}
inline int add(int x) {
register int k=1;
while (!(x%10)) x/=10, k*=10;
return k;
} int main() {
for (scanf("%d", &T); T; --T) {
scanf("%d%d", &L, &R);
ans=L;
register int p=0x3f3f3f3f, q;
while (L<=R) {
q=calc(L);
if (p>q) p=q, ans=L;
L+=add(L);
}
printf("%d\n", ans);
}
return 0;
}

最新文章

  1. jQuery Colorbox弹窗插件使用教程小结、属性设置详解
  2. Rdseed与SAC的安装
  3. SVN和CVS的区别
  4. Win10专业版激活方法可查版本
  5. 在项目中代替DevExpress(一)
  6. JAVA GC 简单总结
  7. poj 1114 完全背包 dp
  8. 用sql的select语句从数据库中获取数据
  9. iOS中CollectionView由于多次点击造成错误的解决方案
  10. JBPM数据库表说明
  11. MySQL存储过程实例
  12. 监控redis进程,如果没有自动重启
  13. 计科1702冯亚杰C语言程序设计预备作业
  14. RabbitMQ In JAVA 介绍及使用
  15. PHP中的常用数组操作方法
  16. SQL Server数据库开发的二十一条军规
  17. 如何系统的学习Java
  18. .NET默认一个客户端对同一个服务器地址同时只能建立2个TCP连接
  19. CSS3知识!
  20. 电脑一直报PCIE BUS错误的原因

热门文章

  1. 前端 CSS 盒子模型 边框 border属性
  2. Windows下图文详解Mongodb安装及配置
  3. Simpsons’ Hidden Talents
  4. [LeetCode] 211. 添加与搜索单词 - 数据结构设计
  5. 修改admin中App的名称与表的名称
  6. thinkphp5发送邮件(实例代码 非常适合新手)
  7. linux下解压缩.tar.bz2到某目录下
  8. 【转】uboot中的mmc命令
  9. springboot之学习搭建
  10. 牛客练习赛53E 老瞎眼 pk 小鲜肉(线段树)