第十四届蓝桥杯大赛软件赛省赛 C/C++ 大学 A 组 C题

这篇具有很好参考价值的文章主要介绍了第十四届蓝桥杯大赛软件赛省赛 C/C++ 大学 A 组 C题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述

第十四届蓝桥杯大赛软件赛省赛 C/C++ 大学 A 组 C题


格式输入

输入一行包含两个整数 L, R,用一个空格分隔。


格式输出

输出一行包含一个整数满足题目给定条件的 x 的数量。


样例输入

1 5


样例输出

4


评测用例规模与约定

对于 40% 的评测用例,L R ≤ 5000 ;
对于所有评测用例,1 ≤ L ≤ R ≤ 10^9 。


解析

暴力没说的,y肯定在l-r之间。同时要想到x=(y+z)(y-z)那么x就只能是y+z的倍数。
1.使用了两层循环,分别用于枚举 y 和 z。对于每一个 y 和 z,都可以根据题目给定的公式 x = y 2 − z 2 x=y^2-z^2 x=y2z2 计算出对应的 x 值。如果 x 值在区间 [L, R] 中,那么就将答案加一。最后输出答案即可。
需要注意的是,由于输入范围很大,因此对应的数据类型也需要选择比较大的类型,这里使用了 long long 类型。
啊啊啊,感谢提醒,有可能一个数还有不同的组合。


参考程序

~~
#include
#include
using namespace std;
typedef long long LL; // 定义 long long 类型为 LL
int main()
{
LL L, R;
cin >> L >> R;
int ans = 0;
for (LL i = 1; i <= R; i++) { // 遍历所有的 y
for (LL j = 0; j <= i; j++) { // 遍历所有的 z
LL x = i * i - j * j; // 根据公式计算出 x
if (x >= L&&x<=R) ans++; // 如果 x 在区间 [L, R] 中,累加答案
}
}
cout << ans << endl; // 输出答案
return 0;
}

~~ 改后 过40% 肯定是超时了,第一个点可以过,大佬们看看怎么不会超时。

#include<iostream>
using namespace std;
#include<vector>
typedef long long ll;
ll a[100000010];
int main()
{
    ll l, r;
    cin >> l >> r;
    int ans = 0;
    for (ll i = 1; i <= r; i++) { // 遍历所有的 y
        for (ll j = 0; j <= i; j++) { // 遍历所有的 z
            ll x = i * i - j * j; // 根据公式计算出 x
           if(x>=l&&x<=r) a[x]++;//x的出现存到数组里
        }
    }
    for (long long i = 1; i <= r; i++)
    {
        if (a[i] > 0) ans++;
    }
    cout << ans << endl; // 输出答案
    return 0;
}

补的在大佬们点拨下:一些数论的知识,算出不能表示的数(不能被4整除可以被2整除)的个数减去。O(1)复杂度。

#include <iostream>
using namespace std;
int main() {
    int L, R;
    cin >> L >> R;
    int cnt = (R / 2) - ((L - 1) / 2) - (R / 4) + ((L - 1) / 4);
    cout << R-L+1-cnt<< endl;
    return 0;
}

以个人刷题整理为目的,如若侵权,请联系删除~文章来源地址https://www.toymoban.com/news/detail-413570.html

