【2022】合肥市市赛冲刺【小学组】

16 篇文章 0 订阅

历年市赛分析

历年小学组市赛题单

分析

合肥市

蜀山区

知识点整理

模版题

1.顺序结构

点积运算(dot) - TopsCoding

2.分支结构

体质指数(bmi) - TopsCoding

木板面积(area) - TopsCoding

3.循环结构

三角形(triangle) - TopsCoding

短信计费(message) - TopsCoding

4.一维数组

成绩统计(score) - TopsCoding

5.数组标记和桶排序

成绩统计(score) - TopsCoding

6.字符串

字符串(str) - TopsCoding

7.函数、素数

回文数和素数(amount) - TopsCoding

8.模拟

出队游戏(queue) - TopsCoding

银行排队(bank) - TopsCoding

9.贪心

最小等待时间(waiting) - TopsCoding

乘船过河(ship) - TopsCoding

10.搜索

集合元素排列 - TopsCoding

迷宫问题 - TopsCoding

细胞 - TopsCoding

11.动规

体验积分值(point) - TopsCoding

最多奖励(win) - TopsCoding

12.二分

查找m个数字 - TopsCoding

载重(load) - TopsCoding

13.其他

二维数组

靶心数 - TopsCoding

高精度

A+B Problem(高精度加法) - TopsCoding

A-B Problem(高精度减法) - TopsCoding

A*B Problem(高精度乘法) - TopsCoding

连续性

最大连续组长度(long) - TopsCoding

前缀和

前缀和 - TopsCoding

递推

核电站 - TopsCoding

#include<bits/stdc++.h>
using namespace std;

// f[n] = f[n-1] + f[n-2] + …… + f[n-m]

long long n, m, f[55];
int main()
{
    cin >> n >> m;
    f[0] = 1;
    for(int i=1; i<=n; i++)
    {
        if(i < m)
            f[i] = f[i-1]*2;  // 无论放还是不放,都不会有连续m个坑里都有
        else if(i >= m+1)
            f[i] = f[i-1]*2 - f[i-m-1];   // 减去最后有连续 m 个核物质的情况
        else if(i == m)
            f[i] = f[i-1]*2 - 1;  // 减去每个坑里都有核物质这 1 种情况
    }
    cout << f[n];
    return 0;
}

Copy

二维 dp 写法:

#include<bits/stdc++.h>
using namespace std;
const int maxn=60;
long long ans,f[maxn][maxn];
int n,m;
int main()
{
    cin>>n>>m;
    f[1][0]=1;
    f[1][1]=1;
    for(int i=2;i<=n;i++)
    {
        for(int j=0;j<m;j++)
        f[i][0]+=f[i-1][j];
        for(int j=1;j<m;j++)
        f[i][j]=f[i-1][j-1];
    }
    for(int i=0;i<m;i++)
    ans+=f[n][i];
    cout<<ans;
}

Copy

考试流程

1.可以提前1小时进学校

1.先知道厕所在哪
2.把考前注意事项再看看

2.考前15分钟进教室

1.问考场老师厕所在哪,有没有水
2.调试电脑,测试编译器,配置熟悉的代码环境。
3.建好文件夹和.in、.out文件等。
可以把文件放在不会还原的盘,万一机器出现问题,重启了你的代码还在。如果要求在桌面上,最后5分钟可以把这个文件夹拷贝到桌面上。

3.正式考试

1.先用5-10分钟把题目大概读一遍


,有 数据范围的重点关注一下 。
2. 柿子挑软的捏,题目挑简单的做。 我们的目的是拿高分,不是把每一题做出来。

4.每年都有同学犯错

注意 文件名、freopen文件名 ,一般来说可以复制。
如果不能复制,手动写要再三确认是否正确。
freopen一开始就准备好,不要做到一半再回头看看自己的文件名有没有写错。

考前注意事项

一、编译规则

带返回值的函数一定要return,不要漏写,包括main函数的return也要写。

二、写易于调试的代码

1.缩进
2.括号
3.变量名
4.加注释!!!

三、调试流程

1.通过样例
2.手写几组样例

手写样例的建议:

1.边界情况
2.特殊情况
3.二分手写数据
4.随机手写样例

输出调试

1.写.in和.out文件,调试的时候把.out注释掉。

小黄鸭调试法:

检查代码的时候向自己提问,每一步操作都要搞明白。

四、骗分

1.暴力(重点!!!)

考虑双for、三for或其他暴力枚举法。

比如 合肥市历年就喜欢考这种 :

盲比多少游戏(game) - TopsCoding

力量对比(power) - TopsCoding

园区最受欢迎指数(best) - TopsCoding

再比如 2021蜀山区第三题(暴力解法70分!!!) :

涂 7(seven) - TopsCoding

2.打表

预先把正确答案算出来。
比如:int a[1000]={0,答案的第一个数,答案的第二个数,。。。。};
然后写一个如下的程序:

int main()
{
    cin>>n;
    cout<<a[n];
    return 0;
}

Copy

3.面对不确定的正解时,手写函数

int main()
{
    if(n<=100)
    {
        f1();//暴力方法
    }
    else
    {
        f2();//不太确定的正确解法
    }
    return 0;
}

Copy

4.无奈之举,输出错误情况

int main()
{
    if(n<=100)
    {
        f1();//暴力方法
    }
    else
    {
        cout<<-1;//按照题目的要求输出
    }
    return 0;
}

Copy

5.对拍

之前写的正确程序(但速度慢或其他情况)不要删除,可以检测 优化之后的代码(正解) 是不是正确的。

考场策略

考前再看看

考试易错点讲解

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值