第17届信息学奥赛

作者&投稿:茌咏 (若有异议请与网页底部的电邮联系)
信息学奥赛是什么~

信息学奥赛:青少年信息学(计算机)奥林匹克竞赛(早期称为青少年计算机程序设计竞赛)是旨在广大青少年中普及计算机教育,推广计算机应用的一项学科性竞赛活动。
全国从1984年开始举办全国性竞赛。而自从1989年我国参加第一届国际信息学奥林匹克以来,全国青少年计算机程序设计竞赛也更名为全国青少年信息学(计算机)奥林匹克(National Olympiad in Informatics, 简称NOI)。
全国信息学奥林匹克竞赛活动担负着选拔优秀学生参加国际学科奥林匹克竞赛任务,它是经国家教委批准,中国科协具体领导,由中国计算机学会主办的。

扩展资料:
历史背景:
第一阶段是1984~1986年,当时以BASIC语言作为主要的程序设计语言,主要考核学生对程序设计语言的理解和熟悉程度以及编程技巧。
第二阶段从1987年开始,逐步增加了数据结构方面知识等内容,对学生的要求除了要熟悉程序设计语言外,还要学习一些数据结构和算法的基本知识,加强上机编程调试能力的培养。
第三阶段从1989年我国参加第一届国际信息学奥林匹克竞赛以来,对学生学习计算机理论知识和实践能力有了一个整体性的全面要求,也即整个信息学(计算机)竞赛已成为智力和应用计算机能力的竞赛;
涉及到有关计算机基础知识、计算机软件知识、程序设计知识、组合数学和运筹学的知识、人工智能初步知识以及计算机应用知识等,同时要求学生有较强的编程和上机调试的实践能力。
参考资料来源:百度百科——信息学奥赛

信息学竞赛简单来说考的是编程。

首先你应该熟练掌握一门编程语言(c、c++、pascal)(书店很多语言入门的书籍)。

然后买一些算法、数据结构类的基础书籍,这类书也很多,一般买一两本就够,比如《奥赛经典》系列的不错。王建德、朱全民这些老师出的书,其实大同小异,买一本入一下门就足够。如果这些东西你都可以掌握,那就要看一些更高层次的了,比如《算法艺术与信息学竞赛》,这本书可以说是信息竞赛界的至尊。

只看书也是不够的,你还应该多到网上与大牛交流、多做题

推荐两个OI网站:
OIBH:
http://bbs.oibh.org
NOCOW:
http://www.nocow.cn
前者是最有权威的一个OI网站,后者是起步相对较晚,但也很不错的一个网站。

做题方面,我现在对vijos信心不大,上面水题比较多,而且经常出各种各样诡异的错误。不过对新手可能也挺有好处的。如果做的话,建议不要按难度从小到大做,按通过率从大到小来做。
我现在一直在做USACO,英文的,不过有中文译题,上面的题大体是从易到难排列的,个人感觉对提升水平很有帮助。
USACO:
http://ace.delos.com/usacogate
译题:
http://www.nocow.cn/index.php/USACO_Training

关于保送,今年放出NOIP不再保送而只是高考加分(NOI依然可以保送)的风声,应该比较可靠。这个几率要看不同地区,比如湖南等强省和其他弱省就是不一样……

大体就这些吧,希望对你能有帮助。

第十七届全国青少年信息学奥林匹克联赛初赛试题
( 提高组 C++语言 两小时完成 )
● ● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 ●●

一、单项选择题 (共10题,每题1.5分,共计15分。每题有且仅有一个正确选项。)

1.在二进制下,1011001 + ( )= 1100110。
A.1011 B .1101 C.1010 D.1111

2.字符“A”的ASCII码为十六进制41,则字符“Z”的ASCII码为十六进制的( )。
A.66 B.5A C.50 D.视具体的计算机而定

3.右图是一棵二叉树,它的先序遍历是( )。
A.ABDEFC B.DBEFAC C.DFEBCA D.ABCDEF

4.寄存器是( )的重要组成部分。
A.硬盘 B.高速缓存 C.内存 D.中央处理器(CPU)

5.广度优先搜索时,需要用到的数据结构是( )。
A.链表 B.队列 C.栈 D.散列表

6.在使用高级语言编写程序时,一般提到的“空间复杂度”中的空间是指( )。
A.程序运行时理论上所占的内存空间
B.程序运行时理论上所占的数组空间
C.程序运行时理论上所占的硬盘空间
D.程序源文件理论上所占的硬盘空间

