NOIP2015普及组解题报告

合集下载

noip2015初赛普及组答案分析

noip2015初赛普及组答案分析

单项选择题1.A。

计算机内部的用来传送、存贮、加工处理的数据或指令都是以二进制形式进行的。

2.A。

写这题我用的是排除法,B选项显然不对,内存在断电后数据会丢失,C选项也是,屏幕的分辨率是可以手动调整的,D选项,当年我们都用宽带连接Internet的。

3.A。

二进制小数转化为十六进制小数时,每四位二进制数转化为以为十六进制数,故0.10002可以转化为0.816。

4.D。

我的做法是将每个数都化为二进制形式,因为十六进制数和八进制数转化为二进制数很容易,最后求得答案是D。

5.D。

在链表中,每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域,结点与结点之间是用指针连接的,故地址不必连续。

6.B。

模拟一下进栈出栈的过程就行了,共有6次操作:进栈,进栈,出栈,进栈,进栈,出栈,每次操作后栈内元素分别为”a”,”ab”,”a”,”a b c”,”a b c d”,”a b c”,故最后栈顶元素是c。

7.B。

前序遍历的顺序是”根->左->右”,后序遍历的顺序是”左->右->根”,对照四个答案,只有B能满足题目要求。

8.B。

我们知道树高为n的满二叉树的结点个数为2n−1,当树高为5时结点个数为31,当树高为6时结点个数为63,故答案是B。

9.B。

画一张图的事情,就不说了。

10.D。

由递推公式可得T(n)=1+(1+2+…+n)=n2+n2+1,故算法时间的复杂度为O(n2)。

11.D。

用vector存边,由一个顶点的边引到另一个顶点,再不断引出别的顶点,过程中每个顶点和每条边都只用到一遍,故复杂度为O(n+e)。

12.A。

哈夫曼算法用来求哈夫曼树,此树的特点就是引出的路程最短,求的过程运用到贪心思想,具体的请参考一下别的文章。

13.D。

llink和rlink分别指向前驱和后继,不妨设p的前驱为o,在未插入前p->llink就是o,o->rlink就是p,插入时,先将o->rlink赋为q,再将q->rlink赋为p,然后将q->llink赋为o,最后将p->llink赋为q。

NOIP普及组历届试题分析

NOIP普及组历届试题分析

对于100%的数据,3 ≤ n ≤ 100 测验题给出的正整数大小不超过10,000。
试题分析

题意大意:给你n个数,在这n个数中,找 到满足A+B=C的C的个数,注意不是这个 等式的个数。
样例中,1,2,3,4有1+2=3,1+3=4两个。

由于本题数据规模n<=100,我们可以直接
枚举C, A, B,三层循环解决问题。
扫雷游戏 (noip2015普及组第二题)
输入样例 1 33 *?? ??? ?*? 输入样例 2 23 ?*? *??
输出样例 1 mine.out *10 221 1*1 输出样例 2 mine.out 2*1 *21
对于 100%的数据,1≤n≤100,1≤m≤100
问题分析:
本题也是简单的枚举类试题。 我们从雷区的第一行第一列(1,1)开始,判断它周围 有多少个地雷。 由于本题读入的是字符,读入时需要注意: readln(n,m); for i=1 to n do begin for j=1 to m do read(a[i][j]); readln; end;
比例简化 (noip2014普及组第二题)



在社交媒体上,经常会看到针对某一个观点同意与 否的民意调查以及结果。例如,对某 一观点表示 支持的有 1498 人,反对的有 902 人,那么赞同与 反对的比例可以简单的记为1498:902。 不过,如果把调查结果就以这种方式呈现出来,大 多数人肯定不会满意。因为这个比例的数值太大, 难以一眼看出它们的关系。对于上面这个例子,如 果把比例记为 5:3,虽然与 真实结果有一定的误差, 但依然能够较为准确地反映调查结果,同时也显得 比较直观。 现给出支持人数 A,反对人数 B,以及一个上限 L, 请你将 A 比 B 化简为 A’比 B’,要求在 A’和 B’均 不大于 L 且 A’和 B’互质(两个整数的最大公约数 是 1)的前提下,A’/B’ ≥ A/B 且 A’/B’ - A/B 的值 尽可能小。