到了这里,关于第十四届蓝桥杯大赛软件赛省赛 C/C++ 大学 A 组 C题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第十四届蓝桥杯大赛软件赛省赛 C/C++ 大学 B 组

    注意!!!!!!!!!!这篇题解为赛时的个人做法,不代表是正确的,仅供参考。 更新:思路上应该都对,很多题都有细节错误,代码不用看了,太久没敲代码了(- -) 更新2:代码除了岛屿的都改好了,整数删除常数有点大,可能会t,赛时的代码一堆错误,还是对自己的文

    2024年02月05日
    浏览(43)
  • 第十四届蓝桥杯大赛软件赛省赛(C/C++ 大学B组)

    目前除 B、F题未补,其余题均已更完,经非官方数据测试均可AC。欢迎交流   小蓝现在有一个长度为 100 的数组,数组中的每个元素的值都在 0 到 9 的 范围之内。数组中的元素从左至右如下所示: 5 6 8 6 9 1 6 1 2 4 9 1 9 8 2 3 6 4 7 7 5 9 5 0 3 8 7 5 8 1 5 8 6 1 8 3 0 3 7 9 2 7 0 5 8 8 5 7 0

    2024年02月02日
    浏览(47)
  • 第十四届蓝桥杯大赛软件赛省赛 C/C++ 大学 A 组 C题

    输入一行包含两个整数 L, R,用一个空格分隔。 输出一行包含一个整数满足题目给定条件的 x 的数量。 1 5 4 对于 40% 的评测用例,L R ≤ 5000 ; 对于所有评测用例,1 ≤ L ≤ R ≤ 10^9 。 暴力没说的,y肯定在l-r之间。同时要想到x=(y+z)(y-z)那么x就只能是y+z的倍数。 1.使用了

    2023年04月15日
    浏览(97)
  • 第十四届蓝桥杯大赛软件赛省赛 C/C++ 大学 A 组 D题

    输入一行包含一个长度为 n 的字符串表示 num(仅包含数字字符 0 ∼ 9), 从左至右下标依次为 0 ∼ n − 1。 输出一行包含一个整数表示答案。 210102 8一共有 8 种不同的方案: 1)所选择的子串下标为 0 ∼ 1 ,反转后的 numnew = 120102 210102 ; 2)所选择的子串下标为 0 ∼ 2 ,反转

    2023年04月11日
    浏览(40)
  • 第十四届蓝桥杯大赛软件赛省赛JavaB组解析

    目录 说在前面 试题 A: 阶乘求和 代码: 题目分析: 试题 B: 幸运数字 代码: 题目分析: 试题 D: 矩形总面积 代码: 题目分析: 试题 G: 买二赠一 代码: 题目分析: 试题 H: 合并石子 代码: 题目思路: 说在最后 比赛结束啦,可能这是本科生涯的最后一次蓝桥杯啦!赛前也

    2023年04月11日
    浏览(41)
  • 第十四届蓝桥杯大赛软件赛省赛(C/C++B组)

    目前除 B、F题未补,其余题均已更完,经非官方数据测试均可AC。欢迎交流   小蓝现在有一个长度为 100 的数组,数组中的每个元素的值都在 0 到 9 的 范围之内。数组中的元素从左至右如下所示: 5 6 8 6 9 1 6 1 2 4 9 1 9 8 2 3 6 4 7 7 5 9 5 0 3 8 7 5 8 1 5 8 6 1 8 3 0 3 7 9 2 7 0 5 8 8 5 7 0

    2023年04月13日
    浏览(41)
  • 第十四届蓝桥杯大赛软件赛省赛(C/C++ 研究生组)

    蓝桥杯 2023年省赛真题 C/C++ 大学G组  试题 A: 工作时长  试题 B: 与或异或  试题 C: 翻转  试题 D: 阶乘的和  试题 E: 公因数匹配  试题 F: 奇怪的数  试题 G: 太阳  试题 H: 子树的大小  试题  I: 高塔  试题 J: 反异或 01 串 除去第 F rm F F 题,其他题目在其他组别都有出

    2024年02月08日
    浏览(50)
  • 第十四届蓝桥杯大赛软件赛省赛-试题 B---01 串的熵 解题思路+完整代码

    欢迎访问个人网站来查看此文章:http://www.ghost-him.com/posts/db23c395/ 对于一个长度为 n 的 01 串 S = x 1 x 2 x 3 . . . x n S = x_{1} x_{2} x_{3} ... x_{n} S = x 1 ​ x 2 ​ x 3 ​ ... x n ​ ,香农信息熵的定义为 H ( S ) = − ∑ 1 n p ( x i ) l o g 2 ( p ( x i ) ) H(S ) = − {textstyle sum_{1}^{n}} p(x_{i})log_{2} (p

    2023年04月10日
    浏览(44)
  • 第十四届蓝桥杯大赛软件组省赛 Python大学A组 个人暴力题解

    4.23 update: 省一咯 Powered by: NEFU AB-IN 博主个人的暴力题解,基本很少是正解,求轻喷 题意 思路 模拟即可,本身想用Python自带的datetime库,结果发现年不能开那么大,就直接手写了 代码 题意 思路 DFS爆搜即可 代码 题意 思路 直接没思路,一看到数据范围瞬间怂了,脑子里想的

    2023年04月09日
    浏览(42)
  • 2021 第十二届蓝桥杯大赛软件赛省赛,C/C++ 大学B组题解

    序 比赛时长: 四个小时 比赛规则: 蓝桥杯比赛跟天梯赛、ACM还不太一样,比赛中提交的答案并没有反馈机制,也就是说你提交了答案以后,自己并不知道是对是错,就像考试一样,只有交了卷,成绩下来以后才能知道自己的奖项。 满分150 T1-T5答案提交共45分,分值分别是

    2023年04月09日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包