7.应用快速排序的分治思想,可以实现一个求第K大数的程序。假定不考虑极端的最坏情况,理论上可以实现的最低的算法时间复杂度为( )。
A.O (n2) B.O (n log n ) C.O (n) D. O (1)

8.为解决web应用中的不兼容问题,保障信息的顺利流通,( )制定了一系列标准,涉及HTML、XML、CSS等,并建议开发者遵循。
A.微软 B.美国计算机协会(ACM) C.联合国教科文组织 D.万维网联盟(W3C)

9.体育课的铃声响了,同学们都陆续的奔向操场,按老师的要求从高到低站成一排。每个同学按顺序来到操场时,都从排尾走到排头,找到第一个比自己高的同学,并站在他的后面。这种站队的方法类似于( )算法。
A.快速排序 B.插入排序 C.冒泡排序 D.归并排序
10.1956年( )授予肖克利(William Shockley)、巴丁(John Bardeen)和布拉顿(Walter Brattain)
A.诺贝尔物理学奖 B.约翰•冯•诺依曼奖
C.图灵奖 D.高德纳奖 (Donald E. Knuth Prize)

二、不定项选择题 (共10题,每题1.5分,共计15分。每题正确答案的个数不少于1。多选或少选均不得分)。

1.如果根结点的深度记为1,则一棵恰有2011个叶子结点的二叉树的深度可能是( )。
A.10 B.11 C.12 D.2011

2.在布尔逻辑中,逻辑“或”的性质有( )。
A.交换律:PVQ = QVP
B.结合律:PV(QVR)=(PVQ)VR
C.幂等律:PVP = P
D.有界律:PV1 = 1(1表示逻辑真)
3.一个正整数在十六进制下有100位,则它在二进制下可能有( )位。
A.399 B.400 C.401 D.404

4.汇编语言( )。
A.是一种与具体硬件无关的程序设计语言
B.在编写复杂程序时,相对于高级语言而言代码量大,且不易调试
C.可以直接访问寄存器、内存单元、I/O端口
D.随着高级语言的诞生,如今已被完全淘汰,不再使用

5.现有一段文言文,要通过二进制哈夫曼编码进行压缩。简单起见,假设这段文言文只由4个汉字“之”、“乎”、“者”、“也”组成,它们出现的次数分别为700、600、300、400。那么,“也”字的编码长度可能是( )。
A.1 B.2 C.3 D.4

6.生物特征识别,是利用人体本身的生物特征进行身份认证的一种技术。目前,指纹识别、虹膜识别、人脸识别等技术已广泛应用于政府、银行、安全防卫等领域。以下属于生物特征识别技术及其应用的是( )。

A.指静脉验证 B.步态验证 C.ATM机密码验证 D.声音验证

7.对于序列“7、5、1、9、3、6、8、4”,在不改变顺序的情况下,去掉( )会使逆序对的个数减少3。
A.7 B.5 C.3 D.6

8.计算机中的数值信息分为整数和实数(浮点数)。实数之所以能够表示很大或者很小的数,是由于使用了( )。
A.阶码 B.补码 C.反码 D.较长的尾数

9.对右图使用Dijkstra算法计算S点到其余各点的最短路径长度时,到B点的距离d[B]初始时赋为8,在算法的执行过程中还会出现的值有( )。
A.3 B. 7 C.6 D.5

10.为计算机网络中进行数据交换而建立的规则、标准或约定的集合称为网络协议。下列英文缩写中,( )是网络协议
A.HTTP B.TCP/IP C.FTP D.WWW
三.问题求解(共2题,每空5分,共计10分)

1.平面图可以在画在平面上,且它的边仅在顶点上才能相交的简单无向图。4个顶点的平面图至少有6条边,如右图所示。那么,5个顶点的平面图至少有 条边。

2.定义一种字符串操作,一次可以将其中一个元素移到任意位置。举例说明,对于字符串“BCA”可以将A移到B之前,变字符串“ABC”。如果要将字符串“DACHEBGIF”变成“ABCDEFGHI”最少需要________次操作。

四.阅读程序写结果(共4题,每题8分,共计32分)

1.
#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]++;
}
i=0;
sum=0;
while(sum<(n/2+1)){
i++;
sum+=a[i];
}
cout<<i<<endl;
return 0;
}

输入:
11
4 5 6 6 4 3 3 2 3 2 1
输出:

2.
#include<iostream>
using namespace std;

int n;

void f2(int x,int y);

void f1(int x,int y)
{
if(x<n)
f2(y,x+y);
}

