首页 数据库 mysql教程 CF 135 DIV2 B 特别优惠!超值999布尔!

CF 135 DIV2 B 特别优惠!超值999布尔!

Jun 07, 2016 pm 03:15 PM
offer p super

来源:http://codeforces.com/contest/219/problem/B 题意:就是一个物品有一个价,这个价可以最多降低d,求在所下降价不超过d的情况下,能够使价有最多的9且价最高.拿样例来说, 1029 102 原价为1029,最多可下降102元,在符合条件的范围内,能够取得最多的

来源:http://codeforces.com/contest/219/problem/B

题意:就是一个物品有一个价格,这个价格可以最多降低d,求在所下降价格不超过d的情况下,能够使价格有最多的9且价格最高.拿样例来说,

1029 102
登录后复制
原价为1029,最多可下降102元,在符合条件的范围内,能够取得最多的9且价格最高的是999.若没有 符合条件的情况,则输出原价。
登录后复制
思路:首先求出原价的位数,然后计算最多有多少个9,和原价比较以及判断是否符合条件。之后就是一个模拟的过程,一点一点加,直到找到符合条件的借。中间有一些细节需要注意,而且中间运算还有可能超过__int64,都需要处理一下。
登录后复制
代码:
登录后复制
<pre class="brush:php;toolbar:false">#include <iostream>
#include <string.h>
#include <cstdio>
using namespace std;

typedef unsigned __int64 LL;
int fun(LL x){
    int sum = 0;
    while(x){
      sum++;
      x /= 10;
    }
    return sum ;
}
LL cal(int x){
    LL sum = 0;
    for(int i = 1; i <= x; ++i){
       sum = sum * 10 + 9;
    }
    return sum;
}
LL mi(int cnt){
    LL s = 1;
    for(int i = 1; i <= cnt; ++i)
        s *= 10;
    return s;
}
int main(){
    LL p,d;
    while(scanf("%I64d%I64d",&p,&d) != EOF){
       LL value = p - d;
       int cnt = fun(p);
       LL ans = cal(cnt);
       if(ans >= value  && ans <= p){
          printf("%I64d\n",ans);
       }
       else{
         LL x = value % 10;
         LL y = value / 10;
         LL z = y * 10 + 9;
		 if(z > p){
		   z = z - 9;
		   printf("%I64d\n",p);
		   continue;
		 }
         LL num = 0,xx = 0,yy = 0;
         LL cnt = 1;
         while(z <= p){
             cnt++;
           xx = z / mi(cnt);
           yy = z % mi(cnt);
           z = xx * mi(cnt) + cal(cnt);
           num = z;
         }
         num = xx * mi(cnt) + yy;
         cnt--;
         while(num <= p){
           num += mi(cnt);
         }
         printf("%I64d\n",num - mi(cnt));
       }
    }
    return 0;
}
登录后复制


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

英伟达 RTX 40 SUPER 显卡即将发布,发布时间为1月9日0点 英伟达 RTX 40 SUPER 显卡即将发布,发布时间为1月9日0点 Jan 12, 2024 pm 07:00 PM

本站1月6日消息,技嘉的RTX4080SUPER、RTX4070TiSUPER和RTX4070SUPER显卡已经曝光,预计1月9日0点发布。如上图所示,英伟达RTX40SUPER显卡的logo发生了变化,SUPER全大写,而RTX20系列的则是小写的super。RTX20superlogo本站汇总RTX40SUPER显卡爆料规格和价格如下:RTX4080SUPER配备10240CUDA核心和16GB23Gbps256bitGDDR6X显存,999美元(当前约7153元人民币)或1199美元(当前

Java中的static、this、super、final怎么使用 Java中的static、this、super、final怎么使用 Apr 18, 2023 pm 03:40 PM

一、static  请先看下面这段程序:publicclassHello{publicstaticvoidmain(String[]args){//(1)System.out.println("Hello,world!");//(2)}}看过这段程序,对于大多数学过Java的从来说,都不陌生。即使没有学过Java,而学过其它的高级语言,例如C,那你也应该能看懂这段代码的意思。它只是简单的输出“Hello,world”,一点别的用处都没有,然而,它却展示了static关键字的主

Java泛型之协变、逆变、extends与super选择方法 Java泛型之协变、逆变、extends与super选择方法 May 26, 2023 pm 01:46 PM

要了解协变与逆变,首先要引入:根据Liskov替换原则,如果C是P的子类,则P可以代替C,即Pp=newC();C继承于P,记做为C

《沉睡的狗:最终版》PC 版在 GOG 上跌至历史最低价 2.99 美元 《沉睡的狗:最终版》PC 版在 GOG 上跌至历史最低价 2.99 美元 Aug 31, 2024 am 09:52 AM

目前,《Sleeping Dogs: Definitive Edition》在 GOG 上的大幅折扣价仅为 2.99 美元,较原价 19.99 美元大幅折扣 85%。要利用此优惠,只需访问 GOG 上的游戏页面,添加

欧易okex怎么安装详细步骤(2025新手指南) 欧易okex怎么安装详细步骤(2025新手指南) Mar 31, 2025 pm 09:30 PM

本文详细介绍了欧易OKX交易平台的安装方法,涵盖安卓手机、Windows系统和Mac系统三种平台。安卓手机用户可通过Google Play商店下载安装;而Windows和Mac用户则需要访问欧易OKX官网下载对应系统的安装包进行安装。 文章提供了各个步骤的详细指南,方便用户快速完成安装,立即体验欧易OKX提供的服务。 快来下载欧易OKX,开启您的数字资产之旅吧!

Java中super关键字怎么使用 Java中super关键字怎么使用 May 12, 2023 am 08:28 AM

supersuper是一个关键字,全部小写。super和this对比着学习,都是"this/super."出现在实例方法,“this/super()"出现在构造方法当中this:(1)this能出现在实例方法和构造方法中。(2)this的语法是:“this.”、“this()”(3)this不能使用在静态方法中。(4)this.大部分情况下是可以省略的。(5)this.什么时候不能省略呢?在区分局部变量和实例变量的时候不能省略。publicvoidsetName(S

boss直聘offer在哪看 boss直聘offer在哪看 Mar 01, 2024 am 08:25 AM

许多求职的小伙伴在寻找工作时都会选择使用boss直聘这款软件,它为用户提供了便捷高效的求职体验,但是很多玩家们还不清楚boss直聘的offer究竟在哪里查收。那么在下文中就让我们一起跟随小编的介绍,详细了解一下如何查收自己的offer的方法吧,想要了解的用户们就快来跟着本文一起一探究竟吧!boss直聘offer在哪里查收答案:【boss直聘】-【消息】。具体步骤:1、首先打开boss直聘软件,进入到首页中后可以看到相关的信息,在这里我们点击页面下方的【消息】;2、来到消息的页面中后我们就可以查看

华为P60是5G手机吗? 华为P60是5G手机吗? Feb 21, 2024 am 08:30 AM

随着5G技术的发展,人们对5G手机的关注度也越来越高。作为中国最知名的通信设备生产商之一,华为一直以来都在领导着5G技术的研发和应用。在2019年,华为推出了多款5G手机,其中包括华为P60系列。那么,华为P60到底是不是一款5G手机呢?现在就让我们来一起探讨一下。首先,我们需要明确一点,华为P60系列手机并不是5G手机。华为P60系列在2019年发布,它们

See all articles