东华 OJ 一维数组竞赛 等差数列

Pandas 使用numpy linspace()函数创建一维等差数组 Pandas 使用numpy linspace()函数创建一维等差数组。 阅读详情

心路历程和代码更改尽在注释中

因为正好在学STL,所以故意用容器来写的。但是因为不熟所以光写代码就挺久了。

问题描述:

  1. 第一个问题:问题如何拆分。
  2. 第二个问题:选择什么容器完成。
  3. 第三个问题:如何使用容器(bushi
  4. 第四个问题:如何设置第一优先和第二优先排序
  5. 第五个问题:循环写多了tle怎么破。

AC代码(含修改前代码于注释中)

#include <bits/stdc++.h>
#include <set>

using namespace std;

int main()
{
    int n,m;
    scanf("%d%d",&n,&m);
    /*需求:
    * 找满足n的等差数列且b为第一优先,a为第二优先输出
    * 没找到输出NONE
    * 实现方法:
    * 首先以m为上限找到所有双平方数的集合(集合不能有重复元素)->set
    * 依次判断a_1、a_2···是否在set容器内有符合的元素//tle
    * 如果有继续判断,直至满足n个元素//tle
    * 如果无则break掉
    * 由题意,不会有任意n,m,使得a_n=a_m
    */
    set <int> s;
    for(int i=0;i<=m;i++){//set自动去重,排序
        for(int j=0;j<=m;j++){
            s.insert(i*i+j*j);
        }
    }
    vector<int> vec(62501,0);
    for(auto itr:s){
        vec[itr]++;
    }
    int c=0;//count
    //rbegin();访问最后一个元素的迭代器
    for(int k=1;k<=2*m*m/(n-1);k++){//公差
        for(set <int>::iterator it= s.begin();it!=s.end();it++){//第一项
            if((*it)+(n-1)*k>*(s.rbegin())){break;}//以这个为第一项的最后一项已经超出
            bool flag =1;
            for(int time =0;time<n;time++){
                if(!vec[(*it)+time*k]){
                    flag=0;
                    break;
                }
                // if(lower_bound(s.begin(),s.end(),(*it)+time*k)==s.end()){flag=0;break;}
                // if(*(lower_bound(s.begin(),s.end(),(*it)+time*k))!=(*it)+time*k){flag=0;break;}
                //if(s.find((*it)+time*k)==s.end()){flag=0;break;}//O(nlogn)
                //p.push_back(make_pair<int,int>(k,i));//make_pair只能常量赋值?
            }
            if(flag){//循环本身就升序
                cout<<*it<<" "<<k<<endl;
                c++;
            }
        }
    }
    if(c==0){
        cout<<"NONE"<<endl;
    }
    system("pause");
    return 0;
}

过程:

  1. 第一个问题如注释,我拆分为了计算并储存这个两平方数和的集合以及遍历查找是否每一项都在这个集合内。
  2. 第二个问题,既然集合肯定set。
  3. 第三个问题:百度。
  4. 第四个问题:原本是打算用vector <pair<int,int>> vec;来保存并用sort()函数排序的。但是vsc给我说输入的参数不对?(用常量1,2不报错,用a,b变量就报错了)。然后就放弃了。后面改用循环解决(将外层循环的自变量设置为第一优先的变量,中间层为第二优先再输出即可)。
  5. 第五个问题:原本是三重循环+find()函数来判断该数是否存在于集合或者用三重循环+lower_bound()函数来实现此功能(因为lower_bound()函数理论上更快)但是反而用前者tle少一,不解。(两种代码均在注释)后面改为之前做过的计数的方法,另新建一个动态数组,然后把set容器内元素的值作为下标,动态数组存放该下标元素有的个数。如此就不必使用循环或其他函数就能快速判断该数是否在集合内。
36 数列1(进阶题)----东华大学2020计算机考研复试oj上机题 问题描述 : 思维的严密性是相当重要的,尤其是在程序设计中,一个小小的错误,就可能导致无法想象的后果。明明的爸爸是一名富有经验的程序设计专家,深知思维严密的重要性。于是在明明很小的时候,就通过游戏的方式训练明明的思维严密性。今天,明明的爸爸和明明做了一个数列的游戏。 这个游戏很简单,就是有一数列,现在需要在数列中选出一个或者连续若干个数,要求这些数的和能被11整除。明明的爸爸想锻炼明明思维的严密性... 阅读详情

相关推荐

东华大学2020考研计算机OJ题目解答分享——进阶篇(45)

45 等差数列 作者: xxx时间限制: 1S章节: 一维数组 问题描述 : 一个等差数列是一个能表示成a, a+b, a+2b,…, a+nb (n=0,1,2,3,…) 在这个问题中a是一个非负的整数,b是正整数。 写一个程序来找出在双平方数集合S中长度为n的等差数列。双平方数集合是所有能表示成p2+q2的数的集合。 输入说明 : 第一行: N(3<= N<=25),要找的等差数列...

qq_38344326的博客 536

leetCode 413 等差数列划分(一维dp)

题目链接:点击查看 题目描述: 给定一个数组,求这个数组中连续且等差的子数组一共有多少个。 输入输出: A = [1, 2, 3, 4] 返回: 3, A 中有三个子等差数组: [1, 2, 3], [2, 3, 4] 以及自身 [1, 2, 3, 4]。 题目分析: 这道题略微特殊,因为要求是等差数列,可以很自然的想到子数组必定满足 num[i] - num[i-1] = num[i-1] - num[i-2]。然而由于我们对于 dp 数组的定义通常为以 i 结尾的,满..

在森林里麋了鹿 323

SAP资产按每天折旧功能介绍

注意:此处在计算百分比时将30天作为剩余使用寿命,因为SAPS/4HANA中的计算是通过考虑购置第一年的折旧总天数来进行的。这是因为我在计算总使用寿命时只使用了365天,如果剩余使用寿命大于1年,SAPS/4HANA会将闰年规范化为365天。此功能仅对确定使用寿命或剩余寿命百分比的折旧键有用,如果需要,这种折旧到日的解决方案可以应用于需要每天计算折旧的跨行业(任何国家/行业)。注意:这里在计算百分比时考虑了2天,因为364天已经过期,但目前我们到达2024年,使用寿命为366天。它只会在下一年生效。

yanzibing99的博客 1560

试题 H:等差数列(套题)

试题 H:等差数列 【问题描述】 数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一 部分的数列,只记得其中N个整数。 现在给出这 N个整数,小明想知道包含这 N个整数的最短的等差数列有 几项? 【输入格式】 输入的第一行包含一个整数N。 第二行包含 N个整数 A1,A2,···,AN。(注意 A1 ∼AN并不一定是按等差数 列中的顺序给出) 【输出格式】 输出一个整数表示答案。 【样例输入】 5 2641020 【样例输出】 10 【样例说明】 包含2、6、4、10、20的最短的等差数列是

FG_future的博客 434

LIN 协议测试

如下图,使用PicoScope示波器抓取报文Id为0x18的波形,数据场Byte1的长度为519.994μs,Byte1共10bit,计算位时间:tBit= 519.994/10 = 51.9994μs,符合预期。■ 唤醒信号是一个250μs到5ms的显性电平,发送唤醒信号的节点发送唤醒信号后150ms~250ms没有收到其他节点的唤醒信号,发送唤醒信号的节点发送新的唤醒信号。对于LIN主节点,检查发送的帧头长度是否符合设计要求,对于LIN从节点,检查从节点能否正确响应设计范围之内的帧头长度。

m0_63902994的博客 5931

Android开发中StateFlow与LiveData的5个关键区别及实战避坑指南

本文深度解析了Android开发中StateFlow与LiveData的5个核心区别,包括设计哲学、生命周期管理、值更新策略、线程模型及协程生态整合。通过实战代码对比,为开发者在现代MVVM架构下的状态管理选型提供清晰的决策指南和避坑建议,帮助构建更健壮、可测试的应用。

weixin_29012677的博客 402

东华oj-进阶题第45题-等差数列

45 等差数列 作者: xxx时间限制: 1S章节: 一维数组 问题描述 : 一个等差数列是一个能表示成a, a+b, a+2b,…, a+nb (n=0,1,2,3,…) 在这个问题中a是一个非负的整数,b是正整数。 写一个程序来找出在双平方数集合S中长度为n的等差数列。双平方数集合是所有能表示成p2+q2的数的集合。 输入说明 : 第一行: N(3<= N<=25),要找的...

qq_41409120的博客 901

iPhone用户必看:不装App也能搞定GitHub 2FA验证的3种方法(附恢复码管理技巧)

本文为iPhone用户提供了无需安装第三方App即可完成GitHub双重身份验证(2FA)的三种原生方案:利用相机扫码与iCloud钥匙串自动填充、使用iCloud钥匙串内置的TOTP验证码生成器,以及借助Safari浏览器扩展。文章详细解析了每种方法的操作步骤、适用场景,并重点强调了恢复码的安全管理与多层备份策略,帮助开发者在提升账户安全的同时,享受苹果生态的无缝便捷体验。

weixin_29324401的博客 654

7-3 等差数列--一维数组——完全遍历

等差数列是指从第二项起,每一项与它的前一项的差等于同一个常数的一种数列。 这个常数叫做等差数列的公差,公差常用字母d表示。 本题要求生成一个5项元素的等差数列并存于数组中,首项和公差由输入确定。 输入格式: 输入首项a和公差d。 输出格式: 在一行里以每项占5列的宽度输出数列。 输入样例: 在这里给出一组输入。例如: 5 2 输出样例: 在这里给出相应的输出。例如: 5 7 9 11 13 #include<stdio.h> int ma

玖月的博客 828

使用MID360在室内快速定位

在预构建的点云地图中实现实时3D全球定位。通过融合FAST-LIO的低频全局定位(约0.5~0.2Hz)和高频里程计,整个系统的计算效率很高。消除里程计的累计误差初始定位可以通过RVIZ的粗略手动估计或来自另一个传感器/算法的姿势来提供。

CTwinkle的博客 1162

在 SAP 中,应收票据的收取、到期承兑、贴现均有标准操作路径与事务码,以下按业务场景给出操作步骤、T-code、会计分录(含附 / 不附追索权)

摘要:本文详细介绍了SAP系统中应收票据的全流程处理,包括收款(F-36)、到期承兑(F-34/F-20)和贴现(F-33)的标准操作。重点说明了不同业务场景下的事务码使用、操作步骤及对应的会计分录,特别区分了附追索权与不附追索权贴现的处理差异。同时提供了票据查询(FBL5N)和清账(F-32)的辅助功能指引,并汇总了各业务场景的核心会计分录,为财务人员提供了一套完整的SAP应收票据操作指南。(149字)

金牌架构师 263

华为oj初级 等差数列

描述 功能:等差数列 2,5,8,11,14。。。。 输入:正整数N >0 输出:求等差数列前N项和 返回:转换成功返回 0 ,非法输入与异常返回-1知识点 函数 运行时间限制 10M 内存限制 128 输入 输入一个正整数。 输出 输出一个相加后的整数。 样例输入 2 样例输出 7#include<iostream> #include<iomanip>

huheqing的博客 447

小龙虾 OpenClaw 权限全攻略:轻松激活 elevated (最新版 OpenClaw 自动化任务降智、无权限、无法执行sudo等系统命令、提升 elevated 权限的解决方案)

升级小龙虾 OpenClaw 后权限不足?elevated 报错?📛 本文教你如何正确配置 OpenClaw 权限💻,让自动化任务顺利执行 🚀

XiaoqiangClub的博客 733

东华oj系统 126 数列2

126 数列2 作者: frankhuhu时间限制: 10S章节: 一维数组 问题描述 : 思维的严密性是相当重要的,尤其是在程序设计中,一个小小的错误,就可能导致无法想象的后果。明明的爸爸是一名富有经验的程序设计专家,深知思维严密的重要性,于是在明明很小的时候,就通过游戏的方式,训练明明的思维严密性。今天,明明的爸爸和明明做了一个数列的游戏。这个游戏很简单,就是有一数列,现在需要在这数列中选出一个或者若干个数(可以不连续),要求这些数的和能被11整除。明明的爸爸想锻炼明明思维的严密性,因此要求明明尽可能多

weixin_50336369的博客 415

18、AI在基础设施管理与运维中的应用及未来趋势

本文探讨了人工智能(AI)在基础设施管理和运维中的广泛应用,包括性能优化、成本节约、网络安全等多个场景。文章详细介绍了AI在不同领域的应用工具、实际案例以及面临的挑战,并展望了未来AI在基础设施管理中的发展趋势。此外,还分析了AI与Site Reliability Engineering(SRE)框架的结合优势,展示了AI如何提升运维效率和系统可靠性。

n7o8p的博客 147

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【华为 OJ 】等差数列

功能:等差数列 2,5,8,11,14。。。。 输入:正整数N >0 输出:求等差数列前N项和 返回:转换成功返回 0 ,非法输入与异常返回-1   输入描述: 输入一个正整数。 输出描述: 输出一个相加后的整数。 输入例子: 2 输出例子: 7 #include using namespace std; i

青密 815

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

oj网站的训练题:C基础-等差数列

题目描述: sum=2+5+8+11+14+…,输入正整数n,求sum的前n项和。 样例输入: 2 样例输出: 7 参考代码: #include int main() { int n,i,sum=0; int a=2; scanf("%d", &n); for(i=0;i<n

一个程序猿的修炼之路 527

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【东华oj】基础/进阶刷题

东华oj前言基础题1 求长方形的面积和周长2 数列和3 解方程4 一个月的天数5 银行存款到期日6 实数运算7 解二次方程8 门票价格计算9 星期几问题10 时间相加11 成绩转换12 求第几天13 求阶乘结果0的个数14 怪数15 abc数字16 奇妙的比值17 T的倍数N18 三角形19 数字串处理❤20 公式求解21 累加式22 约瑟夫环2 前言 本以为自己无多大希望,出成绩这一个月来一直忙于找工作与毕设,现在只剩不到一周了(事实上oj系统开启时间只剩三天了),这三天要好好刷题,之后准备面试的自我介绍

u013518977的博客 8152

OJ-1006:求等差数列的和、Java刷题

题目描述 给出三个整数,分别表示等差数列的第一项、最后一项和公差,求该数列的和。 输入 输入三个整数,之间用空格隔开。第1个数作为首项,第2个数作为末项,第3个数作为公差。 输出 输出占一行,包含一个整数,为该等差数列的和。 样例输入 2 11 3 样例输出 26 示例代码 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new S.

九瓜的博客 480

进阶题36 数列1

36 数列1 作者: frankhuhu 时间限制: 10S章节: 一维数组 问题描述 : 思维的严密性是相当重要的,尤其是在程序设计中,一个小小的错误,就可能导致无法想象的后果。明明的爸爸是一名富有经验的程序设计专家,深知思维严密的重要性。于是在明明很小的时候,就通过游戏的方式训练明明的思维严密性。今天,明明的爸爸和明明做了一个数列的游戏。 这个游戏很简单,就是有一数列,现在需要在数列中选出一个...

fxwentian的博客 477

华为oj等差数列

#include using namespace std; int getSum(int n) { int start = 2; int step = 3; int sum = 0; int last = start+(n-1)*step; sum = (start+last)*n/2; return sum; } int main() { int n; cin>>

qz530308783的专栏 388

等差数列(C语言)

题目描述 sum=2+5+8+11+14+…,输入正整数n,求sum的前n项和。 输入 无 输出 无 样例输入 2 样例输出 7 #include <stdio.h> /* * 等差数列求和公式Sn=n*a1+n(n-1)d/2或者Sn=n(a1+an)/2 */ int main() { int n; int sum=0; scanf("%d",&n); sum=n*2+n*(n-1)*3/2; pr

玖玖的博客 1万+

东华OJ进阶-2 数列和

2 数列和 作者: Hu Yongjian 时间限制: 1S章节: 顺序结构 问题描述 尝试求从1+2+…+N这N个自然数的和。 输入说明 你的程序需要从标准输入设备(通常为键盘)中读入一个整数N(1 ≤ N < 10,000);在行首和行尾没有多余的空格。在所有数据的前后,以及两组数据之间都没有多余的空行。 输出说明 对每组测试数据,你的程序需要向标准输出设备(通常为启动该程序的终端)输出...

weixin_43790703的博客 438

华为oj 等差数列&&字符统计

应该是整个oj中最简单的了吧! #include using namespace std; int main() { int n; cin>>n; if(n<=0) { return -1; } cout<<2*n+3*n*(n-1)/2<<endl; return 0; } 本题提供两个程序:算法相同只是数据结构不同一个使用的是结构体,一个使用的是map 整体思路需要统计出每个字符

优雅的二货 475

东华oj-进阶题第42题-数列2

42 数列2 作者: frankhuhu时间限制: 10S章节: 一维数组 问题描述 : 思维的严密性是相当重要的,尤其是在程序设计中,一个小小的错误,就可能导致无法想象的后果。明明的爸爸是一名富有经验的程序设计专家,深知思维严密的重要性,于是在明明很小的时候,就通过游戏的方式,训练明明的思维严密性。今天,明明的爸爸和明明做了一个数列的游戏。这个游戏很简单,就是有一数列,现在需要在这数列中选出...

qq_41409120的博客 834

东华OJ 数组竞赛 分糖果

前言:最近一直先熟悉容器,用容器解题。但是东华OJ某些很好用的新C++标准的功能用不了,再加上自己对容器不熟悉。所以最近应该经常能在注释里看见不对的用容器的解法。 题意理解 不进位的二进制很好理解。就是同位的数若相同就是0,不相同就是1.不进位正好减少了运算。 然后要求求最大的价值这句话就很容易让人以为是动态规划了。。(至少我这种蒟蒻第一瞬间的反应就是。。。 但结合第一条信息很容易发现,如果最后要在不进位的二进制运算下相同的价值,就是运算后左右两堆的各位数字相同。如果再把这两堆合为一堆,那么很明显,题意其实

Pure_Silly的博客 538
上一篇: 东华OJ一维数组竞赛求N!
下一篇: VJ STL Encoding(解题过程+学到的新知识:结构体作map key,value,构造cmp+嵌套map的一些误区)
Pure_Silly
博客等级 码龄6年 170粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值