void f2(int x,int y)
{
cout<<x<<' ';
f1(y,x+y);
}

int main()
{
cin>>n;
f1(0,1);
return 0;

return 0;
}

输入:30
输出:_______________

3.
#include<iostream>
using namespace std;

const int V=100;

int n,m,ans,e[V][V];
bool visited[V];

void dfs(int x,int len)
{
int i;
visited[x]= true;
if(len>ans)
ans=len;
for(i=1;i<=n;i++)
if( (!visited[i]) && (e[x][i]!=-1) )
dfs(i,len+e[x][i]);
visited[x]=false;
}

int main()
{
int i,j,a,b,c;
cin>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
e[i][j]=-1;
for(i=1;i<=m;i++)
{
cin>>a>>b>>c;
e[a][b]=c;
e[b][a]=c;
}
for(i=1;i<=n;i++)
visited[i]=false;
ans=0;
for(i=1;i<=n;i++)
dfs(i,0);
cout<<ans<<endl;

return 0;
}

输入:
4 6
1 2 10
2 3 20
3 4 30
4 1 40
1 3 50
2 4 60
输出:______________

4.
#include<iostream>
#include<cstring>
#include<string>
using namespace std;

const int SIZE=10000;
const int LENGTH=10;

int n,m,a[SIZE][LENGTH];

int h(int u,int v)
{
int ans,i;
ans=0;
for(i=1;i<=n;i++)
if( a[u][i]!=a[v][i])
ans++;
return ans;
}

int main()
{
int sum,i,j;
cin>>n;
memset(a,0,sizeof(a));
m=1;
while(1)
{
i=1;
while( (i<=n) && (a[m][i]==1) )
i++;
if(i>n)
break;
m++;
a[m][i]=1;
for(j=i+1;j<=n;j++)
a[m][j]=a[m-1][j];
}

sum=0;
for(i=1;i<=m;i++)
for(j=1;j<=m;j++)
sum+=h(i,j);
cout<<sum<<endl;
return 0;
}

输入:7
输出:_________

五.完善程序 (第1题,每空2分,第2题,每空3分,共28分)

1.(大整数开方) 输入一个正整数n(1≤n≤10100),试用二分法计算它的平方根的整数部分。
#include<iostream>
#include<string>
using namespace std;

const int SIZE=200;
struct hugeint{
int len,num[SIZE];
};
//其中len表示大整数的位数;num[1]表示个位,num[2]表示十位,以此类推

hugeint times(hugeint a,hugeint b)
// 计算大整数a和b的乘积
{
int i,j;
hugeint ans;
memset(ans.num,0,sizeof(ans.num));
for(i=1;i<=a.len;i++)
for(j=1;j<=b.len;j++)
① +=a.num[i]*b.num[j];
for(i=1;i<=a.len+b.len;i++){
ans.num[i+1]+=ans.num[i]/10;
② ;
}
if(ans.num[a.len+b.len]>0)
ans.len=a.len+b.len;
else
ans.len=a.len+b.len-1;
return ans;
}

hugeint add(hugeint a,hugeint b)
//计算大整数a和b 的和
{
int i;
hugeint ans;
memset(ans.num,0,sizeof(ans.num));
if(a.len>b.len)
ans.len=a.len;
else
ans.len=b.len;
for(i=1;i<=ans.len;i++){
ans.num[i]+= ③ ;
ans.num[i+1]+= ans.num[i]/10;
ans.num[i]%=10;
}
if(ans.num[ans.len+1]>0)
ans.len++;
return ans;
}

hugeint average(hugeint a,hugeint b)
//计算大整数a和b的平均数的整数部分
{
int i;
hugeint ans;
ans=add(a,b);
for(i=ans.len;i>=2;i--){
ans.num[i-1]+=( ④ )*10;

ans.num[i]/=2;
}
ans.num[1]/=2;
if(ans.num[ans.len]==0)
ans.len--;
return ans;
}

hugeint plustwo(hugeint a)
// 计算大整数a加2之后的结果
{
int i;
hugeint ans;
ans=a;
ans.num[1]+=2;
i=1;
while( (i<=ans.len)&&(ans.num[i]>=10) ){
ans.num[i+1]+=ans.num[i]/10;
ans.num[i]%=10;
i++;
}
if(ans.num[ans.len+1]>0)
⑤ ;
return ans;
}

bool over(hugeint a,hugeint b)
// 若大整数a>b则返回true,否则返回false
{
int i;
if( ⑥ )
return false;
if( a.len>b.len )
return true;
for(i=a.len;i>=1;i--){
if(a.num[i]<b.num[i])
return false;
if(a.num[i]>b.num[i])
return true;
}
return false;
}

