zoukankan      html  css  js  c++  java
  • 13 November

    [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
    ", ans);
    	}
    	return 0;	
    }
    
  • 相关阅读:
    ueditor 视频上传 cookie丢失问题
    asp分块读取解决ueditor 上传文件200K限制问题
    thinkcmf上传到阿里云虚拟主机后报错
    TP5 apache服务器fastcgi模式下rewrite重写
    Nginx实战之反向代理WebSocket的配置实例
    CentOS7安装Supervisor
    webservice发送带有头信息的数据
    分布式系统 杂记
    docker网络学习笔记
    php 跨域处理
  • 原文地址:https://www.cnblogs.com/greyqz/p/11847322.html
Copyright © 2011-2022 走看看