【BZOJ4029】[HEOI2015]定价(贪心)】的更多相关文章

「BZOJ4029」[HEOI2015] 定价 2015年4月28日2,7490 Description 在市场上有很多商品的定价类似于 999 元.4999 元.8999 元这样.它们和 1000 元.5000 元和 9000 元并没有什么本质区别,但是在心理学上会让人感觉便宜很多,因此也是商家常用的价格策略.不过在你看来,这种价格十分荒谬.于是你如此计算一个价格 p(p 为正整数)的荒谬程度: 1.首先将 p 看做一个由数字组成的字符串(不带前导 0): 2.然后,如果 p 的最后一个字符是…
4029: [HEOI2015]定价 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=4029 Description 在市场上有很多商品的定价类似于 999 元.4999 元.8999 元这样.它们和 1000 元.5000 元和 9000 元并没有什么本质区别,但是在心理学上会让人感觉便宜很多,因此也是商家常用的价格策略.不过在你看来,这种价格十分荒谬.于是你如此计算一个价格 p(p 为正整数)的荒谬程度: 1.首先将 p 看做一个…
Description 在市场上有很多商品的定价类似于 999 元.4999 元.8999 元这样.它们和 1000 元.5000 元和 9000 元并没有什么本质区别,但是在心理学上会让人感觉便宜很多,因此也是商家常用的价格策略.不过在你看来,这种价格十分荒谬.于是你如此计算一个价格 p(p 为正整数)的荒谬程度: 1.首先将 p 看做一个由数字组成的字符串(不带前导 0): 2.然后,如果 p 的最后一个字符是 0,就去掉它.重复这一过程,直到 p 的最后一个字符不是 0: 3.记 p 的长…
贪心. 每次将最后一个非零位加一判断即可. 一开始想少了,只关心把最后一位变成5了,其实可以都变的. #include<bits/stdc++.h> using namespace std; int T,l,r; int add(int x) { ; ==)k*=,x/=; return k; } int calc(int x) { ,b=; int y=x; ,b++; ==)x/=,k++; ==)-; ; } int main() { // freopen("1.out&quo…
思路:找规律?$or$贪心. 提交:1次 题解: 发现:若可以构成$X0000$,答案绝对不会再在数字最后把$0$改成其他数: 若可以构成$XX50...0$更优. 所以左端点增加的步长是增加的($inc=pow(10,x),x$递增). 所以去掉了一些不必要的枚举. #include<cstdio> #include<iostream> #include<cmath> #define R register int using namespace std; #defin…
[BZOJ4029][HEOI2015]定价(贪心) 题面 BZOJ 洛谷 题解 每次加上十进制下的\(lowbit\)就行了??? #include<iostream> #include<cstdio> using namespace std; inline int read() { int x=0;bool t=false;char ch=getchar(); while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();…
P4109 [HEOI2015]定价 模拟(有点儿贪心) 题目要求在区间$l,r$中$x$后导0尽量多,且除去后导0之外,最后一个数尽量是$5$才最优 从$l$到$r$依次考虑, 假设当前考虑到$5000$,$r=60000$, 那么在$5000$到$6000$之间的都不用考虑,因为比当前优的只能是后导0比其多的(emmm),应该是后导0与其一致或比其多并且符合上述条件的 那么每次$l$都要加上$l$这个数的后导0的个数个10 #include<bits/stdc++.h> using nam…
分类讨论大法好! \(solution:\) 先说一下我对这个题目的态度: 首先这一题是贪心,这个十分明显,看了一眼其他题解都是十分优秀的贪心,可是大家都没有想过吗:你们贪心都是在区间\([l,r]\)上枚举的贪心,虽然每一次可以直接加上 10 的阶乘,但你们毕竟是用的\(int\),\(long long\) 啊!.这一题得正解复杂度是\(log_{10}(n)\)的,不得不说题目的数据范围给的太小了只有\(10^9\) ,如果按照复杂度,数据范围甚至可以到\(10^{10000000}\)级…
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=4029 题意概述:对于一个数字的荒谬程度定义如下:删除其所有的后缀0,然后得到的数字长度为a,如果最后一个数字是5,荒谬程度为2*a-1,否则荒谬程度为2*a现给出一些区间[L,R],询问区间内荒谬程度最小的价格.如果有多个,给出最低的那个. T<=100,1<=L,R<=10^9 分析: 本来以为找到了一个数位dp的题结果发现随意分析一下性质就成了个贪心.... 首先可以发现最后…
前言 最近学了数位DP,感觉挺简单又实用.这道题就比较水,可以用300B的贪心过掉-网上似乎大多是贪心的题解,我就写写DP的做法 题意 给出正整数区间[L,R][L,R][L,R],定义荒谬值为 (去掉后导零的数的长度)*2-[去掉后导零之后末位为5].求荒谬值最小的数.若有多个则输出最小值. 状态定义为 (i,s,cnt0,flg,fl,fr)(i,s,cnt0,flg,f_l,f_r)(i,s,cnt0,flg,fl​,fr​) int iint\ iint i:表示当前在第 iii 位(最…