信息学奥赛NOIP普和组历届试题分析报告

信息学奥赛NOIP普和组历届试题分析报告
普及组一般考查的动态规划:01背包,最长上升子序 列,一些简单的线性动规。
采药 (noip2005普及组第三题)
辰辰是个天资聪颖的孩子,他的梦想是成为世 界上最伟大的医师。为此,他想拜附近最有威 望的医师为师。医师为了判断他的资质,给他 出了一个难题。医师把他带到一个到处都是草 药的山洞里对他说:“孩子,这个山洞里有一 些不同的草药,采每一株都需要一些时间,每 一株也有它自身的价值。我会给你一段时间, 在这段时间里,你可以采到一些草药。如果你 是一个聪明的孩子,你应该可以让采到的草药 的总价值最大。”
试计算在区间1到n的所有整数中,数字x(0≤x≤9) 共出现了多少次? 例如,在1到11中,即在1、2、3、4、5、6、7、8、 9、10、11中,数字1出现了4次。
输入:
输入共1行,包含2个整数n、x,之间用一个空格隔 开。 输出:
输出共1行,包含一个整数,表示x出现的次数。 输入示例: 11 1 输出示例: 4 其他说明:
输入 输入共1行,一个整数N。
输出 输出共1行,一个整数,表示反转后的新数。
样例输入
123 样例输出
321
统计单词个数 (noip2011普及组第二题)
一般的文本编辑器都有查找单词的功能,该功 能可以快速定位特定单词在文章中的位置,有 的还能统计出特定单词在文章中出现的次数。 现在,请你编程实现这一功能,具体要求 是:给定一个单词,请你输出它在给定的文章 中出现的次数和第一次出现的位置。注意:匹 配单词时,不区分大小写,但要求完全匹配, 即给定单词必须与文章中的某一独立单词在不 区分大小写的情况下完全相同(参见样例1), 如果给定单词仅是文章中某一单词的一部分则 不算匹配(参见样例2)。
对于100%的数据,3 ≤ n ≤ 100 测验题给出的正整数大小不超过10,000。

noip2015普及组复赛试题

noip2015普及组复赛试题

noip2015普及组复赛试题题目一:矩阵运算给定一个n阶方阵A(1 ≤ n ≤ 100),求A的所有指定行指定列删除后得到的新矩阵的行列式。

输入格式:输入第一行包含一个整数n,表示方阵的阶数。

接下来n行,每行包含n个整数,表示方阵A的元素。

接下来一行包含两个整数,表示要删除的行和列的序号。

输出格式:输出一个整数,表示新矩阵的行列式的值。

题目要求:首先,我们需要编写一个能够计算矩阵行列式的函数,然后根据题意进行修改,使其能够处理删除指定行列后的新矩阵,并返回新矩阵的行列式的值。

算法思路:我们可以使用拉普拉斯展开定理来计算矩阵行列式的值。

首先定义一个变量result,初始化为0。

然后遍历矩阵的第一行元素,对于第i 个元素,根据其正负性,计算其余元素组成的(n-1)阶子矩阵的行列式的值,并递归调用自身。

最后将每个元素计算得到的行列式值乘以其对应的元素,累加到result上。

然后根据题目要求,在计算每个元素对应的子矩阵时,判断是否需要删除指定的行列。

如果需要删除,则直接跳过该行列,否则继续计算。

代码如下:```pythondef determinant(matrix):n = len(matrix)if n == 1:return matrix[0][0]result = 0for i in range(n):if n > 2:sub_matrix = [row[:i] + row[i+1:] for row in matrix[1:]]else:sub_matrix = matrix[1:]det = determinant(sub_matrix)result += (-1) ** i * matrix[0][i] * detreturn resultn = int(input())matrix = []for _ in range(n):row = list(map(int, input().split()))matrix.append(row)row, col = map(int, input().split())matrix = [matrix[i][:col] + matrix[i][col+1:] for i in range(row)] # 删除指定列matrix = matrix[:row] + matrix[row+1:] # 删除指定行result = determinant(matrix)print(result)```题目二:水果分配小明和他的朋友们买了n个水果,其中有x个苹果和y个香蕉。

