关键词:
北京中关村;海淀黄庄;北京大学;清华大学。少儿编程;中小学编程;信息学竞赛;计算机竞赛;NOIP;NOIP竞赛;CSP-J/S竞赛;NOI竞赛。北京中学;东坝。
2017年、普及组、复赛,第23届。
面向6-18岁中小学生,做最专业的中小学编程教育。
解析与答案:
A、试题类型:
精度问题。
B、算法模型:
强制类型转换。
C、试题说明:
用double 或者是 float 实数类型的时候,赋值时会有一定的区别。
比如说:
double a=0.2;
这个时候,计算机会将其储存为:
a=0.1999999 或者是 a=0.2000001
用5*a 的时候,有可能输出0(当答案<1时直接储存为0),也有可能输出1,这是一大坑。
避免这种情况,可采用强制类型转换,可直接进行除法运算,即可解决。
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
double a,b,c;
cin>>a>>b>>c;
double res=a*0.2+b*0.3+c*0.5;
long ans=(long) res; //强制将double类型数res转化为长整数ans。
cout<<ans; //输出
return 0;
}
A、试题类型:
送分问题
B、算法模型:
简单应用
C、试题说明:
一些细节,k层循环一定要写在外面,要不然会重复累乘造成错误。
if else千万不要压行。
每次匹配b数组和cnt要置零,temp要置成一。
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int a[1001];
int b[1001];
int ans[1001];
int n,q,cnt,temp;
bool cmpe(int a,int b)
{
return a<b;
}
int main()
{
scanf("%d%d",&n,&q);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=q;i++)
{
cnt=0;
temp=1;
memset(b,0,sizeof(b));
int x,code;
scanf("%d%d",&x,&code);
for(int k=1;k<=x;k++)
temp*=10;
for(int j=1;j<=n;j++)
{
int cmp=a[j]%temp;
if(cmp==code)
b[++cnt]=a[j];
}
if(cnt==0)
ans[i]=-1;
else
{
sort(b+1,b+cnt+1,cmpe);
ans[i]=b[1];
}
}
for(int i=1;i<=q;i++)
printf("%d\n",ans[i]);
return 0;
}
A、试题类型:
空间问题。
B、算法模型:
暴搜加剪枝。
C、试题说明:
无。
#include<iostream>
#include<cstring>
const int N=100,wa[][2]= {{0,1},{1,0},{-1,0},{0,-1}};
int n,num,x,y,col,bol;
int ma[N+5][N+5],fg[N+5][N+5];
bool can;
inline int readint()
{
int x=0;
char c=getchar();
while(c<'0'||c>'9') c=getchar();
while(c>='0'&&c<='9')
{
x=x*10+c-'0';
c=getchar();
}
return x;
}
inline void DFS(int nx,int ny,int t,bool f)
{
if(fg[nx][ny]!=-1&&t>=fg[nx][ny])
return ;
fg[nx][ny]=t;
if(nx==n&&ny==n)
return;
int x1,y1;
for(int i=0; i<4; i++)
{
x1=nx+wa[i][0];
y1=ny+wa[i][1];
if(x1<1||x1>n||y1<1||y1>n)
continue;
if(ma[x1][y1]!=-1)
{
bol=(ma[x1][y1]!=ma[nx][ny]);
DFS(x1,y1,t+bol,0);
}
if(ma[x1][y1]==-1&&!f)
{
ma[x1][y1]=ma[nx][ny];
DFS(x1,y1,t+2,1);
ma[x1][y1]=-1;
}
}
}
int main()
{
n=readint();
num=readint();
memset(ma,-1,sizeof(ma));
memset(fg,-1,sizeof(fg));
for(int i=1; i<=num; i++)
{
x=readint();
y=readint();
col=readint();
ma[x][y]=col;
}
DFS(1,1,0,0);
cout << fg[n][n];
return 0;
}
A、试题类型:
基本数据结构。
B、算法模型:
单调队列优化dp。
C、试题说明:
花费满足单调性,可以考虑二分。
#include <cstdio>
#include <queue>
#include <cstring>
using namespace std;
typedef long long ll;
const int N=500010;
int n,m,s,l,r=N,mid,a[N],dis[N],tot;
ll f[N],maxn;
bool dp(int k)
{
int L=m-k,R=m+k;
memset(f,0xcf,sizeof(f));
f[0]=0;
deque<int> q;
tot=0;
maxn=-1e16;
for (int i=1;i<=n;i++)
{
while (q.size()&&dis[i]-dis[q.front()]>R)
q.pop_front(); //保证队列中的点一定可以调到现在枚举的点
while (dis[i]-dis[tot]>R&&i>tot)
tot++;
while (dis[i]-dis[tot]>=L&&i>tot) //保证单调
{
while (q.size()&&f[q.back()]<f[tot])
q.pop_back();
q.push_back(tot);
tot++;
}
if (q.size())
f[i]=f[q.front()]+(ll)a[i]; //转移
if (f[i]>maxn)
maxn=f[i];
}
return maxn>=(ll)s;
}
int main()
{
scanf("%d%d%d",&n,&m,&s);
for (int i=1;i<=n;i++)
scanf("%d%d",&dis[i],&a[i]);
while (l<=r)
{
mid=(l+r)/2;
if (dp(mid))
r=mid-1;
else
l=mid+1;
}
if (l>500000)
printf("-1");
else
printf("%d",r+1);
return 0;
}
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、微信公众号:
添加微信,获取资料。
关注公众号,获取动态。