题目大意

给定正整数 $n$($2\le n\le 10^9$)。
考虑无序整数对 $(x, y)$($1\le x,y\le n, x\ne y$)。
求满足 「$x+y$ 结尾连续的 9 最多」的数对 $(x,y)$ 的个数。

例子:
$n=50$,$(49,50)$ 是一个满足条件的数对。

比赛时我的思路

首先注意到,「两个正整数的和」的结尾的连续的 9 一定不包含进位的贡献,也不产生进位。

首先考虑(数对的和的)结尾最多有几个连续的 9 。不难得出:
设 $n$ 的位数为 $k$ ,令 $x=5\times 10^{k-1}$ 。
若 $n\ge x$,则和的结尾最多有 $k$ 个连续的 9 。
若 $n=10^{k} - 1$,满足条件的数对有 $n - x$ 个,否则有 $n-x+1$ 个。

若 $n < x$ ,数对之和的第 $k$ 位一定小于 $9$,故结尾至多有 $k-1$ 个连续的 9 。

若 $k-1=0$,则为平凡情形。
考虑 $k\ge 2$ 的情形。
设 $n$ 的 第 $k$ 位上的数字为 $h(n)$,显然有 $h(n) > 0 $ 。

考虑数对 $(x,y)$($x>y$),设 $x$ 的第 $k$ 位上的数字为 $h(x)$ 。
将所有满足条件的数对 $(x,y)$ 分成下列若干类:

  1. $h(n)>h(x)=h(y)=0$
  2. $h(n)>h(x) = h(y) > 0$
  3. $h(n)>h(x) > h(y)>0$
  4. $h(n)>h(x) > h(y)=0$
  5. $h(n)=h(x) > h(y) > 0$
  6. $h(n) = h(x) > h(y) = 0$
  7. $h(n) = h(x)= h(y) $

在比赛中,我没考虑到上述第 7 种情况。

总结

本题的思维方式:分类。

实现技巧:
求一个正整数 $n$ 的位数可用 to_string(n).size()

转载于:https://www.cnblogs.com/Patt/p/8053576.html

Codeforces 899D Shovel Sale相关推荐

  1. Codeforces 题目合集+分类+代码 【Updating...】【361 in total】

    961A - Tetris                                                模拟                                      ...

  2. CodeForces 732A-Buy a Shovel

    CodeForces 732A-Buy a Shovel 题目链接:A. Buy a Shovel 思路: 题目大意是商店一把铲子卖 k元,一个人有无数张十块钱和一张零钱r(1~9),要求这人最少要买 ...

  3. CFCC百套计划4 Codeforces Round #276 (Div. 1) E. Sign on Fence

    http://codeforces.com/contest/484/problem/E 题意: 给出n个数,查询最大的在区间[l,r]内,长为w的子区间的最小值 第i棵线段树表示>=i的数 维护 ...

  4. Codeforces Round #797 (Div. 3)无F

    Codeforces Round #797 (Div. 3)无F 这打的也太屎了,白天把G补了才知道简单的很,但f还是没头绪呜呜呜 Problem - A - Codeforces Given the ...

  5. CodeForces 375D Tree and Queries

    传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...

  6. 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)

    题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...

  7. 【codeforces 812C】Sagheer and Nubian Market

    [题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...

  8. CodeForces 获得数据

    针对程序的输出可以看见 CodeForces :当输入.输出超过一定字符,会隐藏内容 所以:分若干个程序进行输入数据的获取 1. 1 for (i=1;i<=q;i++) 2 { 3 scanf ...

  9. codeforces水题100道 第二十七题 Codeforces Round #172 (Div. 2) A. Word Capitalization (strings)...

    题目链接:http://www.codeforces.com/problemset/problem/281/A 题意:将一个英文字母的首字母变成大写,然后输出. C++代码: #include < ...

最新文章

  1. 虚拟机系统如何添加硬件?
  2. (FortiGate)飞塔防火墙防病毒解决方案
  3. 浅谈人性 - 讲讲人性丑恶的一面
  4. android网络游戏开发实战pdf_Python项目开发实战+第2版PDF高清文档下载
  5. 大批量插入数据如何优化
  6. FileItem API详解及演示
  7. C++primer plus第六版课后编程题答案8.6
  8. linux命令fs ls,Linux 命令:fsdisk
  9. linux服务端口加密,linux – 如何通过单个端口处理加密和未加密的http连接
  10. oracle 12c 取消omf,Oracle12c创建及删除PDB
  11. markdown与latex:向量形式给字母加粗 \pmb{}
  12. hdu4009 Transfer water 最小树形图
  13. java jbpm工作流_JBPM工作流
  14. 英语口译笔记法实战指导 吴钟明 pdf_三口过关,名师指导备考干货帖(内附口译笔记讲解)...
  15. Temporal Abstraction
  16. U盘突然提示格式化怎么办?里面的数据怎么办?
  17. 机器学习 --- 概率图 - 表示 - 动态模型
  18. 荣耀play面试流程
  19. win7下后台运行BAT
  20. STM32F103移植STEMWIN并驱动0.96寸OLED实现弹球界面效果

热门文章

  1. 【HDU - 5452】Minimum Cut(树形dp 或 最近公共祖先lca+树上差分,转化tricks,思维)
  2. 【CodeForces - 472A】Design Tutorial: Learn from Math (tricks,思维,数论,打表)
  3. 【HDU - 5688 】Problem D(STL+map)
  4. 从零开始学视觉Transformer (8):卷积和Transformer结合的ViT
  5. mysql操作json优点和缺点_MySQL与JSON-为什么?
  6. java quartz 数据库_SpringBoot+Quartz+数据库存储
  7. 特殊mac地址文档_Mac颜值秒杀Win10?五款神器让Win10化身macOS
  8. 虚拟机安装黑群晖_【群晖系统】HEI群辉DSM 6.2.1 系统安装图文教程 (19年2月)
  9. java中br.readline_Java:java中BufferedReader的read()及readLine()方法的使用心得
  10. 关于jsp页面显示的时间格式和Oracle数据库中的格式不一样的问题