博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces 204A Little Elephant and Interval
阅读量:6443 次
发布时间:2019-06-23

本文共 970 字,大约阅读时间需要 3 分钟。

http://codeforces.com/problemset/problem/204/A

题意:给定一个【L,R】区间,求这个区间里面首位和末尾相同的数字有多少个

思路:考虑这个问题满足区间加减,我们只考虑【1,n】,考虑位数小于n的位数的时候,我们枚举头尾的数是多少,然后乘上10的某幂次,再考虑位数相等时,从高位往低位走,先考虑头尾数字小于最高位的情况,也像刚才那个随便取,当头尾数字等于最高位时,从高往低走,先算不与这位相等的,走下一步就代表与这位相等。最后要记得判断一下如果原数字头等于尾,答案要加1.

#include
#include
#include
#include
#include
#define ll long longll st[200005];ll solve(ll x){ if (x<=10){ return std::min(9LL,x); } if (x<=99){ ll t=x/10LL; return 9LL+t-1+(t<=(x%10)); } ll res=18; int top=0; while (x){ st[++top]=x%10; x/=10; } ll s=10; for (int i=1;i+3<=top;i++){ res+=9*s; s*=10LL; } for (int i=1;i
=2;i--) { for (int j=0;j
=st[top]) res++; return res;}int main(){ ll n,m; scanf("%I64d%I64d",&n,&m); printf("%I64d\n",solve(m)-solve(n-1));}

 

转载于:https://www.cnblogs.com/qzqzgfy/p/5662332.html

你可能感兴趣的文章
《Apache Kafka实战》读书笔记-调优Kafka集群
查看>>
小程序开发事项
查看>>
福利 | 2018各大技术大会资料汇总(可下载)
查看>>
寻找下一代CTO - 激发潜能把握成功!!
查看>>
用DELPHI 开发压缩、解压、自解压、加密
查看>>
Linux命令行得到系统IP
查看>>
SQL Server索引的维护 - 索引碎片、填充因子 <第三篇>
查看>>
python类型转换、数值操作(收藏)
查看>>
mysql delimiter
查看>>
关于C#静态构造函数的几点说明
查看>>
理解C# 4 dynamic(4) – 让人惊艳的Clay
查看>>
管理-职业化沟通
查看>>
angular之$compile
查看>>
SQL中Truncate的用法
查看>>
一键安装docker-ce
查看>>
彻底理解Netty,这一篇文章就够了
查看>>
极光开发者沙龙 JIGUANG MEETUP —— 移动应用性能优化实践
查看>>
最新的CocoaPods安装步骤 pod install/pod update更新慢等问题
查看>>
高并发下的一些问题
查看>>
如何为Django添加中文搜索服务
查看>>