noip2014普及组初赛试题

合集下载

NOIP(2014)第二十届全国青少年信息学奥林匹克联赛初赛(普及组试题及答案).

NOIP(2014)第二十届全国青少年信息学奥林匹克联赛初赛(普及组试题及答案).

第二十届全国青少年信息学奥林匹克联赛初赛(普及组 Pascal语言二小时完成)●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一.单项选择题(共20题,每题1.5分,共计30分。

每题有且仅有一个正确答案。

)1、以下哪个是面向对象的高级语言()。

A. 汇编语言B. C++C. FortranD. Basic2、1TB代表的字节数量是()。

A.2的10次方B. 2的20次方C. 2的30次方D. 2的40次方3、二进制数00100100和00010101的和是。

A.00101000B.001010100C.01000101D.001110014、以下哪一种设备属于输出设备()A.扫描仪B.键盘C.鼠标D.打印机5、下列对操作系统功能的描述最为完整的是()A.负责外设与主机之间的信息交换B.负责诊断机器的故障C.控制和管理计算机系统的各种硬件和软件资源的使用D.将源程序编译成目标程序6.CPU、存储器、I/O设备是通过()连接起来的。

A. 接口B.总线C.控制线D.系统文件7、断电后会丢失数据的存储器是()。

A.RAMB.ROMC.硬盘D.光盘8、以下哪一种是属于电子邮件收发的协议()。

A.SMTPB.UDPC.P2PD.FTP9、下列选项中不属于图像格式的是()A.JPG格式B. TXT格式C.GIF格式D.PNG格式10.链表不具有的特点是()A.不必事先估计存储空间 B.可随机访问任一元素C.插入删除不需要移动元素 D.所需空间与线性表长度成正比11、下列各无符号十进制整数中,能用八位二进制表示的数中最大的是()。

A.296 B.133 C.256 D.19912.下列几个32位IP地址中,书写错误的是()。

A.162.105.130.27B.192.168.0.1C.256.256.129.1D.10.0.0.113.要求以下程序的功能是计算:s=1+1/2+1/3+……+1/10。

信息学奥赛NOIP普及组历届试题分析

信息学奥赛NOIP普及组历届试题分析
53
二、模拟类试题
有些问题,我们很难建立数学模型,或者很难 用计算机建立递推、递归、枚举、回溯法等算 法。在这种情况下,一般采用模拟策略。
所谓模拟策略就是模拟某个过程,通过改变数 学模型的各种参数,进而观察变更这些参数所 引起过程状态的变化,由此展开算法设计。
金币 (noip2015普及组第一题)
输入样例:
70 3 71 100
69 1 12
输出样例:
3
(1 <= T <= 1000) (1 <= M <= 100)
采药 (noip2005普及组第三题)
题目大意:共m株草药,每株草药有一个价值 和采摘的时间,问t时间能采摘到的草药的最大 价值。
采药 (noip2005普及组第三题)
输入格式:
第一行有两个整数T和M,T代表总共能够用来采药的时间,M 代表山洞里的草药的数目。接下来的M行每行包括两个在1到 100之间(包括1和100)的整数,分别表示采摘某株草药的时 间和这株草药的价值。
输出格式:
一行只包含一个整数,表示在规定的时间内,可以采到的草药 的最大总价值。
螺旋方阵试题分析
本题首先让我们想到传统的模拟,从[1,1]开 始往数组中填充数字,但对于[30000,30000] 的数组,直接爆零。
对于读入的n, x, y,先判断(x,y)在第几圈, 再模拟圈内的数字。
螺旋方阵试题分析
如:n=4, (2,2)在第2圈,(3,1)在第1圈。 n=6,(4,5)在第2圈
移动;如果前方是未曾经过的格子,则继续前进, 否则右转;重复上述操作直至经过矩阵中所有格子。 根据经过顺序,在格子中依次填入1,2,3,....,便构 成了一个螺旋矩阵。 现给出矩阵大小n以及i和j,请你求出该矩阵中第 i行第j列的数是多少。 下图是一个n=4时的螺旋矩阵。

NOIP普及组初赛历年试题及答案阅读题篇

NOIP普及组初赛历年试题及答案阅读题篇

NOIP普及组初赛历年试题及答案阅读题篇阅读程序写结果(共4 题,每题8 分,共计32 分)阅读程序题是得分的关键,因为不是让你上机去运行程序,所以要一步步地读程序,记录相关变量值的变化情况。

因为程序的运行结果只有输出语句才有输出,所以只写出输出语句的结果。

有时要找出规律才能写出结果,特别是循环次数多的情况,另外要注意边界值,不能多算一步也不能少算一步。

解决这类问题的关键在于能够分析程序的结构以及程序段的功能。

常见的有列表法、画流程图法等。

完成这类题目的方法和步骤如下:1、从头到尾通读程序,大致把握程序的算法、找出这个题目的即这个程序想干什么。

抓住了它,不仅得出答案变得较容易,而且对自己的结果也会比较有信心。

2、通过给程序分段、理清程序的结构和层次,达到读懂程序的目的。

3、阅读程序中特别注意跟踪主要变量的值的变化,可以用列表的方法,了解变量变化和程序的运行结果,注意发现规律。

所谓列表法,就是将各变量名作为表头,在程序的执行过程中,将各变量值的变化记录在相应变量的下方。

4、按照程序中输出格式的要求,写出运行结果,并带着结果回到程序进行检查。

在阅读程序时,要特别注意过程、函数所完成的子任务以及和主程序之间的参数传递关系。

在阅读程序中,比较好的方法是首先阅读主程序,看其需要调用的过程或函数是什么,最后要求输出变量是什么;其次在阅读程序中,将较长的程序分成几个程序段(特别注意循环结构、判断结构),阅读理解各程序段的功能以及各程序之间的关联。