int main()
{
string s;
int i;
hugeint target,left,middle,right;
cin>>s;
memset(target.num,0,sizeof(target.num));
target.len=s.length();
for(i=1;i<=target.len;i++)
target.num[i]=s[target.len-i]- ⑦ ;
memset(left.num,0,sizeof(left.num));
left.len=1;
left.num[1]=1;
right=target;
do{
middle=average(left,right);
if(over( ⑧ ))
right=middle;
else
left=middle;
}while(!over(plustwo(left),right) );
for(i=left.len;i>=1;i--)
cout<<left.num[i];
return 0;
}

2. (笛卡尔树)对于一个给定的两两不等的正整数序列,笛卡尔树是这样的一棵二叉树:首先,它是一个最小堆,即除了根结点,每个节点的权值都大雨父节点的权值;其次,它的中序遍历恰好就是给定的序列。例如,对于序列7、2、12、1、10、5、15、3,下图就是一棵对应的笛卡尔树。现输入序列的规模n(1≤n<100)和序列的n个元素,试求其对应的笛卡尔树的深度d(根节点深度为1),以及有多少个叶子节点的深度为d。

#include<iostream>

using namespace std;

const int SIZE=100+5;
const int INFINITY=1000000;
int n,a[SIZE],maxDeep,num;

void solve(int left,int right,int deep)
{
int i,j,min;

if(deep>maxDeep){
maxDeep=deep;
num=1;
}
else if(deep==maxDeep)
① ;

min= INFINITY;
for(i=left;i<=right;i++)
if(min>a[i]){
min=a[i];
② ;
}
if(left<j)
③ ;
if(j<right)
④ ;
}

int main()
{
int i;
cin>>n;
for(i=1;i<=n;i++)
cin>>a[i];
maxDeep=0;
solve(1,n,1);
cout<<maxDeep<<' '<<num<<endl;
return 0;
}

NOIP2011年提高组(C++语言)参考答案与评分标准

一、单项选择题:(每题1.5分)
1. B 2. B 3. A 4. D 5. B
6. A 7. C 8. D 9. B 10. A
二、 不定项选择题 (共10题,每题1.5分,共计15分。每题正确答案的个数大于或等于1。多选或少选均不得分)。
1. CD 2. ABCD 3. AB 4. BC 5. BC
6. ABD 7. CD 8. A 9. BCD 10. ABC

三、问题求解:(共2题,每空5分,共计10分)
1.9
2.4
四、阅读程序写结果(共4题,每题8分,共计32分)
1.3
2.1 2 5 13 34
3.150
4.57344
五、完善程序(第1题,每空2分,第2题,每空3分,共计28分)

(说明:以下各程序填空可能还有一些等价的写法,各省可请本省专家审定和上机验证,不一定上报科学委员会审查)

1.
① ans.num[i + j - 1]
② ans.num[i] = ans.num[i] mod 10
③ a.num[i] + b.num[i]
④ ans.num[i] % 2 (或 ans.num[i] & 1)
⑤ ans.len++ (或 ans.len = ans.len + 1)
⑥ a.len < b.len
⑦ '0'(或48)
⑧ times(middle, middle), target

2.
① num++ (或 num = num + 1)
② j = i
③ solve(left, j - 1, deep + 1)
④ solve(j + 1, right, deep + 1)

2011-10-20 07:19 风尘雨痕 | 三级
第十七届全国青少年信息学奥林匹克联赛初赛试题
( 提高组 C++语言 两小时完成 )
● ● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 ●●

一、单项选择题 (共10题,每题1.5分,共计15分。每题有且仅有一个正确选项。)

1.在二进制下,1011001 + ( )= 1100110。
A.1011 B .1101 C.1010 D.1111

2.字符“A”的ASCII码为十六进制41,则字符“Z”的ASCII码为十六进制的( )。
A.66 B.5A C.50 D.视具体的计算机而定

3.右图是一棵二叉树,它的先序遍历是( )。
A.ABDEFC B.DBEFAC C.DFEBCA D.ABCDEF

4.寄存器是( )的重要组成部分。
A.硬盘 B.高速缓存 C.内存 D.中央处理器(CPU)

5.广度优先搜索时,需要用到的数据结构是( )。
A.链表 B.队列 C.栈 D.散列表