2015年NOIP信息学奥林匹克初赛试题和答案(普及组C++语言)

2015年NOIP信息学奥林匹克初赛试题和答案(普及组C++语言)

第二十一届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题竞赛时间:2015 年10 月11 日14:30-16:30一、单项选择题(共20 题,每题1.5 分,共计30 分;每题有且仅有一个正确选项)⒈1MB 等于( )。

A.10000 字节B.1024 字节C.1000×1000 字节D.1024×1024 字节⒉在PC 机中,PENTIUM(奔腾)、酷睿、赛扬等是指()。

A.生产厂家名称 B.硬盘的型号 C.CPU 的型号 D.显示器的型号⒊操作系统的作用是()。

A.把源程序译成目标程序B.便于进行数据管理C.控制和管理系统资源D.实现硬件之间的连接⒋在计算机内部用来传送、存贮、加工处理的数据或指令都是以()形式进行的。

A.二进制码B.八进制码C.十进制码D.智能拼音码⒌下列说法正确的是()。

A.CPU 的主要任务是执行数据运算和程序控制B.存储器具有记忆能力,其中信息任何时候都不会丢失C.两个显示器屏幕尺寸相同,则它们的分辨率必定相同D.个人用户只能使用Wifi 的方式连接到Internet⒍二进制数00100100 和00010100 的和是( )。

A.00101000B.01100111C.01000100D.00111000⒎与二进制小数0.1 相等的十六进制数是()。

A.0.8B.0.4C.0.2D.0.1⒏所谓的“中断”是指()。

A.操作系统随意停止一个程序的运行B.当出现需要时,CPU 暂时停止当前程序的执行转而执行处理新情况的过程C.因停机而停止一个程序的运行D.电脑死机⒐计算机病毒是()。

A.通过计算机传播的危害人体健康的一种病毒B.人为制造的能够侵入计算机系统并给计算机带来故障的程序或指令集合C.一种由于计算机元器件老化而产生的对生态环境有害的物质D.利用计算机的海量高速运算能力而研制出来的用于疾病预防的新型病毒⒑FTP 可以用于( )。

A.远程传输文件B.发送电子邮件C.浏览网页D.网上聊天⒒下面哪种软件不属于即时通信软件()。

noip2015普及组解题报告

noip2015普及组解题报告

1. 金币 (coin.cpp/c/pas)【问题描述】国王将金币作为工资,发放给忠诚的骑士。

第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币。

请计算在前K天里,骑士一共获得了多少金币。

【输入格式】输入文件名为coin.in。

输入文件只有1行,包含一个正整数K,表示发放金币的天数。

【输出格式】输出文件名为coin.out。

输出文件只有1行,包含一个正整数,即骑士收到的金币数。

【样例输入】coin.in6【样例输出】coin.out14【输入输出样例1说明】骑士第一天收到一枚金币;第二天和第三天,每天收到两枚金币;第四、五、六天,每天收到三枚金币。

因此一共收到1+2+2+3+3+3=14 枚金币。

【数据范围】对于100%的数据,1 ≤K ≤10,000。

【题解】纯模拟,直接爆搜,考点就是 for 循环#include "stdio.h"#include "iostream"using namespace std;int main(){freopen("coin.in","r",stdin);freopen("coin.out","w",stdout);int n,i=1,ans=0;cin>>n;while(n){if(n>=i){n-=i;ans+=i*i;}else{ans+=i*n;n=0;}i++;}cout<<ans<<endl;return 0;}2.扫雷游戏(mine.cpp/c/pas)【问题描述】扫雷游戏是一款十分经典的单机小游戏。

noip2015普及组初赛试题+答案

noip2015普及组初赛试题+答案

NOIP2015第二十一届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题竞赛时间:2015年10月11日14:30~16:30选手注意:1、试题纸共有 5 页,答题纸共有2 页,满分100分。

请在答题纸上作答,写在试题纸上得一律无效。

