[C/E] 等差数列求和】的更多相关文章

题目:要求给定一个整数 N,求从 0 到 N 之间所有整数相加之和. 解1:使用 for 循环依次递加. #include <stdio.h> int main(void){ int x; printf("Input an integer:\n"); scanf("%d", &x); printf("sum=%d\n", sum(x)); ; }; int sum(int x){ ; ; i<=x; i++){ resu…
题目背景 ​91029102 年 99 月 11 日,百度在 X 市 XX 中学举办了一场 AI 知识小课堂,本场 AI 知识小课堂老师教授了一些矩阵的相关知识,因为矩阵在 AI 人工智能中也有相当的应用. 题目描述 一个同学 LSQ 在小课堂后对矩阵产生极大的感兴趣,他想到了一个对矩阵求和的问题,但是这个矩阵实在太大了,他算不过来,你能帮帮他吗? 这个矩阵长这个样子,其右方和下方是没有边界的,但是不要担心,他并不要求你对整个矩阵求和,他只想知道,第 aa 行第 cc 列的格子为左上,第 bb …
链接:https://ac.nowcoder.com/acm/contest/316/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言262144K 64bit IO Format: %lld 题目描述 构造一个无重复的只含有正奇数的数列,使得这个数列所有项之和不超过n.输出所能构造的数列长度的最大值. 输入描述: 多组数据,输入以EOF结尾(不超过1e5组) 每行一个n(1<=n<=1e9) 输出描述: 每行一个数表示构造数列的长度…
https://codeforces.com/contest/1151/problem/C 题意 有两个等差数列(1,3,5,..),(2,4,6,...),两个数列轮流取1,2,4,...,\(2^n\)组成一个新的数列,然后询问区间l,r的和 题解 一开始总想着怎么计算中间那一段,其实用前缀和很好处理 数太大,第二个数也要取模才能相乘 代码 #include<bits/stdc++.h> #define ll long long using namespace std; const ll…
题目链接: D - It's a Mod, Mod, Mod, Mod World Kattis - itsamodmodmodmodworld 具体的每个参数的代表什么直接看题面就好了. AC代码: #include<bits/stdc++.h> using namespace std; # define ll long long # define inf 0x3f3f3f3f ; ll cal(ll a, ll b,ll c,ll n){ ); )return (b/c); ll tmp=…
题目描述 对一个给定的自然数M,求出所有的连续的自然数段,这些连续的自然数段中的全部数之和为M. 例子:1998+1999+2000+2001+2002 = 10000,所以从1998到2002的一个自然数段为M=10000的一个解. 输入输出格式 输入格式: 包含一个整数的单独一行给出M的值(10 <= M <= 2,000,000). 输出格式: 每行两个自然数,给出一个满足条件的连续自然数段中的第一个数和最后一个数,两数之间用一个空格隔开,所有输出行的第一个按从小到大的升序排列,对于给定…
题目链接 思路 数学题 首先列出等差数列求和的式子. \[S = \frac{(n + m)(n - m + 1)}{2}(n为末项,m为首项)\] \[S * 2= (n + m)(n - m + 1)\] 若想让m更小,那么肯定要让等差数列中数字的数目更多.也就是让\((n - m + 1)\)更大,而\((n - m + 1)\)肯定是\(S * 2\)的因子.所以枚举一下\((n - m + 1)\) 假设\((n - m + 1) = x\) 则\(n = x + m - 1\).然后…
题目大意:给定 n, k,求\(\sum\limits_{i=1}^n k\%n\) 的值. 题解:除法分块思想的应用. \(x\%y=x-y\lfloor {x\over y}\rfloor\),因此只需快速求出 \(\sum\limits_{i=1}^n {k\over i}\) 即可. 引理:\(i\in [1,k], {k\over i}\) 最多只有不超过 \(2\sqrt k\) 个不同的值.(分情况讨论即可得出) 现在,只需找出每一段的起点和终点即可根据等差数列求和的方式来在 \(…
洛谷 一看就知道是一个数学题.嘿嘿- 讲讲各种分的做法吧. 30分做法:不知道,这大概是这题的难点吧! 60分做法: 一是直接暴力,看下代码吧- #include <bits/stdc++.h> using namespace std; typedef int _int; #define int long long _int main() { int n,k,ans=0; cin>>n>>k; for (int i=1;i<=n;++i) { ans+=(k%i)…
题目戳这里 一句话题意 求 \(\sum_{i=1}^{n} (k ~~\texttt{mod} ~~i)\) Solution 30分做法: 说实话并不知道怎么办. 60分做法: 很明显直接一遍o(n)枚举 i 就可以求出. 100分做法: 对于每一个k mod i,我们知道k mod i = k-k/i*i,那么 \(\quad \sum_{i=1}^{n}{k \quad mod \quad i}=n*k-\sum_{i=1}^{n}(k/i*i)\) 所以这个题目就转化成了求 \(\su…