6.在使用高级语言编写程序时,一般提到的“空间复杂度”中的空间是指( )。
A.程序运行时理论上所占的内存空间
B.程序运行时理论上所占的数组空间
C.程序运行时理论上所占的硬盘空间
D.程序源文件理论上所占的硬盘空间

7.应用快速排序的分治思想,可以实现一个求第K大数的程序。假定不考虑极端的最坏情况,理论上可以实现的最低的算法时间复杂度为( )。
A.O (n2) B.O (n log n ) C.O (n) D. O (1)

8.为解决web应用中的不兼容问题,保障信息的顺利流通,( )制定了一系列标准,涉及HTML、XML、CSS等,并建议开发者遵循。
A.微软 B.美国计算机协会(ACM) C.联合国教科文组织 D.万维网联盟(W3C)

9.体育课的铃声响了,同学们都陆续的奔向操场,按老师的要求从高到低站成一排。每个同学按顺序来到操场时,都从排尾走到排头,找到第一个比自己高的同学,并站在他的后面。这种站队的方法类似于( )算法。
A.快速排序 B.插入排序 C.冒泡排序 D.归并排序
10.1956年( )授予肖克利(William Shockley)、巴丁(John Bardeen)和布拉顿(Walter Brattain)
A.诺贝尔物理学奖 B.约翰•冯•诺依曼奖
C.图灵奖 D.高德纳奖 (Donald E. Knuth Prize)

二、不定项选择题 (共10题,每题1.5分,共计15分。每题正确答案的个数不少于1。多选或少选均不得分)。

1.如果根结点的深度记为1,则一棵恰有2011个叶子结点的二叉树的深度可能是( )。
A.10 B.11 C.12 D.2011

2.在布尔逻辑中,逻辑“或”的性质有( )。
A.交换律:PVQ = QVP
B.结合律:PV(QVR)=(PVQ)VR
C.幂等律:PVP = P
D.有界律:PV1 = 1(1表示逻辑真)
3.一个正整数在十六进制下有100位,则它在二进制下可能有( )位。
A.399 B.400 C.401 D.404

4.汇编语言( )。
A.是一种与具体硬件无关的程序设计语言
B.在编写复杂程序时,相对于高级语言而言代码量大,且不易调试
C.可以直接访问寄存器、内存单元、I/O端口
D.随着高级语言的诞生,如今已被完全淘汰,不再使用

5.现有一段文言文,要通过二进制哈夫曼编码进行压缩。简单起见,假设这段文言文只由4个汉字“之”、“乎”、“者”、“也”组成,它们出现的次数分别为700、600、300、400。那么,“也”字的编码长度可能是( )。
A.1 B.2 C.3 D.4

6.生物特征识别,是利用人体本身的生物特征进行身份认证的一种技术。目前,指纹识别、虹膜识别、人脸识别等技术已广泛应用于政府、银行、安全防卫等领域。以下属于生物特征识别技术及其应用的是( )。

A.指静脉验证 B.步态验证 C.ATM机密码验证 D.声音验证

7.对于序列“7、5、1、9、3、6、8、4”,在不改变顺序的情况下,去掉( )会使逆序对的个数减少3。
A.7 B.5 C.3 D.6

8.计算机中的数值信息分为整数和实数(浮点数)。实数之所以能够表示很大或者很小的数,是由于使用了( )。
A.阶码 B.补码 C.反码 D.较长的尾数

9.对右图使用Dijkstra算法计算S点到其余各点的最短路径长度时,到B点的距离d[B]初始时赋为8,在算法的执行过程中还会出现的值有( )。
A.3 B. 7 C.6 D.5

10.为计算机网络中进行数据交换而建立的规则、标准或约定的集合称为网络协议。下列英文缩写中,( )是网络协议
A.HTTP B.TCP/IP C.FTP D.WWW
三.问题求解(共2题,每空5分,共计10分)

1.平面图可以在画在平面上,且它的边仅在顶点上才能相交的简单无向图。4个顶点的平面图至少有6条边,如右图所示。那么,5个顶点的平面图至少有 条边。

2.定义一种字符串操作,一次可以将其中一个元素移到任意位置。举例说明,对于字符串“BCA”可以将A移到B之前,变字符串“ABC”。如果要将字符串“DACHEBGIF”变成“ABCDEFGHI”最少需要________次操作。

四.阅读程序写结果(共4题,每题8分,共计32分)

1.
#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]++;
}
i=0;
sum=0;
while(sum<(n/2+1)){
i++;
sum+=a[i];
}
cout<<i<<endl;
return 0;
}

输入:
11
4 5 6 6 4 3 3 2 3 2 1
输出:

