首页 > 其他分享 >期末考试YTU4035: Shmily(数学,等差数列)

期末考试YTU4035: Shmily(数学,等差数列)

时间:2023-06-20 13:24:29浏览次数:44  
标签:Shmily cnt int long while 等差数列 YTU4035

考试的时候看到这道题一眼前缀和,但是想了想要枚举每个区间是不是复杂度有点高,还是交上去了

不出意外的  $TLE$ 了,想了十来分钟还是没想到怎么优化,考完问了一下大佬,原来用等差数列1ms就能过,听说双指针0ms(蒟蒻的我呜呜)

众所周知等差数列的前 $N$ 项和是 $S$ =a1 *n+(n*(n-1))/2,用这个公式来求就可以了

//  ((n-1)*n)/2+n*x==y
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
long long  m,n,a[N],t,num;
int main()
{
    std::ios::sync_with_stdio(false);
    cin>>t;
    while(t--){
        cout<<"CASE"<<++num<<endl;
        cin>>n;
        int cnt=1;
        set<pair<int,int>>a;
        while(cnt++){
            int s=n-(cnt*(cnt-1)/2);
            if(s<0) break;
            if(s%cnt==0){
                int m=s/cnt;
                if(m!=n) a.insert({m,m+cnt-1});
            }
        }
        for(auto i:a) cout<<i.first<<" "<<i.second<<endl;
    }
    return 0;
}

 

标签:Shmily,cnt,int,long,while,等差数列,YTU4035
From: https://www.cnblogs.com/o-Sakurajimamai-o/p/17493370.html

相关文章

  • 【蓝桥杯_真题演练】第十届C/C++省赛B组_H-等差数列(C++_gcd_数论)
    ProblemProcess在输入的时候先去重,然后进行排序,至于他们的公差p则需要计算每两个相邻数值之间差值的最大公因数,最终的结果应该是Code#include<bits/stdc++.h>usingnamespacestd;#definelllonglongintn,a[100010],cnt;set<int>s;intgcd(inta,intb){ returnb==......
  • 等差数列
    题目:/***等差数列:*求等差数列前N项的级数之和。不考虑不合理的输入等特殊情况*输入N,首项M,差值K,整型,空格分隔。*/解答:classTest93{publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);//codehere......
  • 算法刷题记录:素数中的等差数列
    题目链接https://ac.nowcoder.com/acm/contest/19859/I题目分析模拟!模拟!模拟!下标要计算好。自己的思路是放发现两个相等的差时,说明至少可以输出了,也就是合法情况,然后用指针R往后扩展。我选择的R是闭区间的,即[L,R]的区间已经看过了,所以i可以直接从i+1开始看。所以R赋值给i后......
  • 等差数列生成器
      1classArithmeticProgression:23def__init__(self,begin,step,end=None):4self.begin=begin5self.end=end6self.step=step789def__iter__(self):10result=typ......
  • 等差数列末项计算
    【题目描述】给出一个等差数列的前两项a1,a2,求第n项是多少。【输入】一行,包含三个整数a1,a2,n。−100≤a1, a2≤100,  0<n≤1000。【输出】一个整数,即第n项的值。【输入样例】14100【输出样例】298......
  • 最长等差数列
    给你一个整数数组nums,返回nums中最长等差子序列的长度一.动态规划该题类似最长递增子序列dp[i][j]定义为以i为结尾,公差为j的最长等差数列长度classSolution{public:intlongestArithSeqLength(vector<int>&nums){//dp[i][j]定义为以i为结尾,公差为j的最长......
  • 1027. 最长等差数列
    给你一个整数数组 nums,返回nums 中最长等差子序列的长度。回想一下,nums的子序列是一个列表 nums[i1],nums[i2],...,nums[ik],且 0<=i1<i2<...<ik<=nums.length-1。并且如果 seq[i+1]-seq[i]( 0<=i<seq.length-1)的值都相同,那么序列 seq 是等差......
  • 51nod 1055 最长等差数列
    1055 最长等差数列基准时间限制:2 秒空间限制:262144 KB分值: 80 难度:5级算法题 收藏 关注例如:13568910121314等差子数列包括(仅包括两项的不列举)1351591336912......
  • [第十届蓝桥杯省赛C++B组]等差数列
    来源:第十届蓝桥杯省赛C++B组算法标签:数论最大公约数题目描述数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一部分的数列,只记得其中N个整数。现在给......
  • P8682 [蓝桥杯 2019 省 B] 等差数列
    P8682[蓝桥杯2019省B]等差数列[蓝桥杯2019省B]等差数列题目描述数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一部分的数列,只记得其中N......