2、不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料.一、单项选择题(共20题,每题1、5分,共计30分;每题有且仅有一个正确选项)1、ﻩ1 MB等于(。

A、1000字节ﻩB、1024字节C、1000 X1000字节D、1024X1024 字节2、在P C机中,PENTIUMﻩ(奔腾)、酷睿、赛扬等就是指(ﻩ)。

A、生产厂家名称B、硬盘得型号ﻩC、CPU得型号ﻩD、显示器得型号3、操作系统得作用就是。

A、把源程序译成目标程序ﻩB、便于进行数据管理C、ﻩ控制与管理系统资源D、实现硬件之间得连接4、ﻩ在计算机内部用来传送、存贮、加工处理得数据或指令都就是以(ﻩﻩ)形式进行得。

A、二进制码B、八进制码ﻩC、十进制码ﻩD、智能拼音码5、ﻩ下列说法正确得就是(ﻩ).A、ﻩCPU得主要任务就是执行数据运算与程序控制B、存储器具有记忆能力,其中信息任何时候都不会丢失C、两个显示器屏幕尺寸相同,则它们得分辨率必定相同D、ﻩ个人用户只能使用Wifi 得方式连接到I nternet6、二进制数0010 010 0与0 0 0 10100得与就是。

A、0ﻩ0101000ﻩB、01000001ﻩC、01000100ﻩD、001110007、ﻩ与二进制小数0、1相等得十六进制数就是()A。

0.8B、0.4ﻩC、0、2 D、0、1 8、所谓得“中断”就是指(。

A、ﻩ操作系统随意停止一个程序得运行B、ﻩ当出现需要时,CPU 暂时停止当前程序得执行转而执行处理新情况得过程C、ﻩ因停机而停止一个程序得运行D、电脑死机9、ﻩ计算机病毐就是()。

A、ﻩ通过计算机传播得危害人体健康得一种病毒B、人为制造得能够侵入计算机系统并给计算机带来故障得程序或指令集合C、ﻩ一种由于计算机元器件老化而产生得对生态环境有害得物质D、ﻩ利用计算机得海量高速运算能力而研制出来得用于疾病预防得新型病毒10、FTP 可以用于(ﻩ)。

全国信息学奥林匹克联赛(NOIP2015)复赛普及组第一题coin

全国信息学奥林匹克联赛(NOIP2015)复赛普及组第一题coin
printf("%d ",s);
return (0);
}
}
}
fclose(stdout);fclose(stdin);
}
coin.in
6
coin.out
14 */
#include <stdio.h>
int main()
{
freopen("coin.in","r",stdin);
freopen("coin.out","w",stdout);
int j=1,i=1,k,n=0,s=0;
请计算在前 请计算在前 K天里,骑士一共获得了多少金币。
【输入格式 】
输入文件名为 输入文件名为 coi,表示发放金币的天数。
【输出 格式 】
输出文件名为coin.out。
输出文件只有 1行,包含一个正整,即骑士收到的金币。
【输入输出样例 1】
/*1.金币
(coin coin .cpp/c/pas)
【问题描述】 【问题描述】
国王将金币作为工资,发放给忠诚的骑士。第一天, 骑士收到一枚金币;之后两天(第二天和三天),每收到两枚金币;之后三天(第四、五、六天),每收到三枚金币;之后四天(第七、八、九、十天),每收到四枚金币......;这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之的N+1天里,每天收到N+1枚金币。
scanf("%d",&k);
while(i<=k)
{
n++;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

NOIP2015 普及组解题报告From 贴吧id u007zzt金币国王将金币作为工资,发放给忠诚的骑士。

第一天骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天,每天收到四枚金币,以此类推;这种工资发放模式会一直延续下去,当连续N天收到N枚金币后,骑士会在之后的N+1天,每天收到N+1枚金币。

请计算前K天里,骑士一共获得了多少金币。

输入格式输入包含一个正整数K,表示发放金币的天数。

输出格式输出一个正整数,即骑士收到的金币数。

样例1样例输入16样例输出114样例2样例输入21000样例输出229820对于全部数据,1≤K≤10000。

这种题目,简直就属于水题狂做的那种。

不多说,附C++代码。

#include "stdio.h"int k,ans=0;int main(){freopen("coin.in","r",stdin);freopen("coin.out","w",stdout);scanf("%d",&k);int i=1;while(k){if(k>=i){ans+=i*i;k-=i;}else{ans+=k*i;k=0;}i++;}printf("%d\n",ans);return 0;}扫雷游戏扫雷游戏是一款十分经典的单机小游戏。

在n行m列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格)。

玩家翻开一个非地雷格时,该格将会出现一个数字——提示周围格子中有多少个是地雷格。

游戏的目标是在不翻出任何地雷格的条件下,找出所有的非地雷格。

现在给出n行m列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数。

注:一个格子的周围格子包括其上、下、左、右、左上、左下、右上、右下八个方向上与之直接相邻的格子。

输入格式第一行用一个空格隔开的两个整数n和m,分别表示雷区的行数和列数。

接下来n行,每行m个字符,描述了雷区中的地雷分布情况。

字符∗'表示相应的格子是地雷格,字符(?)`表示相应的格子是非地雷格子。

相邻字符之间无分隔符。

输出格式输出文件包括n行,每行m个字符,描述了整个雷区。

用∗表示地雷格,用周围地雷格数表示非地雷格。

相邻字符之间无分隔符。

样例1样例输入13 3*??????*?样例输出1*102211*1样例2样例输入22 3?*?*??样例输出22*1*21对于所有的数据,1≤n≤100, 1≤m≤100。

又是水题一道,请允许我吐槽一下pj组的难度……别的没什么,注意字符的读入。

附C++代码。

#include "stdio.h"using namespace std;int matrix[105][105];char str[105];int dir[3]={0,1,-1};int n,m;int main(){freopen("mine.in","r",stdin);freopen("mine.out","w",stdout);scanf("%d%d",&n,&m);int i,j,k,t;for(i=1;i<=n;i++){scanf("%s",str+1);for(j=1;j<=m;j++){if(str[j]=='*'){matrix[i][j]=-1;}}}for(i=1;i<=n;i++){for(j=1;j<=m;j++){if(matrix[i][j]==0){for(k=0;k<3;k++){for(t=!k;t<3;t++){matrix[i][j]+=matrix[i+dir[k]][j+dir[t]]==-1?1:0;}}}}}for(i=1;i<=n;i++){for(j=1;j<=m;j++){if(matrix[i][j]==-1){putchar('*');}else{putchar(matrix[i][j]+'0');}}putchar('\n');}return 0;}求和一条狭长的纸带被均匀划分出了n个格子,格子编号从1到n。

每个格子上都染了一种颜色colori(用[1,m]当中的一个整数表示),并且写了一个数字numberi。

定义一种特殊的三元组:(x, y, z),其中x,y,z都代表纸带上格子的编号,这里的三元组要求满足以下两个条件:x, y, z都是整数, x<y<z ,y−x=z−ycolorx = colorz满足上述条件的三元组的分数规定为(x+z)∗(numberx +numberz)。

整个纸带的分数规定为所有满足条件的三元组的分数的和。

这个分数可能会很大,你只要输出整个纸带的分数除以 10,007 所得的余数即可。

输入格式第一行是用一个空格隔开的两个正整数 n 和 m,n 代表纸带上格子的个数,m 代表纸带上颜色的种类数。

第二行有 n 个用空格隔开的正整数,第 i 个数字numberi代表纸带上编号为 i 的格子上面写的数字。

第三行有 n 个用空格隔开的正整数,第 i 个数字colori代表纸带上编号为 i 的格子染的颜色。

输出格式共一行,一个整数,表示所求的纸带分数除以 10,007 所得的余数。

样例1样例输入16 25 5 3 2 2 22 2 1 1 2 1样例输出182样例2样例输入215 45 10 8 2 2 2 9 9 7 7 56 4 2 42 23 34 3 3 2 4 4 4 4 1 1 1样例输出21388限制对于第 1 组至第 2 组数据,1 ≤ n ≤ 100, 1 ≤ m ≤ 5;对于第 3 组至第 4 组数据,1 ≤ n ≤ 3000, 1 ≤ m ≤ 100;对于第 5 组至第 6 组数据,1 ≤ n ≤ 100000, 1 ≤ m ≤ 100000,且不存在出现次数超过 20 的颜色;对于全部 10 组数据, 1 ≤ n ≤ 100000, 1 ≤ m ≤ 100000, 1 ≤colori ≤ m, 1 ≤ numberi≤ 100000。

提示【输入输出样例 1 说明】纸带如题目描述中的图所示。

所有满足条件的三元组为:(1, 3, 5), (4, 5, 6)。

所以纸带的分数为(1 + 5) ∗ (5 + 2) + (4 + 6) ∗ (2 + 2) = 42 + 40 = 82。

观察题意可以得知,如果第i位和第j位同色,那么就一定能够组成一个三元组,并且三元组的价值完全与中间那个数无关。

那么,我们就用一个数组存储同奇偶性的同色方块,用n表示数值,i和j表示坐标。

那么价值就是(n i+n j)*(i+j)。

现在如果把每组的数的下标用a1~an表示,数值用n1~nk表示,用sum表示数值之和。

答案就是(n1+n2)*(a1+a2)+……+……。

如果这样做就是O(n^2)的算法。

但是我们现在可以针对每一个数,只求只与这个数的下标和其他数值有关的值,也就是a1(n1+n2)+a1(n1+n3)+a1(n1+n4)+……+a1(n1+nk)。

一个同奇偶性同颜色的一组总和就是a取1到k的得数之和。

又因为a1(n1+n2) + a1(n1+n3) + a1(n1+n4)+……+a1(n1+nk)=a1(n1*(n-1)+n2+……+nk)=a1*n1*(n-2)+a1*sum。

这样转化过来就很好求了,O(n)的时间复杂度就能得到解。

附C++代码:#include "stdio.h"using namespace std;const int SIZE=100005,mod=10007;int n,m;int color[SIZE];int num[SIZE];int sum[2][SIZE];int d[2][SIZE];int ans=0;int main(){freopen("sum.in","r",stdin);freopen("sum.out","w",stdout);scanf("%d%d",&n,&m);int i;for(i=1;i<=n;i++){scanf("%d",num+i);}for(i=1;i<=n;i++){scanf("%d",color+i);sum[i%2][color[i]]=(sum[i%2][color[i]]+num[i])%mod;d[i%2][color[i]]++;}for(i=1;i<=n;i++){ans=(ans+sum[i%2][color[i]]*i%mod+(d[i%2][color[i]]-2)%mod*num[i]%mod*i%mod)%mod;}printf("%d\n",ans);return 0;}推销员阿明是一名推销员,他奉命到螺丝街推销他们公司的产品。

螺丝街是一条死胡同,出口与入口是同一个,街道的一侧是围墙,另一侧是住户。

螺丝街一共有N 家住户,第 i 家住户到入口的距离为 Si 米。

由于同一栋房子里可以有多家住户,所以可能有多家住户与入口的距离相等。

阿明会从入口进入,依次向螺丝街的 X 家住户推销产品,然后再原路走出去。

阿明每走 1 米就会积累 1 点疲劳值,向第 i 家住户推销产品会积累 Ai 点疲劳值。

阿明是工作狂,他想知道,对于不同的 X,在不走多余的路的前提下,他最多可以积累多少点疲劳值。

输入格式第一行有一个正整数 N,表示螺丝街住户的数量。

接下来的一行有 N 个正整数,其中第 i 个整数 Si 表示第 i 家住户到入口的距离。

数据保证 S1≤S2≤…≤Sn<108。

接下来的一行有 N 个正整数,其中第 i 个整数 Ai 表示向第 i 户住户推销产品会积累的疲劳值。

数据保证 Ai<103。

输出格式输出 N 行,每行一个正整数,第 i 行整数表示当 X=i 时,阿明最多积累的疲劳值。

样例1样例输入151 2 3 4 51 2 3 4 5样例输出11519222425样例2样例输入251 2 2 4 55 4 3 4 1样例输出21217212427对于 20%的数据,1≤N≤20;对于 40%的数据,1≤N≤100;对于 60%的数据,1≤N≤1000;对于 100%的数据,1≤N≤100000。

相关文档
最新文档