NOIP2011-1.#include<iostream>using namespace std;int main(){int i,n,m,ans;cin>>n>>m;i=n;ans=0;while(i<=m){//从i=10~20,共循环计数11次ans+=i;//每次循环,ans累加一次i 值i++;}cout<<ans<<endl;//此时ans值应为(10+20)*11/2,即165 return 0;}输入: 10 20输出: 165NOIP2011-2.#include<iostream>#include<string>using namespace std;int main(){string map= "2223334445556667778889999";//数组中元素位置是从0开始计数的string tel;int i;cin>>tel;for(i=0;i<tel.length();i++)if((tel[i]>='0') && (tel[i]<='9') )//如果输入的tel是0~9,直接输出tel值cout<<tel[i];else if( (tel[i]>='A') && (tel[i]<='Z'))cout<<map[tel[i]-'A'];//如果输入的tel是A~Z,则输出一个map数组中对应的元素//输出元素在map数组中位置为“输入字母与A的ASCII码的差值”//如果输入的是其他字符,比如“-”,则不符合循环条件,无输出cout<<endl;return 0;}输入: CCF-NOIP-2011输出: 22366472011NOIP2011-3.#include<iostream>#include<cstring>using namespace std;const int SIZE= 100;int main(){int n,i,sum,x,a[SIZE];cin>>n;memset(a,0,sizeof(a));for(i=1;i<=n;i++){cin>>x;a[x]++;}//循环结束时数组中的值为:a[1]=1,a[2]=2,a[3]=3,a[4]=2,a[5]=1,a[6]=2 i=0;sum=0;while(sum<(n/2+1)){//当sum值大于等于n/2+1,即sum>=6的时候,循环结束i++;sum+=a[i];}cout<<i<<endl;//输出循环结束时i 的值(不是sum的值)return 0;}输入:114 5 6 6 4 3 32 3 2 1输出: 3NOIP2011-4.#include<iostream>using namespace std;int solve(int n,int m){int i,sum;if(m==1) return 1;//递归函数solve(i,m)中m=1时返回函数值为1sum=0;for(i=1;i<n;i++)//递归函数solve(i,m)中i=1时不循环,sum=0sum+= solve(i,m-1);return sum;//可递归求得sum=solve(1,3)+(2,3)+(3,3)+(4,3)+(5,3)+(6,3)}int main(){int n,m;cin>>n>>m;cout<<solve(n,m)<<endl; //输出函数值,即sum值return 0;}输入: 7 4输出: 20NOIP2012-1.#include<iostream> using namespace std; int a, b, c, d, e, ans; int main(){cin>>a>>b>>c;d = a+b;e = b+c;ans = d+e;//ans=a+b+b+ccout<<ans<<endl;return 0;}输入: 1 2 5输出: 10NOIP2012-2.#include<iostream>using namespace std;int n, i, ans;int main(){cin>>n;ans = 0;for (i = 1; i <= n; i++)if (n % i == 0)ans++;//统计1~18中18的因数个数cout<<ans<<endl;return 0;}输入: 18输出: 6NOIP2012-3.#include<iostream>using namespace std;int n, i, j,a[100][100];int solve(int x,int y){int u, v;if(x == n)return a[x][y];//递归边界:当x=5时,solve(5,y)=a[5][y]u= solve(x + 1, y);v= solve(x + 1, y + 1);if(u > v)return a[x][y] + u;elsereturn a[x][y] + v;//用递归最终求得solve(1,1)=a[1][1]+solve(2,2)=2+12=14 }int main(){cin>>n;for(i = 1; i <= n; i++) for (j = 1; j <= i; j++) cin>>a[i][j];cout<<solve(1,1)<<endl; return 0;}输入:52-1 42 -1 -2-1 6 4 03 2 -1 5 8输出: 14NOIP2012-4.#include<iostream>#include<string> using namespace std; int n, ans, i, j;string s;char get(int i){if(i < n)return s[i];elsereturn s[i-n];//i<8时,get(i)返回s[i];i>=8时,get(i)返回s[i-8],从第一个开始返回}int main(){cin>>s;n= s.size();ans= 0;for(i = 1; i <= n-1; i++){for (j = 0; j <= n-1; j++)if (get(i+j) < get(ans+j)){ans = i;break;}else if (get(i+j) > get(ans+j))break;}//此循环执行完毕,ans=7for(j = 0; j <= n-1; j++)cout<<get(ans+j);//1,ans+j<8,输出s[7+0];2,ans+j=8,输出s[8-8];3,ans+j=9,输出s[9-8]……cout<<endl;return 0;}输入: CBBADADA输出: ACBBADADNOIP2013-1.#include<iostream>using namespace std;int main(){inta, b;cin>>a>>b;cout<<a<<"+"<<b<<"="<<a+b<<endl;return 0;}//输出:3+5=8输入: 3 5输出: 3+5=8NOIP2013-2.#include<iostream>using namespace std;int main(){int a, b, u, i, num;cin>>a>>b>>u;num = 0;for (i = a; i <= b; i++)if ((i % u) == 0)num++;//1-100之间有多少数是15的倍数cout<<num<<endl;return 0;}输入: 1 100 15输出: 6NOIP2013-3.#include<iostream>using namespace std;int main(){const int SIZE = 100;int n, f, i, left, right, middle, a[SIZE]; cin>>n>>f;for (i = 1; i <= n; i++)cin>>a[i];left = 1;right = n;do {middle= (left + right) / 2;if(f <= a[middle])right = middle;elseleft = middle + 1;}while (left < right);// middle=6,17>a[6],则left=7// middle=9,17<a[9],则right=9 // middle=8,17<a[8],则right=8// middle=7,17=a[7],则right=7 // left=right,直接输出leftcout<<left<<endl;return 0;}输入:12 172 4 6 9 11 15 1718 19 20 21 25 输出: 7NOIP2013-4.#include<iostream>using namespace std;int main(){constint SIZE = 100;intheight[SIZE], num[SIZE], n, ans; cin>>n;for(int i = 0; i < n; i++) {cin>>height[i];num[i] = 1;for (int j = 0; j < i; j++) {if ((height[j] < height[i]) && (num[j] >= num[i]))num[i] = num[j]+1;}}//两两相比,得出num[0], num[1], num[2], num[3], num[4], num[5]ans= 0;for(int i = 0; i < n; i++) {if (num[i] > ans) ans = num[i];}//得出num中最大值,即在数组height中第几位数值最大cout<<ans<<endl;return 0;}输入:62 53 11 12 4输出: 4不懂算法?跟踪变量!列表模拟!遇到递归?画树形图!注意边界!找到规律了?还会流程图?恭喜你,32分到手了!NOIP2014-1.#include <iostream>using namespace std;int main(){int a, b, c, d, ans;cin>> a >> b >> c;d = a - b; //将a-b=-1赋值给d a = d + c; //将d+c=3赋值给a ans = a * b; //ans=a*b=3*3=9 cout<< "Ans = " << ans << endl; return 0;}输入:2 3 4输出: Ans=9NOIP2014-2.#include <iostream>using namespace std;int fun(int n){if (n == 1)return 1; //边界fun(1)=1if (n == 2)return 2; //边界fun(2)=2 return fun(n - 2) - fun(n - 1); } //fun(n)=fun(n-2)-fun(n-1) int main(){int n;cin >> n;cout << fun(n) << endl;//fun(7)=fun(5)-fun(6)=-11 return 0;}输入: 7输出: -11NOIP2014-3.#include <iostream>#include <string>using namespace std;int main(){int i, len;getline(cin, st);len = st.size();for(i = 0; i < len; i++){if (st[i] >= 'a' && st[i] <= 'z')st[i] = st[i] - 'a' + 'A';} //如果字符串st中字母小写,则替换成大写cout<< st << endl;return 0;}输入: Hello, my name is Lostmonkey.输出: HELLO, MY NAME IS LOSTMONKEY.NOIP2014-4.#include <iostream>using namespace std;const int SIZE =100;int main(){int p[SIZE];int n, tot, i, cn;cin>> n;for(i = 1; i <= n; i++)p[i] = 1; //p[1]-p[30]中所有元素赋值1 for(i = 2; i <= n; i++){if (p[i] == 1)tot++; //计数cn = i * 2; //找出2-30中所有2i while (cn <= n) {p[cn] = 0;cn += i; //找出2-30中所有3i}}//对2-30中素数计数,并输出个数cout<< tot << endl;return 0;}输入: 30输出: 10NOIP2015-1.#include <iostream>using namespace std;int main(){int a, b, c;a = 1;b = 2;c = 3;if(a > b) //不符合循环条件,不执行if(a > c)cout << a << ' ';elsecout << b << ' ';cout << c << endl;return 0;}输出: 3NOIP2015-2.#include <iostream>using namespace std;struct point{int x;int y;}; //声明结构体类型pointint main(){int a, b, c;struct EX{int a;int b;point c;}e; //声明结构体类型EXe.a = 1; //结构体变量e中变量ae.b = 2; //结构体变量e中变量be.c.x = e.a + e.b;//结构体变量e中的结构体变量c中的变量x e.c.y = e.a * e.b;//结构体变量e中的结构体变量c中的变量y cout << e.c.x << ','<< e.c.y << endl; return 0;}输出: 3,2NOIP2015-3.#include <iostream>#include <string>using namespace std;int main(){string str;int i;int count;count = 0;getline(cin, str);for(i = 0; i < str.length();i++)if(str[i] >= 'a' &&str[i] <= 'z')count++; //统计字符串中小写字母数量cout << "It has "<< count << " lowercases" << endl; return 0;}输入: NOI2016will be held in Mian Yang.输出: It has 18 lowercasesNOIP2015-4.#include <iostream>#include <string>using namespace std;void fun(char *a, char *b){a = b;(*a)++;} //指针题int main(){char c1, c2, *p1, *p2;c1 = 'A';c2 = 'a';p1 = &c1;p2 = &c2;fun(p1, p2);//p1=p2=&c2,把c2的地址赋值给指针变量p1 //p1++,则有&’a’+1=&’b’, 所以,c2=’b’,cout << c1 << c2<< endl;return 0;}输出: AbNOIP2016-1.#include <iostream>using namespace std;int main(){int max, min, sum, count = 0;int tmp;cin>> tmp;if(tmp == 0)return0; //如果输入的数字是0,程序退出max= min = sum = tmp;count++;while(tmp != 0) {cin>> tmp;if(tmp != 0) {sum += tmp; //求和count++;//计数if(tmp > max)max = tmp; //找出最大值if(tmp < min)min = tmp; //找出最小值}}cout<< max << "," << min << ","<< sum / count << endl; //输出“最大值, 最小值, 平均值”return 0;}输入: 1 2 3 4 5 6 0 7输出: 6,1,3NOIP2016-2.#include <iostream>using namespace std;int main(){int i = 100, x = 0, y = 0;while (i > 0) {i--;x = i % 8;if (x == 1)y++;} //统计1-100中有多少数是“8的倍数+1”cout << y << endl;return 0;}输出: 13NOIP2016-3.#include <iostream>using namespace std;int main(){int a[6] = {1, 2, 3, 4, 5, 6};int pi = 0;int pj = 5;int t , i;while(pi < pj) {t =a[pi];a[pi]= a[pj];a[pj]= t;pi++;pj--;} //把数组a[6]中的数字顺序颠倒过来for(i = 0; i < 6; i++)cout<< a[i] << ",";cout<< endl;return 0;}输出: 6,5,4,3,2,1,NOIP2016-4.#include <iostream>using namespace std;int main(){int i, length1, length2; strings1, s2;s1= "I have a dream.";s2 = "I Have A Dream."; length1 = s1.size();length2 = s2.size();for (i = 0; i < length1; i++)if (s1[i] >= 'a' && s1[i]<= 'z') s1[i] -= 'a' - 'A';//把s1里的小写字母全部换成大写for (i = 0; i < length2; i++)if (s2[i] >= 'a' && s2[i]<= 'z') s2[i] -= 'a' - 'A';//把s2里的小写字母全部换成大写if (s1 == s2)cout << "=" <<endl;else if (s1 > s2)cout << ">" <<endl;elsecout << "<" <<endl;return 0;}输出: =。

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 的值 尽可能小。

