首页 > 其他分享 >[Codeforces] CF1538F Interesting Function

[Codeforces] CF1538F Interesting Function

时间:2023-12-29 16:23:10浏览次数:42  
标签:Function 10 int Interesting Codeforces re CF1538F

CF1538F Interesting Function

题目传送门

题意

给定两个正整数 \(l, r\)(\(l < r\)),将 \(l\) 不断加 \(1\) 直到 \(l = r\),求出这一过程中 \(l\) 发生变化的位数总数

位数变化指:

  • \(l=909\),将 \(l+1\) 后有 \(2\) 位数字发生变化。
  • \(l=9\),将 \(l+1\) 后也有 \(2\) 位数字发生变化。
  • \(l=489999\),将 \(l+1\) 后有 \(5\) 位数字发生变化。

而总数指:

  • \(l=10\),\(r=20\),个位变化了 \(10\) 次,十位变化了 \(1\) 次,所以总数为 \(11\)。

思路

很明显,当在十位进位时,会比个位多变化一个数位,百位则比十位多变化一个,依此类推。

所以最后我们只需要求出来这个数在相加的过程中每一个数位分别做了多少次仅为操作就行

如果有一个数\(k\),从\(1\)开始进行题目所述操作,那么他在位权是\(10^i\)时(即第\(i-1\)位),就会有\(\frac{k}{10^i}\)

可以用这个方法求出\(l\)和\(r\),再作差即可

最后,将他们进位总数相加即可。

代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
int f[15],l,r,ans;
int p(int x)
{
    int re=1;
    while(x) x--,re*=10;
    return re;
}
void run()
{
    cin>>l>>r;ans=0;
    memset(f,0,sizeof(f));
    for(int i=0;i<=9;i++) f[i]=r/p(i);
    for(int i=0;i<=9;i++) f[i]-=l/p(i);
    for(int i=0;i<=9;i++) ans+=f[i];
    cout<<ans<<endl;
}
signed main(){
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    int t;
    cin>>t;
    while(t--) run();
    system("echo. & pause");
    return 0;
}

标签:Function,10,int,Interesting,Codeforces,re,CF1538F
From: https://www.cnblogs.com/lyk2010/p/17935135.html

相关文章

  • 函数式接口@FunctionInterface
    有以下特点:1.该注解只能标记在“有且仅有一个抽象方法”的接口上。2.JDK8接口中的静态方法和默认方法,都不算事抽象方法。3.接口默认继承java.lang.Object,所以如果接口显示声明覆盖了Object中方法,那么也不算抽象方法。4.该注解不是必须的,如果一个接口符合“函数式接口”定义,那么加不......
  • codeforces比赛(1):codeforces 918_div4
    A、OddOneOut跳转原题点击此:A题地址1、题目大意  给你三个数,其中两个是相等的,问你还有一个不相等的数是多少。2、题目解析  直接暴力枚举即可,只要找到两个数相等,那么答案就是另一个数。#include<bits/stdc++.h>usingnamespacestd;intT;inta,b,c;voidsol......
  • Codeforces Round 917 (Div. 2)
    A.LeastProduct存在\(a[i]=0\),\(min=0\),不需要任何操作。负数个数为偶数(包括0),\(min=0\),把任意一个改为\(0\)。负数个数为奇数,\(min=\proda[i]\),不需要任何操作。voidsolve(){ intn; cin>>n; vector<int>b,c,d; for(inti=0;i<n;++i){ in......
  • [Codeforces] CF1536C Diluc and Kaeya
    CF1536CDilucandKaeya题意题目传送门给你一个字符串\(S\),其中只包含'K'或'D'两种字符,要求划分这个字符串使得各部分的\(n(D):n(K)\)相同,其中\(n(D)\)表示\(S\)中字符'D'出现的个数,最大化划分后形成的组数。求出\(S\)的所有前缀中的上述答案。思路注意到,如......
  • codeforces刷题(1100):1901B_div2
    B、ChipandRibbon跳转原题点击此:该题地址1、题目大意  存在一条由n个单元格组成的带子。chip可以做两个操作:1、由\(i\)走到\(i+1\),但是不能走到\(i-1\);2、可以传送到任意位置,包括传送到原地。每到一个单元格,该单元格的数值+1(初始为0)。最开始chip在从第一格开始走起(题......
  • JavaScript | Variable、Function、Module、Class (一)
    函数函数声明functionsayHello(){return"HelloJavaScript!!"}函数表达式letsayHello=function(){return"HelloJavaScript!!"}函数、变量提升:函数和变量都会被提升,且函数会被优先提升;提升的意思是只要有声明定义,那么先调用都可以。因为JS会把定义放到......
  • codeforces刷题(1100):1902B_div2
    B、GettingPoints跳转原题点击此:该题地址1、题目大意  Monocarp为了完成总共n天的某学期的p学分任务。Monocarp每天可以选择两种度过方式:上一次课和完成最多两个任务或者休息一天。其中上课获得l学分,每个任务获得t学分,其中任务不可以重复接取,并且每周获得一个新的任务(第一......
  • 「题解」Codeforces 1427G One Billion Shades of Grey
    感谢127的指导/ll\(|h_u-h_v|=\max(0,h_u-h_v)+\max(0,h_v-h_u)\),那么可以把它看成这样的问题:\[\min\{\sum_{(u,v)}\max(0,h_u-h_v+w_{u,v})c_{u,v}\}\]对偶一下,问题就变为:如果两个格子相邻就互相连容量为\(c_{u,v}=1\),费用为\(w_{u,v}=0\)的边,跑最大费用循环流。为了限......
  • PBKDF2(Password-Based Key Derivation Function 2)算法
    一、引言在当今数字时代,保护用户数据和隐私的安全变得越来越重要。为实现这一目标,加密和密钥管理技术发挥着关键作用。PBKDF2(Password-BasedKeyDerivationFunction2)算法作为一种基于密码的密钥生成方法,广泛应用于各种安全场景。本文将从各个方面介绍和解释PBKDF2算法,剖......
  • Multivariate Function in Mathematics Education: 30 Engaging Blog Posts for Teach
    1.背景介绍在数学教育领域,多变量函数是一个非常重要的概念。它们在许多实际应用中发挥着关键作用,例如经济学、生物学、物理学等领域。然而,在教育中,多变量函数的教学和学习往往受到一些挑战。这篇博客文章将探讨如何通过30个有趣的博客帖子来提高多变量函数在数学教育中的教学质量。......