关键词:
北京中关村;海淀黄庄;北京大学;清华大学。少儿编程;中小学编程;信息学竞赛;计算机竞赛;NOIP;NOIP竞赛;CSP-J/S竞赛;NOI竞赛。北京中学;东坝。
2011年、普及组、复赛,第17届。
面向6-18岁中小学生,做最专业的中小学编程教育。
解析与答案:
A、试题类型:
送分题。
B、算法模型:
基本数字。
C、试题说明:
无。
#include<bits/stdc++.h>
using namespace std;
long long int ff(int x)
{
int s=0;
while(x>0)
{
s=s*10+x%10;
x=x/10;
}
return s;
}
int main()
{
int n;
cin>>n;
if(n>=0)
cout<<ff(n);
else
cout<<-ff(abs(n));
}
A、试题类型:
统计问题。
B、算法模型:
基本计算。
C、试题说明:
无。
#include <cstdio>
#include <cstring>
int main()
{
char a[1100], b[1000001];
while(gets(a)!=NULL)
{
gets(b);
strcat(a," ");
strcat(b," ");
int i, s, n=0, j, ss=0, k,rec;
for (i = 0; a[i] != '\0'; i++)
{
if (a[i] >= 'a')
a[i] -= 'a' - 'A';
}
for (i = 0; b[i] != '\0'; i++)
{
if (b[i] >= 'a')
b[i] -= 'a' - 'A';
}
for (i = 0; b[i] != '\0'; i++)
{
if (b[i] == ' ')
{
s=1;
for (j = n,k = 0; j <= i, a[k] != '\0'; j++, k++)
{
if(b[j] == a[k])
s*=1;
else
s*=0;
}
if (s == 1)
ss++;
if (ss == 1 && s==1)
rec = n;
n=i;
n++;
}
}
if (ss == 0)
{
ss = -1;
printf("%d\n", ss);
}
else if (ss >0)
printf("%d %d\n", ss, rec);
}
return 0;
}
A、试题类型:
STL算法。
B、算法模型:
sort。
C、试题说明:
归并排序的合并。
#include <cstdio>
#include <algorithm>
const int N=100010;
struct node
{
int num,score,w;
bool friend operator <(node n1,node n2)
{
if(n1.score==n2.score) return n1.num<n2.num;
return n1.score>n2.score;
}
bool friend operator >(node n1,node n2)
{
if(n1.score==n2.score) return n1.num<n2.num;
return n1.score>n2.score;
}
}a[N<<1],b[N<<1];
int n,r,q;
void merge()
{
int l1=1,l2=(n>>1)+1,cnt=0;
while(l1<=(n>>1)&&l2<=n)
{
if(b[l2]>b[l1])
a[++cnt]=b[l2++];
else
a[++cnt]=b[l1++];
}
while(l1<=(n>>1))
a[++cnt]=b[l1++];
while(l2<=n)
a[++cnt]=b[l2++];
}
int main()
{
scanf("%d%d%d",&n,&r,&q);
n<<=1;
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i].score);
a[i].num=i;
}
for(int i=1;i<=n;i++)
scanf("%d",&a[i].w);
for(int i=1;i<=r;i++)
{
if(i==1) std::sort(a+1,a+1+n);
else merge();
int cnt1=0,cnt2=n>>1;
for(int j=1;j<=n;j+=2)
{
if(a[j].w>a[j+1].w)
a[j].score++,b[++cnt1]=a[j],b[++cnt2]=a[j+1];
else
a[j+1].score++,b[++cnt2]=a[j],b[++cnt1]=a[j+1];
}
}
merge();
printf("%d\n",a[q].num);
return 0;
}
A、试题类型:
表达式问题。
B、算法模型:
树问题。
C、试题说明:
一、 首先粗略地说一下表达式计算的方法: 需要使用两个栈,一个存放结果,另一个存放符号。每次读入一个数据,就进入结果栈,如果是符号,则按以下方法:
1、 如果是左括号,就直接进栈;
2、 如果是右括号,就一直弹栈并加以计算,直到弹到左括号;
3、 如果是运算符,则弹栈,直到这个运算符的优先级大于符号栈栈顶的符号的优先级 或是左括号或栈空,然后将运算符进栈; 最后再将栈中残余的符号和结果一直弹到只剩一个结果,这个就是最后的结果。
二、 此题算法的框架整体上是和表达式计算相同的,有以下几个方面不同:
1、 需要添加数字的地方应该满足不在右括号的后面或者左括号的前面。
2、 优先级:“*”的优先级比“+”高。
3、运算方法,每一步计算为0或1的方法数:设两个步骤的运算结果经过每个符号到一个结果时,第一个运算结果算出0的方案数为t1,1的方案数为t2,第二个算出0的方案数为t3,算出1的方案数为t4,则有: 当符号是“⊕”时,得到0的方案数为t1*t3,1的方案数:t1*t4+t2*t3+t2*t4 当符号是“×”时,得到0的方案数为t1*t3+t1*t4+t2*t3,1的方案数:t2*t4 用一个栈记录下来即可。
#include<stdio.h>
const int M=10007,N=100005;
int n,i,u[N],v[N],top,k;
char c[N],sta[N],ans[2*N];
int main()
{
//freopen("exp.in","r",stdin);
//freopen("exp.out","w",stdout);
scanf("%d\n%s",&n,c);
ans[++k]='.';
for(i=0;c[i];i++)
{
if(c[i]=='('||c[i]=='*')
sta[++top]=c[i];
if(c[i]=='+')
{
while(sta[top]=='*')
ans[++k]=sta[top--];
sta[++top]=c[i];
}
if(c[i]==')')
{
while(sta[top]!='(')
ans[++k]=sta[top--];
top--;
}
if(c[i]!='('&&c[i]!=')')
ans[++k]='.';
}
while(top>0)
ans[++k]=sta[top--];
for(i=1;i<=k;i++)
{
if(ans[i]=='.')
{
u[++top]=1;
v[top]=1;
}
if(ans[i]=='*')
{
top--;
u[top]=(u[top+1]*v[top]+u[top]*v[top+1]+u[top]*u[top+1])%M;
v[top]=v[top]*v[top+1]%M;
}
if(ans[i]=='+')
{
top--;
v[top]=(u[top+1]*v[top]+u[top]*v[top+1]+v[top]*v[top+1])%M;
u[top]=u[top]*u[top+1]%M;
}
}
printf("%d",u[1]);
}
IT航班提供:课程视频、、课程书籍、竞赛辅导、少儿编程指导、课程采购、加盟、少儿编程资料、少儿编程课程、保送生、特长生、加分、中小学计算机教育、中小学信息学、竞赛、中小学信息学课程、人工智能、中小学编程加盟、少儿编程加盟、品牌加盟、技术加盟、技术指导、课程加盟、师资培训、中小学编程教辅资料、中小学编程教师培训、少儿编程教学书籍、少儿编程视频、教学书籍、教师培训、教学视频、CSP-J/S、中小学信息学课程服务、竞赛指导、课程提供、国内外计算机中小学计算机竞赛、信息学竞赛、信息学课程提供商、信息学奥林匹克。
IT航班支持----中小学编程比赛汇总:
第一部分:国内比赛(IT航班支持)
1、软件能力认证(CSP-JS)
2、全国青少年信息学奥林匹克联赛(NOIP)
3、全国青少年信息学奥林匹克竞赛(NOI)
4、中国青少年………………………
5、………………………创新挑战赛
6、全国青少年………………………
7、………………………
8、 恩欧希教育信息化发明创新奖
9、世界机器人大赛(WRC)
10、………………………大赛
11、少………………………智能教育成果展示大赛
12、“明天小小科学家”奖励活动
13、………………………
14、………………………
15、国际信息学………………………
16、………………………
第二部分:国际比赛(IT航班支持)
17、………………………
18、国际………………………
19、………………………
20、美国信息学………………………
21、加拿大………………………
22、官方邀请赛 (CCO)
23、国际计算思维………………………
24、美国计算机………………………
25、澳大利亚………………………
第三部分:企业比赛(IT航班支持)
26、微软MTA
27、………………………挑战赛
28、………………………科学奖
29、………………………学奖
30、………………………创新挑战赛
31、………………………挑战赛
32、………………………芯计算机表演赛
33、………………………大赛
第四部分:Scratch相关竞赛(IT航班支持)
34、全国中小学生电脑制作大赛
35、………………………
36、………………………
37、………………………
第五部分:其它(IT航班支持)
38、NOI夏令营
39、NOI冬令营(NOIWC)
40、全国青少年………………………
41、国际青少年………………………
联系方式:
A、官方网址:
B、微信公众号:
添加微信,获取资料。
关注公众号,获取动态。