2.
#include<iostream>
using namespace std;

int n;

void f2(int x,int y);

void f1(int x,int y)
{
if(x<n)
f2(y,x+y);
}

void f2(int x,int y)
{
cout<<x<<' ';
f1(y,x+y);
}

int main()
{
cin>>n;
f1(0,1);
return 0;

return 0;
}

输入:30
输出:_______________

3.
#include<iostream>
using namespace std;

const int V=100;

int n,m,ans,e[V][V];
bool visited[V];

void dfs(int x,int len)
{
int i;
visited[x]= true;
if(len>ans)
ans=len;
for(i=1;i<=n;i++)
if( (!visited[i]) && (e[x][i]!=-1) )
dfs(i,len+e[x][i]);
visited[x]=false;
}

int main()
{
int i,j,a,b,c;
cin>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
e[i][j]=-1;
for(i=1;i<=m;i++)
{
cin>>a>>b>>c;
e[a][b]=c;
e[b][a]=c;
}
for(i=1;i<=n;i++)
visited[i]=false;
ans=0;
for(i=1;i<=n;i++)
dfs(i,0);
cout<<ans<<endl;

return 0;
}

输入:
4 6
1 2 10
2 3 20
3 4 30
4 1 40
1 3 50
2 4 60
输出:______________

4.
#include<iostream>
#include<cstring>
#include<string>
using namespace std;

const int SIZE=10000;
const int LENGTH=10;

int n,m,a[SIZE][LENGTH];

int h(int u,int v)
{
int ans,i;
ans=0;
for(i=1;i<=n;i++)
if( a[u][i]!=a[v][i])
ans++;
return ans;
}

int main()
{
int sum,i,j;
cin>>n;
memset(a,0,sizeof(a));
m=1;
while(1)
{
i=1;
while( (i<=n) && (a[m][i]==1) )
i++;
if(i>n)
break;
m++;
a[m][i]=1;
for(j=i+1;j<=n;j++)
a[m][j]=a[m-1][j];
}

sum=0;
for(i=1;i<=m;i++)
for(j=1;j<=m;j++)
sum+=h(i,j);
cout<<sum<<endl;
return 0;
}

输入:7
输出:_________

五.完善程序 (第1题,每空2分,第2题,每空3分,共28分)

1.(大整数开方) 输入一个正整数n(1≤n≤10100),试用二分法计算它的平方根的整数部分。
#include<iostream>
#include<string>
using namespace std;

const int SIZE=200;
struct hugeint{
int len,num[SIZE];
};
//其中len表示大整数的位数;num[1]表示个位,num[2]表示十位,以此类推

hugeint times(hugeint a,hugeint b)
// 计算大整数a和b的乘积
{
int i,j;
hugeint ans;
memset(ans.num,0,sizeof(ans.num));
for(i=1;i<=a.len;i++)
for(j=1;j<=b.len;j++)
① +=a.num[i]*b.num[j];
for(i=1;i<=a.len+b.len;i++){
ans.num[i+1]+=ans.num[i]/10;
② ;
}
if(ans.num[a.len+b.len]>0)
ans.len=a.len+b.len;
else
ans.len=a.len+b.len-1;
return ans;
}

hugeint add(hugeint a,hugeint b)
//计算大整数a和b 的和
{
int i;
hugeint ans;
memset(ans.num,0,sizeof(ans.num));
if(a.len>b.len)
ans.len=a.len;
else
ans.len=b.len;
for(i=1;i<=ans.len;i++){
ans.num[i]+= ③ ;
ans.num[i+1]+= ans.num[i]/10;
ans.num[i]%=10;
}
if(ans.num[ans.len+1]>0)
ans.len++;
return ans;
}

hugeint average(hugeint a,hugeint b)
//计算大整数a和b的平均数的整数部分
{
int i;
hugeint ans;
ans=add(a,b);
for(i=ans.len;i>=2;i--){
ans.num[i-1]+=( ④ )*10;

ans.num[i]/=2;
}
ans.num[1]/=2;
if(ans.num[ans.len]==0)
ans.len--;
return ans;
}

