首页 > 编程语言 >AcWing算法周赛第6场 | 3734 求和

AcWing算法周赛第6场 | 3734 求和

时间:2025-01-14 10:58:07浏览次数:3  
标签:周赛 10 int dfs long 3734 AcWing

学习C++从娃娃抓起!记录下AcWing备赛学习过程中的题目,记录每一个瞬间。

附上汇总贴:AcWing算法周赛 |汇总


【题目描述】

用 f ( x ) f(x) f(x) 来表示满足下列条件的最小正整数 a a a:

  1. a ≥ x a\ge x a≥x。
  2. a a a 的各个数位不包含除了 4 4 4 和 7 7 7 以外的其他数字。

现在,给定两个整数 l , r ( l ≤ r ) l,r(l\le r) l,r(l≤r),请你计算 f ( l ) + f ( l + 1 ) + . . . + f ( r ) f(l)+f(l+1)+...+f(r) f(l)+f(l+1)+...+f(r) 的值。

【输入】

一行,两个整数 l , r l,r l,r。

【输出】

一行,一个整数表示求得的和。

【输入样例】

2 7

【输出样例】

33

【分析】

在这里插入图片描述

【代码详解】

《AcWing 3734 求和》 #DFS# #枚举#

#include <bits/stdc++.h>
using namespace std;
#define int long long
vector<int> s;
void dfs(int u, int x)
{
    s.push_back(x);
    if (u==10) return;
    dfs(u+1, x*10+4);
    dfs(u+1, x*10+7);
}
signed main()
{
    dfs(0, 0);
    sort(s.begin(), s.end());
    int l , r;
    cin >> l >> r;
    int res = 0;
    for (int i=1; i<s.size(); i++)
    {
        int a = s[i-1]+1, b = s[i];
        res += s[i] * max(0ll, (min(r, b)-max(l, a)+1));
    }
    cout << res << endl;
    return 0;
}

【运行结果】

2 7
33

标签:周赛,10,int,dfs,long,3734,AcWing
From: https://blog.csdn.net/guolianggsta/article/details/145129904

相关文章

  • leetcode周赛432 T4(单调栈 + 单调队列)
    一道练习单调栈+单调队列的好题题目链接:problem对于求合法子数组数量的题目,可以先考虑传统的枚举右端点,二分左端点的套路。此题用这种方法恰好可行,因为对于一个序列,左端增加一个数不会让操作数更少。因此对于固定右端点,合法的左端点一定是一段区间。所以现在问题转化为:用双指......
  • 【牛客训练记录】牛客周赛 Round 76
    训练情况赛后反思D题被卡常了,我知道是优先队列的问题,但是一直有一个点过不去,E题疑似二分,但是我不会处理快速幂溢出的问题A题工作日每天\(3\)题,求\(x\)天一共有几周,一周有五个工作日,剩下不足\(7\)天的分类讨论。#include<bits/stdc++.h>//#defineintlonglong#de......
  • AcWing算法基础课打卡 | 790 数的三次方根
    学习C++从娃娃抓起!记录下AcWing刷过的题目,记录每一个瞬间。附上汇总贴:AcWing算法基础课打卡|汇总【题目描述】给定一个浮点数,求它的三次方根。【输入】共一行,包含一个浮点数。【输出】共一行,包含一个浮点数,表示问题的解。注意,结果保留位小数。【输入样例】1......
  • AcWing算法基础课打卡 | 788 逆序对的数量
    学习C++从娃娃抓起!记录下AcWing刷过的题目,记录每一个瞬间。附上汇总贴:AcWing算法基础课打卡|汇总788逆序对的数量【题目描述】给定一个长度为nnn的整数数列,请你......
  • AcWing算法基础课打卡 | 789 数的范围
    学习C++从娃娃抓起!记录下AcWing刷过的题目,记录每一个瞬间。附上汇总贴:AcWing算法基础课打卡|汇总789数的范围【题目描述】给定一个按照升序排列的长度为nnn的整......
  • 蓝桥周赛差分问题
    题目如下 暴力不可取,学会差分然后前缀和,大家注意k的取值范围,要对26取余数,因为26为一个循环,我们只需要它的余数就可以了,我的差分数组减1操作,是因为我的下标是0开始的,如果从1开始,就不用减一,然后r的话就是diff[r+1]-=k,这样来写。  记住记住:一定要取26的余数!!!注意下标的选取......
  • AcWing 799:最长连续不重复子序列 ← 双指针
    【题目来源】https://www.acwing.com/problem/content/801/【题目描述】给定一个长度为n的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。【输入格式】第一行包含整数n。第二行包含n个整数(均在0∼10^5范围内),表示整数序列。【输出格式】共一行,包含一个......
  • AcWing 791:高精度加法 ← string+数组
    【题目来源】https://www.luogu.com.cn/problem/P1601https://www.acwing.com/problem/content/793/【题目描述】高精度加法,相当于a+bproblem,不用考虑负数。输入不含前导0。【输入格式】分两行输入。a,b≤10^500。【输出格式】输出只有一行,代表a+b的值。【输入样例】1......
  • 牛客周赛 Round 72
    怎么全是01串A枚举除了末尾的字符,判断下一个是否与它不同,不同则对答案的贡献++B找一个连续子串是好串,如果我们找到长度为len的子串,那么从中任意截取一段均为好串长度为len的子串1个长度为len-1的子串2个.....长度为2的子串len-1个用等差数列公式一个长度为len的好串......
  • ACwing 1524. 最长回文子串
    ACwing1524.最长回文子串因为这个题的数据范围只有1000,所以能O(n)枚举,枚举回文子串的中点,然后向两边延展,看看极限长度是多少,注意每次要区分奇数长度字串和偶数长度字串,两种的计算方式不一样。#include<iostream>#include<cstdio>#include<cstdlib>intmain(){ std::s......