noip2014普及组初赛试题+答案

noip2014普及组初赛试题+答案

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

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

2、 不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。

A.负责外设与主机之间的信息交换B.负责诊断机器的故障C.控制和管理计算机系统的各种硬件和软件资源的使用D.将没有程序编译成目标程序6. CPU 、存储器、 A.接口 B.总线 C.控制线7•断电后会丢失数据的存储器是 A.RAM B.ROM C.硬盘8•以下哪一种是属于电子邮件收发的协议12•下列几个32位IP 地址中,书写错误的是 ( )。

A.162.105.135.27B.192.168.0.1C.256.256.129.1 13•要求以下程序的功能是计算: s=1+1/2+1/3+...+1/10 #in elude <iostream>一、单项选择题(共20题,每题1.51.以下哪个是面向对象的高级语言(A.汇编语言B.C++C.Fortran2. 1TB 代表的字节数是()。

A.2的10次方 B.2的20次方分,共计 )。

D.Basic30分;每题有且仅有一个正确选项 )C.2 的 30 的和是( A.00101000B.001010100C.010001014•以下哪一种设备属于输出设备( )。

A.扫描仪B.键盘C.鼠标D.打印机5•下列对操作系统功能的描述最为完整的是 ( 次方 D.2的40次方)。

D.00111001I/O 设备是通过()连接起来的。

D.系统文件 (A.SMT PB.UD PC.P2PD.FT P9•下列选项中不属于图像格式的是(A.JPEG 格式B.TXT 格式C.GIF 10.链表不具有的特点是( A.不必事物估计存储空间 C.插入删除不需要移动元素11•下列各无符号十进制整数中,A.296B.133C.256 )。

NOIP普及组初赛及答案Pascal

NOIP普及组初赛及答案Pascal

第十八届全国青少年信息学奥林匹克联赛初赛(普及组Pascal语言试题)选手注意:试题纸共有10页,答题纸共有2页,满分100分。

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

不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料一、单项选择题(共20题,每题1.5分,共计30分;每题且仅有一个正确选项)1.计算机如果缺少(),将无法正常启动。

A.内存B.鼠标C.U盘D.摄像头2.()是一种先进先出的线性表。

A.栈B.队列C.哈希表(散列表)D.二叉树3.目前计算机芯片(集成电路)制造的主要原料是(),它是一种可以在沙子中提炼出的物质。

A.硅B.铜C.锗D.铝4.十六进制数9A在()进制下是232。

A.四B.八C.十5.()不属于操作系统。

A.WindowsB.DOSD.十二C.PhotoshopD.NOI Linux6.如果一棵二叉树的中序遍历是BAC,那么它的先序遍历不可能是()。

A.ABCB.CBAC.ACBD.BAC7.目前个人电脑的()市场占有率最靠前的厂商包括Intel、AMD等公司。

A.显示器B.CPUC.内存D.鼠标8.使用冒泡排序对序列进行升序排列,每执行一次交换操作系统将会减少1个逆序对,因此序列5,4,3,2,1需要执行()次操作,才能完成冒泡排序。

A.0B.5C.10D.159.1946年诞生于美国宾夕法尼亚大学的ENIAC属于()计算机。

A.电子管B.晶体管C.集成电路D.超大规模集成电路10.无论是TCP/IP模型还是OSI模型,都可以视为网络的分层模型,每个网络协议都会被归入某一层中。

如果用现实生活中的例子来比喻这些“层”,以下最恰当的是()。

A.中国公司的经理与波兰公司的经理交互商业文件B.军队发布命令C.国际会议中,每个人都与他国地位对等的人直接进行会谈D.体育比赛中,每一级比赛的优胜者晋级上一级比赛11.矢量图(VectorImage)图形文件所占的贮存空间比较小,并且无论如何放大、缩小或旋转等都不会失真,是因为它()。

NOIP2014 普及组 解题报告

NOIP2014 普及组 解题报告

f[i,j]:=min{f[i-1,k]+|a[j]-a[k]|} (i≤k<j)
这里,f 是状态数组,a 储存原始序列。注意,所有的加数都在 min 的大括号中。这是一个时间 复杂度为 O(n3)的二维 DP。有了这个方程,我们再回到原问题。思考以后发现,要想直接把这个方 程升级到二维是十分困难的。注意到“1≤n,m≤16”这个数据范围,想到,可不可以一半搜索一半 DP 呢?答案是肯定的。我们可以任选行或列进行搜索(以搜索行为例),每次穷搜到的结果是一个有 r 个元素的行标序列。接下来,对于每一列 j,我们就可以将 a[ik,j](k 表示所有当前被搜中的行) 作为一个整体。对于在一维序列中的代价“|a[j]-a[k]|”,在二维矩阵中可以把它分解为上下两 个元素的“纵差”和左右两个元素的“横差”,在每次 DP 之前进行初始化。这样就把二维矩阵压缩 成了一维序列,可以应用刚才的状态转移方程了——当然还要变换一下:
assign(output,'count.out'); rewrite(output); readln(n); for i:=1 to n do read(a[i]); fillchar(b,sizeof(b),false); for i:=1 to n-1 do for j:=i+1 to n do b[a[i]+a[j]]:=true; ans:=0; for i:=1 to n do if b[a[i]] then inc(ans); writeln(ans); close(input); close(output) End.
-代码见下页-
第 4 页 共 13 页
NOIP2014 普及组 解题报告
By yearwhk
【参考代码】

noip普及组初赛试题及答案

noip普及组初赛试题及答案

noip普及组初赛试题及答案1.在8位二进制补码中,表示的数是十进制下的( )。

A。

43 B。

-85 C。

-43 D。

-842.计算机存储数据的基本单位是( )。

A。

bit B。

Byte C。

GB D。

KB3.下列协议中与电子邮件无关的是( )。

A。

POP3 B。

SMTP C。

WTO D。

IMAP4.分辨率为800x600、16位色的位图,存储图像信息所需的空间为( )。

A。

900KB B。

1200KB C。

2400KB D。

2880KB5.计算机应用的最早领域是( )。

A。

数值计算 B。

人工智能 C。

机器人 D。

过程控制6.下列不属于面向对象程序设计语言的是( )。

A。

C B。

C++ C。

Java D。

C#7.NOI的中文意思是( )。

A。

中国信息学联赛 B。

全国青少年信息学奥林匹克竞赛C。

中国青少年信息学奥林匹克竞赛 D。

XXX8.2017年10月1日是星期日,1999年10月1日是( )。

A。

星期三 B。

星期日 C。

星期五 D。

星期二9.甲、乙、丙三位同学选修课程,从4门课程中,甲选修2门,乙、丙各选修3门,则不同的选修方案共有( )种。

A。

36 B。

48 C。

96 D。

19210.设G是有n个结点、m条边(n ≤m)的连通图,必须删去G的( )条边,才能使得G变成一棵树。

A。

n-1 B。

m-n C。

m+n+1 D。

m+1-n11.对于给定的序列{ak},我们把(i。

j)称为逆序对当且仅当i。

aj。

那么序列1.7.2.3.5.4的逆序对数为()个。

A。

4 B。

5 C。

6 D。

712.表达式a * (b + c) * d的后缀形式是()。

A。

abcd*+* B。

abc+*d* C。

a*bc+*d D。

b+c*a*d13.向一个栈顶指针为hs的链式栈中插入一个指针s指向的结点时,应执行( )。

A。

hs->next=s。

s->next=hs。

hs=s;B。

s->next=hs。

NOIP普及组初赛历年试题及答案求解题篇

NOIP普及组初赛历年试题及答案求解题篇

NOIP普及组初赛历年试题及答案求解题篇问题求解:每次共2题,每空5分,共计10分。

每题全部答对得 5 分,没有部分分。

注:答案在文末在NOIP初赛问题求解中,经常会遇到排列组合问题。

这一类问题不仅内容抽象,解法灵活,而且解题过程极易出现“重复”和“遗漏”的错误,这些错误甚至不容易检查出来,所以解题时要注意不断积累经验,总结解题规律。

解答排列组合问题,首先必须认真审题,明确是属于排列问题还是组合问题,或者属于排列与组合的混合问题,其次要抓住问题的本质特征,灵活运用基本原理和公式进行分析解答。

同时还要注意讲究一些策略和技巧,比如采用分类、分步、捆绑等方法,也可以借助表格、方程等工具,使一些看似复杂的问题迎刃而解。

NOIP2011-1. 每份考卷都有一个8位二进制序列号。

当且仅当一个序列号含有偶数个1时,它才是有效的。

例如,0000000、01010011都是有效的序列号,而11111110不是。

那么,有效的序列号共有______个。

NOIP2011-2. 定义字符串的基本操作为: 删除一个字符、插入一个字符和将一个字符修改成另外一个字符这三种操作。

将字符串A变成字符串B的最少操作步数,称为字符串A到字符串B的编辑距离。

字符串“ ABCDEFG ”到字符串“BADECG ”的编辑距离为_______。

NOIP2012-1. 如果平面上任取n 个整点(横纵坐标都是整数) ,其中一定存在两个点,它们连线的中点也是整点,那么n至少是_____。

NOIP2012-2. 在NOI期间,主办单位为了欢迎来自全国各地的选手,举行了盛大的晚宴。

在第十八桌,有5名大陆选手和5名港澳选手共同进膳。

为了增进交流,他们决定相隔就坐,即每个大陆选手左右相邻的都是港澳选手、每个港澳选手左右相邻的都是大陆选手。

那么,这一桌共有_____种不同的就坐方案。

注意:如果在两个方案中,每个选手左边相邻的选手均相同,则视为同一个方案。

NOIP2013-1. 7 个同学围坐一圈,要选2 个不相邻的作为代表,有_____种不同的选法。

NOIP2014复赛普及组第一题题解

NOIP2014复赛普及组第一题题解

活动园地NOIP2014复赛普及组第一题题解原题一、题目简化:求N个正数中有多少个数是这些数中其它两个数的和。

3<=N<=100; 每个正整数M:1<=M<=10000;二、过程分析:试题显然可以分成三个步骤求解:1、先求出N个数中每两个数的和;2、判断这些和中有没有重复,重复的数只留下一个;3、N个数中的每一个数都与这些和比较,若相等些记下,比较完成,即得其解。

三、算法与策略:三个步骤都采用一一列举所有可能的方法,是典型的枚举。

四、程序设计思路:1、一维数组A存放N个数,一维数组B存放两两相加的和;求和、判断重复、比较两数是否相等,都采用两重循环,i 控制外循环,j 控制内循环,k表示数组B的下标变化,ans表示题目答案。

数组a最多100个元素,考虑到用循环,为防止下标越界,可适当把数组开大一些,a[0..101];数组b中元素数是N个数两个数两两相加的和的个数,由于N最大是100,所以和的个数最多是1+2+3+……99=4950个,则b[0..5000]五、程序设计:program count;vara:array[0..101] of longint;b:array[0..5000] of longint;n,ans,i,j,k:longint;beginassign(input,'count.in');reset(input);assign(output,'count.out');rewrite(output);readln(n);for i:=1 to n doread(a[i]);fillchar(b,sizeof(b),0);**下面开始步骤1:a中的数两两相加放在b中**k:=1;for i:=1 to n-1 dofor j:=i+1 to n dobeginb[k]:=a[i]+a[j];inc(k);end;**下面开始步骤2:筛掉b中的重复数据:**for i:= 1 to (k-1)-1 do for j:=i+1 to k-1 do begin if b[i]:=b[j] then b[j]:=0; end;**下面开始步骤3:比较a 数组中有多少个数与b 数组中的数相等:** ans:=0; for i:=1 to n dofor j:=1 to k-1 do begin if (a[i]=b[j]) then inc(ans); end;**比较结束,结果已得出,下面输出结果,关闭文件,结束程序** write(ans); close(input) close(output); end.六、时间复杂度分析:三个步骤采用了三个双重循环,每个双重循环运行约N ·∑-=11n i i 次,若N =100,则整个程序运行约150万次操作,T (N )=0(N 3)理论上讲,还可以忍受。

noip普及组初赛试题及答案

noip普及组初赛试题及答案

noip普及组初赛试题及答案### NOIP 普及组初赛试题及答案#### 一、选择题(每题2分,共10分)1. 题目:计算机程序设计语言中,哪种语言是由Dennis Ritchie在1970年代初期开发的?- A. Java- B. C语言- C. Python- D. Ruby答案:B2. 题目:在计算机科学中,算法的时间复杂度是指什么?- A. 算法执行所需的内存大小- B. 算法执行所需的时间长短- C. 算法的可读性- D. 算法的可扩展性答案:B3. 题目:以下哪个是计算机网络中的数据交换技术?- A. TCP- B. UDP- C. FTP- D. HTTP答案:A4. 题目:在HTML中,用于定义文档类型声明的标签是哪一个?- A. `<!DOCTYPE>`- B. `<html>`- C. `<head>`- D. `<body>`答案:A5. 题目:以下哪个是操作系统的五大基本功能之一?- A. 邮件服务- B. 文件系统管理- C. 网络服务- D. 办公自动化答案:B#### 二、填空题(每空2分,共20分)1. 在C语言中,用于定义一个整型变量的关键字是 int。

2. 数据结构中的栈是一种后进先出(LIFO)的数据结构。

3. 在Java中,一个类可以继承另一个类的属性和方法,这体现了面向对象程序设计的继承特性。

4. 在数据库管理系统中,SQL代表结构化查询语言,它是用于管理关系数据库的标准语言。

5. 计算机网络中的DNS服务用于将域名解析为IP地址。

#### 三、简答题(每题10分,共20分)1. 题目:请简述什么是二叉树,并给出二叉树的两种主要遍历方式。

答案:二叉树是一种特殊的树形数据结构,其中每个节点最多有两个子节点,通常称为左子节点和右子节点。

二叉树的两种主要遍历方式是前序遍历和后序遍历。

前序遍历的顺序是先访问根节点,然后是左子树,最后是右子树。

NOIP2014初赛普及组试题知识点分析

NOIP2014初赛普及组试题知识点分析

第二十届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题2014年一、快单项选择题(共20题,每题1.5分,共计30分;每题有且仅有一个正确选项)1.以下哪个是面向对象的高级语言()。

A.汇编语言B.C++C.FortranD.Basic【知识点】计算机语言基础常识【掌握度】了解【知识分析】面向对象语言是一类以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。

语言中提供了类、继承等成分,有识认性、多态性、类别性和继承性四个主要特点。

而面向对象只是一种编程思想。

汇编语言:低级语言C++:面向对象高级语言Fortran:高级语言Basic:高级语言⒉1TB代表的字节数是()。

A.2的10次方B.2的20次方C.2的30次方D.2的40次方【知识点】计算机存储进制换算【掌握度】掌握【知识分析】1KB = 1024B = 210B1MB = 1024KB = 220B1GB = 1024MB = 230B1TB = 1024GB = 240B⒊二进制数00100100和00010101的和是()。

A.00101000B.001010100C.01000101D.00111001【知识点】二进制运算【掌握度】掌握⒋以下哪一种设备属于输出设备()。

A.扫描仪B.键盘C.鼠标D.打印机【知识点】计算机组成原理【掌握度】掌握【知识分析】硬件组成:控制器(Control):是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。

运算器(Datapath):运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。

存储器(Memory):存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息。

输入设备(Input system):输入设备是计算机的重要组成部分,输入设备与输出设备合称为外部设备,简称外设,输入设备的作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机。

NOIP初赛复习普及组

NOIP初赛复习普及组

B. 8
C. 32
•十六进制数 9A 在()进制下是 232。 B
A.四
B.八
C.十
D. 128
D.十二
二、计算机网络
计算机网络拓扑结构
总 线 型 拓 扑 结 构
6/23/2021
前一页 后一页
计算机网络拓扑结构
环 型 拓 扑 结 构
6/23/2021
前一页 后一页
计算机网络拓扑结构
星 型 拓 扑 结 构
B.用点、直线或者多边形等基于数学方程的几何图元来表示图像
C.每个像素点的颜色信息均用矢量表示
D.把文件保存在互联网,采用在线浏览的方式查看图像
•地址总线的位数决定D 了 CPU 可直接寻址的内存空间大小,例如地址总线为 16 位,其最大的可寻址空间为 64KB。如果地址总线是 32 位,则理论上最大可寻
A.由研究蝙蝠,发明雷达 B.由研究蜘蛛网,发明因特网
C.由研究海豚,发明声纳 D.由研究电鱼,发明伏特电池
A
•在使用高级语言编写程序时,一般提到的“空间复杂度”中的“空间”是指 ( )。
A. 程序运行时理论上所占的内存空间
B. 程序运行时理论上所占的数组空间 x
C. 程序运行时理论上所占的硬盘空间
C. 32
D. 以上都有可能
•设X、Y、Z分别代表三进制下的一位数字,若等式XY + ZX = XYX在三进制下成
立,那么同样在三进制下,等式XY * ZX = ( )也成立。
B
A. YXZ
B. ZXY
C. XYZ
•一个字长为8位的整数的补码是,则它的原码是( )。
D. XZY D
A. 00000111 B. 01111001 C. 11111001 D. 10000111

NOIP普及组初赛完善题:看最近六年有无规律可循?

NOIP普及组初赛完善题:看最近六年有无规律可循?

NOIP普及组初赛完善题:看最近六年有无规律可循?完善程序,每年两题,每题每空2-4分,共28分。

【解题步骤】1、仔细读题,尤其是题目给你的解题思路:解决什么问题?用的什么算法?输入输出是什么?……2、要知道变量的含义,也可通过变量单词的意思知道,比如sum 表示和,que表示队列等等。

3、在充分了解前两点的基础上,先根据自己的想法大致想想:如果让你实现程序,你会怎么做。

4、通读程序,理顺程序结构,千万不要因为程序很长而觉得气馁,有时程序越长,填空越简单。

5、按照程序执行的顺序做,遇到难的先放一边,继续往下做。

有些空格很简单,一下就能看出来的。

6、到这步为止,程序大概意图就知道了,然后就是填比较难的几格了。

这一点就靠你对程序的理解了。

7、填完了以后,再执行一遍程序,有样例就结合样例,没样例就自己造数据模拟。

【解题技巧】1、变量初始化:这个得结合后面的运算确定,不过有些也很简单,如sum=0之类的。

2、for循环初、终值:如果是嵌套的循环,可结合父循环或子循环确定。

3、更新最优解:比较或赋值。

4、要填的空格与某句对应,这样的例子在下面能找到很多。

NOIP2011-1.子矩阵给输入一个n1*m1 的矩阵a,和n2*m2的矩阵b ,问a 中是否存在子矩阵和b 相等。

若存在,输出所有子矩阵左上角的坐标:若不存在输出“There isno answer ”。

#include<iostream>using namespace std;const int SIZE = 50;int n1,m1,n2,m2,a[SIZE][SIZE],b[SIZE][SIZE];int main(){int i,j,k1,k2;bool good ,haveAns;cin>>n1>>m1;for(i=1;i<=n1;i++)for(j=1;j<=m1;j++)cin>>a[i][j];cin>>n2>>m2;for(i=1;i<=n2;i++)for(j=1;j<=m2;j++)cin>>b[i][j];haveAns=false;for(i=1;i<=n1-n2+1;i++)for(j=1;j<=m1-m2+1;j++){good=true;for(k1=1;k1<=n2;k1++)for(k2=1;k2<=m2;k2++){if(a[i+k1-1][j+k2-1]!=b[k1][k2])good=false;}if(good){cout<<i<<''<<j<<endl;haveAns=true;}}if(!haveAns)cout<<"Thereis no answer"<<endl;return 0;}NOIP2011-2. 大整数开方输入一个正整数n ( 1 ≤n≤10^100),试用二分法计算它的平方根的整数部分。

noip初赛试题普及组及答案

noip初赛试题普及组及答案

noip初赛试题普及组及答案一、选择题(每题5分,共20分)1. 在计算机中,用来表示存储容量的基本单位是()。

A. 字节B. 字C. 位D. 字长答案:A2. 下列关于算法复杂度的描述,正确的是()。

A. 算法复杂度与程序代码的长短有关B. 算法复杂度与程序的运行时间有关C. 算法复杂度与程序运行的输入数据有关D. 算法复杂度与程序运行的机器性能有关答案:C3. 在编程中,若要实现一个循环,直到满足某个条件才停止,应使用()。

A. while循环B. for循环C. do-while循环D. switch语句答案:A4. 在C++中,下列哪个关键字用于定义一个类()。

A. structB. classC. interface答案:B二、填空题(每题5分,共20分)1. 在计算机科学中,数据结构通常分为两大类:线性结构和________。

答案:非线性结构2. 一个完整的程序设计语言包括语法规则和________规则。

答案:语义3. 在计算机中,用二进制表示的数值中,最小的非零数是________。

答案:14. 在C++中,用于定义一个私有成员的关键字是________。

答案:private三、编程题(每题30分,共60分)1. 编写一个程序,计算并输出100以内所有偶数的和。

```c++#include <iostream>using namespace std;int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}cout << "Sum of all even numbers within 100 is: " << sumreturn 0;}```2. 编写一个程序,实现一个简单的计算器,能够进行加、减、乘、除四则运算。

学科竞赛-noip普及组初赛试题及答案

学科竞赛-noip普及组初赛试题及答案

noip普及组初赛试题及答案文字标黑部分为试题答案。

一、单项选择题(共20题,每题分,共计30分;每题有且仅有一个正确选项)1.在8位二进制补码中,表示的数是十进制下的( )。

A. 43B. -85C. -43D. -842.计算机存储数据的基本单位是( )。

A. bitB. ByteC. GBD. KB3.下列协议中与电子邮件无关的是( )。

A. POP3B. SMTPC. WTOD. IMAP4.分辨率为800x600、16位色的位图,存储图像信息所需的空间为( )。

B.D. 2880KB5.计算机应用的最早领域是( )。

A.数值计算B.人工智能C.机器人D.过程控制6.下列不属于面向对象程序设计语言的是( )。

A. CB. C++C. JavaD. C#的中文意思是( )。

A.中国信息学联赛B.全国青少年信息学奥林匹克竞赛C.中国青少年信息学奥林匹克竞赛D.中国计算机协会8. 2017年10月1日是星期日,1999年10月1日是( )。

A.星期三B.星期日C.星期五D.星期二9.甲、乙、丙三位同学选修课程,从4门课程中,甲选修2门,乙、丙各选修3门,则不同的选修方案共有( )种。

A. 36B. 48C. 96D. 19210.设G是有n个结点、m条边(n ≤m)的连通图,必须删去G的( )条边,才能使得G变成一棵树。

–n+1 B. m-nC. m+n+1 –m+111.对于给定的序列{ak},我们把(i, j)称为逆序对当且仅当i aj。

那么序列1, 7, 2, 3, 5, 4的逆序对数为()个。

A. 4B. 5C. 6D. 712.表达式a * (b + c) * d的后缀形式是()。

A. abcd*+*B. abc+*d*C. a*bc+*dD. b+c*a*d13.向一个栈顶指针为hs的链式栈中插入一个指针s指向的结点时,应执行( )。

A. hs->next=s;>next=hs;hs=s;>next=hs->next;hs->next=s;>next=hs;hs=hs->next;14.若串S = “copyright”,其子串的个数是( )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二十届全国青少年信息学奥林匹克联赛初赛
普及组pascal语言试题
1、以下哪个是面向对象的高级语言()
A.汇编语言B.C++ C.Fortran D.Basic
2、1TB代表的字节数量是()
A.2的10次方B.2的20次方C. .2的30次方D. .2的40次方
3、二进制数00100100和00010101的和是()
A.00101000B.001010100C.01000101D.00111001
4、以下哪一种设备属于输出设备
A.扫描仪 B.键盘C.鼠标D.打印机
5、下列对操作系统功能的描述最为完整的是()
A.负责外设与主机之间的信息交换
B.负责诊断机器的故障
C.控制和管理计算机系统的各种硬件和软件资源的使用
D.将源程序编译成目标程序
6、CPU、存储器、I/O设备是通过()连接起来的
A.接口B.总线C.控制线D.系统文件
7、断电后会丢失数据的存储器是()
A.RAMB.ROM C.硬盘D.光盘
8、以下哪一种是属于电子邮件收发的协议()
A.SMTPB.UDP C.P2PD.FTP
9、下列选项中不属于图像格式的是()
A.JPEG格式B.TXT格式C.GIF格式D.PNG格式
10.链表不具有的特点是()
A.不必事先估计存储空间B.可随机访问任一元素C.插入删除不需要移动元素D.所需空间与线性表长度成正比
11.下列各无符号十进制整数中,所用八位二进制表示的数中最大的是()
A.296
B.133 c.256 d.199
12.下列几个32位IP地址中,书写错误的是()
A.162.105.142.27
B.192.168.0.1
C.255.256.129.1
D.10.0.0.1
13.要求以下程序的功能是计算:s=1+1/2+1/3+...+1/10。

Var
N:integer;
S:real;
Begin
S:=1.0;
For n:=10 downto 2 do
S:=s+1 div n;
Writeln(s:6:4);
End.
A.s:=1.0;
B.for n:=10 downto 2 do
C. S:=s+1 div n ;
D.writeln(s:6:4);
14.设变量x为real型且已赋值,则以下句子中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是()。

A.x:=(x*100)+0.5/100.0
B.X:=(x*100+0.5)/100.0
C.x:=trunc(x*100+0.5)/100.0
D.X:=(x/100+0.5)*100.0
15.有以下程序:
Var
S,a,n:integer;
Begin
S:=0;
A:=1;
Readln(n);
Repeat
S:=s+1;
A:=a-2;
Until a=n;
Writeln(s);
end.
若要使程序的输出值为2,则应该从键盘给n输入的值是()
A.-1
B.-3 c.-5 D.0
16.一棵具有5层的满二叉树中结点数为()
A.31
B.32
C.33
D.16
17.有向图中每个顶点的度等于该顶点的()
A.入度
B.出度
C.入席与出度之和
D.入度与出度之差
18.设有100个数据元素,采用折半搜索时,最大比较次数为()
A.6
B.7
C.8
D.10
19.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值,c>0。

S:=a;
For b:=1 to c do
S:=s+1;
则与上述程序段功能等价的赋值语句是()
A .s:=a+b B.s:=a+c C.s:=s+c D s:=b+c
20.计算机界的最高奖是()
A.菲尔兹奖
B.诺贝尔奖
C.图灵奖
D. 普利策奖
二、问题求解
1、把M个同样的球放到N个同样的袋子里,允许有的袋子空着不放,问共有多少种不同的放置方法?(用K表示)。

例如:M=7,N=3时,K=8;在这里认为(5,1,1)和(1,5,1)是同一种放置方法。

问:M=8,N=5时,K=。

2、如图所示,图中每条边上的数字表示该边的长度,则从A到E的最短距离是()
三、程序阅读
1、Var
A,b,c,d,ans:integer;
Begin
Readln(a,b,c);
D:=a-b;
A:=d+c;
Ans:=a*b;
Writeln(‘ans=’,ans);
end.
2、Var
N:integer;
Function fun(n:integer):integer; Begin
If n=1 then
Exit(1);
Exit(2);
Exit(fun(n-2)-fun(n-1));
End;
Begin
Readln(n);
Writeln(fun(n));
End.
3、Var
St:string;
Len,i:integer;
Begin
Readln(st);
Len:=length(st);
For i:=1 to len do
If(st[i]>=’a’) and (st[i]<=’z’) then
St[i]:=chr(ord(st[i])-ord(‘a’)+ord(‘A’));
Writeln(st);
End.
4、Const
Size=100;
Var
P:array[1..size] of integer;
N,tot,cn,i:integer;
Begin
Readln(n);
For i:=1 to n do
P[i]:=1;
Tot:=0;
For i:=2 to n do
If p[i]=1 then
Tot:=tot+1;
Cn:=i*2;
While cn<=n do
Begin
P[cn]:=0;
Cn:=cn+i;
End;
End;
Writeln(tot);
End.
四、完善程序
1.(数字删除)下面程序的功能是将字符串中的数字字符删除后输出。

请填空Var
S:string;
Len,i:integer;
Function delnum(var s:string):integer;
Var
I,j:integer;
Begin
J:=1;
For i:=1 to length(s) do
If(s[i]<’0’) (1) (s[i]>’9’) then
Begin
S[j]:=s[i];
(2) ;
End;
Exit( 3 );
End;
Begin
Readln(s);
Len:=delnum(s);
For i:=1 to len do
Write( (4) );
Writeln;
End.
2、(最大子矩阵和)给出m行n列的整数矩阵,求最大的子矩阵和(子矩阵不能为空)。

输入第一行包含两个整数m和n,即矩阵的行数和列数。

之后m行,每行n个整数,描述整个矩阵。

程序最终输出最大的子矩阵和。

Const
Size=100;
Var
Matrix:array[1..size,1..size] of integer;
Rowsun:array[1..size,0..size] of integer;
M,n,i,j,first,last,area,ans:integer;
Begin
Read(m,n);
For i:=1 to m do
For j:=1 to n do
Read(matrix[i,j]);
Ans:=matrix( 1 );
For i:=1 to m do
(2) ;
For i:=1 to m do
For j:=1 to n do
Rowsun[i,j]:= (3) ;
For first:=1 to n do
For last:=first to n do
Begin
(4) ;
For i:=1 to m do
Begin
Area:=area+ (5) ;
If (area>ans) then
Area:=area;
If(area<0) then
Area:=0;
End;
End;
Writeln(ans);
end.。

相关文档
最新文档