hugeint plustwo(hugeint a)
// 计算大整数a加2之后的结果
{
int i;
hugeint ans;
ans=a;
ans.num

脚踏实地吧

我只有初赛试题


泉州第七中学的教学成绩
吴琪雯同学荣获美术综合分全省第一名!600分以上高分人数达114人(不含11位保送生)!本一上线402人,上线率49.38%!本二上线659人,上线率80.95%,本三上线率94.96%! 在学科奥赛和科技创新方面突飞猛进,2007年20位同学获一等奖,居全省第三;2008年27位同学获一等奖,...

山东第十五届青少年信息学奥赛联赛初赛答案
一、单项选择题:(每题1.5分)1. D 2. B 3. A 4. A 5. B 6. D 7. C 8. B 9. C 10. D 11. C 12. C 13. B 14. D 15. D 16. B 17. D 18. A 19. C 20. B 二、问题求解:(共2题,每空5分,共计10分)1.70 2.5 三、阅读程序写结果(共4题,每题8...

山师附中、历城二中与济钢高中哪个好?
近年来,学科特长教育取得重大突破,各个学科全面开花。2012年,学校入选数学、物理、化学、生物四学科奥赛省集训队并代表山东省参加全国决赛的学生有5人,是全省入选省队队员最多的高中学校,2人被北京大学保送录取。2013年,数学、物理、化学、生物、信息学五学科奥赛全面开花,17人获省赛区一等奖,10人...

石家庄二中到底好不好?{理由}
学科奥林匹克竞赛省区竞赛(包括全国高中数学联赛、全国青少年信息学奥林匹克联赛、全国中学 生生物学联赛等)中获得一等奖的应届高中毕业生。第四类为高中阶段...化学奥赛国家队,即将参加在俄罗斯举行的第39届国际化学奥林匹克竞赛;陈述同学入选物理奥 赛国家队,参加第八届亚洲中学生物理竞赛并勇夺金牌。10年的磨砺,再...

2014年四川省第十届中小学生优秀艺术人才大赛(达州赛区)获奖者是否可 ...
早在2010年国家层面就传出过奥数加分瘦身的信息,此次省级的实施规定中,首当其冲被删减的加分项目也是奥数。新规中将奥赛“获得省赛区一等奖者加5分”的规定进行了删除。但保留了“应届高级中等教育学校毕业生在高级中等教育阶段参加由中国科协主办的全国中学生学科(数学、物理、化学、生物、信息学,下同)...

五大奥赛是什么?
五大奥赛是:数学、物理、化学、生物和信息学。五大奥赛学科奥林匹克竞赛每年举办一次,由参与竞赛各国的国家级主管教育的部门(通常为教育部)轮流举办。参加竞赛的国家每国派出1-4人不等的中学生组成代表队赴举办国参加比赛,决出金、银、铜牌及其他各种奖项若干。

2008信息学奥赛初赛试题
第十四届全国青少年信息学奥林匹克联赛初赛试题 ( 提高组 Pascal语言 二小时完成 ) ●● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 ●● 一、单项选择题(共10题,每题1.5分,共计15分。每题有且仅有一个正确答案)。 1.在以下各项中,( )不是操作系统软件。 A.Solaris B.Linux C.Sybase D.Win...

谁有2007年第十三届全国信息学奥赛的初赛试题(P)
谁有2007年第十三届全国信息学奥赛的初赛试题(P)急!... 谁有2007年第十三届全国信息学奥赛的初赛试题(P)急! 展开  我来答 2个回答 #热议# 《请回答2021》瓜分百万奖金 wqy_9 2008-10-18 · TA获得超过917个赞 知道答主 回答量:162 采纳率:0% 帮助的人:72.6万 我也去答题访问个人页 ...

2008信息学奥赛初赛答案(山东)?
2008-10-24 2008全国信息学奥赛初赛(普及组)答案 48 2016-06-18 2008年信息学奥赛初赛试题及答案的问题求解 2008-10-19 2008信息学奥赛初赛试题 288 2008-11-04 2008信息学奥赛初赛分数 32 2010-11-12 2008年信息学奥赛复赛答案 1 2019-10-03 山东2019信息编程奥赛初赛 2013-10-06 高中信息学竞赛...

14届全国青少年信息学奥赛初赛
第十四届全国青少年信息学奥林匹克联赛初赛试题 ( 提高组 Pascal语言 二小时完成 )●● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 ●● 一、单项选择题(共10题,每题1.5分,共计15分。每题有且仅有一个正确答案)。1.在以下各项中,( )不是操作系统软件。A.Solaris B...

越城区18313112390: 第17届全国青少年信息学奥林匹克联赛初赛试题答案 普及组 C语言 只要第一大题和第二大题 要标准答案 -
政杭清开: CCF NOIP2011信息学答案及评分标准(普及组) CCF NOIP2011普及组(C语言)参考答案与评分标准 一、单项选择题(共20题,每题1.5分,共计30分)1 2 3 4 5 6 7 8 9 10 B B C C B D C B C C11 12 13 14 15 16 17 18 19 20 B A C C C D A A A C 二、问题求解(共2题,每题5分,共计10分)1.1282.3 三、阅读程序写结果(共4题,每题8分,共计32分)1.1652. 223664720113. 34.20

越城区18313112390: 第十七届全国青少年信息学奥林匹克联赛初赛答案
政杭清开: NOIP2009初赛提高组答案(Pascal版) 一、单项选择题:(每题1.5分)1.C2.A3.D4.B5.D6.B7.B8.A9.A10.C二、不定项选择题(共10题,每题1.5分,共计15分.每题正确答案的个数大于或等于1.多选或少选均不得分).1.AB2.BD 3.BC4.C ...

越城区18313112390: 谁有第十七届全国青少年信息学奥林匹克联赛初赛试题和答案?
政杭清开: CCFNOIP2010普及组(C语言)参考答案与评分标准一、单项选择题(共20题,每题1.5分,共计30分)12345678910DAADADBDCB11121314151617181920DBBBBAADCD二、问题求解(共2题,每题5分,共计10分)1.2-2-1-2-3-1-1-3-4-...

越城区18313112390: 关于公布2019年绍兴市第十七届少儿信息学竞赛获奖名单 -
政杭清开: 答: 2019年绍兴市第十七届少儿信息学竞赛获奖名单,尚未公布 祝心想事成 开心快乐.

越城区18313112390: 高中信息学奥林匹克竞赛考什么? -
政杭清开: 1.C,C++,PASCAL,可以用最新版的. 2,区别没多大,C++要比C难学、 3,你可以学C.因为你会C++,有基础. 4,初赛难度不大,复赛和3级难度差不多 5,专修C的书,还有编程技巧,编程艺术之类的书. 6,万事皆有可能.

越城区18313112390: 第十六届全国青少年信息学奥林匹克联赛初赛 pascal 普及组 答案和试题 -
政杭清开: CCF NOIP2010普及组(Pascal语言)参考答案与评分标准 一、单项选择题(共20题,每题1.5分,共计30分)1 2 3 4 5 6 7 8 9 10 D A A D A D B D C B11 12 13 14 15 16 17 18 19 20 D B B B B A A D C D 二、问题求解(共2题,每题5分,共...

越城区18313112390: 第十五届全国青少年信息学奥林匹克联赛初赛试题及答案 -
政杭清开: NOIP2009初赛普及组(C语言、PASCAL语言)参考答案与评分标准 一、单项选择题:(每题1.5分) 1. D 2. B 3. A 4. A 5. B6. D 7. C 8. B 9. C 10. D11. C 12. C 13. B 14. D 15. D 16. B 17. D 18. A 19. C 20. B 二、问题求解:(共2题,每空5分...

越城区18313112390: 我想参加全国青少年信息学奥林匹克竞赛,该从哪学起? -
政杭清开: 高二学生有老师教五个月足矣,没老师教看以下两本书八个月可矣. 全国青少年信息学奥林匹克联赛培训教材(中学初级本) 全国青少年信息学奥林匹克联赛培训教材(中学高级本) ----南京大学出版社 祝你成功!

越城区18313112390: 27届合肥市信息学竞赛试题和答案 -
政杭清开: 一、单项选择题(共20题,每题1.5分,共计30分) 16.51 2 3 4 5 6 7 8 9 10 D A A D A D B D C B11 12 13 14 15 16 17 18 19 20 D B B B B A A D C D 二、问题求解(共2题,每题5分,共计10分) 51.2-2-1-2-3-1-1-3-4-3-1-2-1-3-5-3-6(或...

越城区18313112390: 简单的数学题 必采纳(1+3)*(1+3平方)*(1+3四次方)*(1+3八次方)*(1+3十六次 -
政杭清开: (1+3)*(1+3平方)*(1+3四次方)*(1+3八次方)*(1+3十六次) =(1+3)*(1+3平方)*(1+3四次方)*(1+3八次方)*(1+3十六次)*(1-3)/(1-3) =(1-3平方)*(1+3平方)*(1+3四次方)*(1+3八次方)*(1+3十六次)/(1-3) =(1-3四次方)*(1+3四次方)*(1+3八次方)*(1+3十六次)/(1-3) =(1-3八次方)*(1+3八次方)*(1+3十六次)/(1-3) =(1-3十六次)*(1+3十六次)/(1-3) =(1-3三十二次)/(1-3) =-1/2*(1-3三十二次)

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网