CSP-J初赛复习大题整理笔记

这篇具有很好参考价值的文章主要介绍了CSP-J初赛复习大题整理笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本篇全是整理,为比赛准备.
CSP-J初赛复习大题整理笔记,笔记,算法
CSP-J初赛复习大题整理笔记,笔记,算法
CSP-J初赛复习大题整理笔记,笔记,算法
CSP-J初赛复习大题整理笔记,笔记,算法
CSP-J初赛复习大题整理笔记,笔记,算法
在这里插入代码片CSP-J初赛复习大题整理笔记,笔记,算法

#include<cstdio>
using namespace std;
int n, m;
int a[100], b[100];

int main() {
    scanf_s("%d%d", &n, &m);
    for (int i = 1; i <= n; ++i)
        a[i] = b[i] = 0;//将两个数组清0,这步基本谁都能看懂
    for (int i = 1; i <= m; ++i) {
        int x, y;
        scanf_s("%d%d", &x, &y);
        if (a[x] < y && b[y] < x) {//这步就很有迷惑性了,如果一拿到这道题,可能会以为是一个类似取最大
                                   //值的题目,但是分析一下总感觉哪里有问题,"a[x]<y&&b[y]<x"这步看不
                                   //的话我们具体来分析一下,首先当i=1的时候,a[x]和b[y]都是==0,如果
                                   // x和y不等于,肯定能够进来,在到后面的时候,如果我的x和y都不同于前
                                   // 面所输入的x和y,那么我的a[x]和a[y]永远都是==0的,都能进来,那如
                                   // 果与前面的相同,我则需要比较一下,如果比之前那个大,就能进来,否
                                   // 则就进不了这层循环,直接进下一层for
            if (a[x] > 0)//"a[x]>0和b[y]>0这两种情况就说明了我之前已经输入过一遍甚至多遍这次的x和y,而为什么要清0呢?
                   b[a[x]] = 0;//上面已知我这次的x和y已经进入过这层if,而我这次还能进去说明我满足的那个"[x] < y && b[y] < x"的条件
                               //而我肯定要把这次的x和y值分别赋给a[x]和a[y],但是在赋值之前,我一定要把b[a[x]]和a[b[y]]给清0,理解
                               // 起来就是说先要把之间连的那条给断掉,再连新的嘛
                               //让我们举个栗子就是说:初始x=3,y=2,然后进了if判断,使得a[3]=2.b[2]=3.,然后呢第二次我让x还等于3,y=4,
                               //这时候的a[3]==2,是小于现在的y也就是4的,然后b[4]==0,也小于当前的x也就是3,所以进了if循环。这时候我的
                               // a[x]因为x之前输出过一遍相同的,所以呢a[x]是铁定>0的,进入那个if(a[x]>0)的循环,然后这时候重点来了,他让b[a[x]]=0,
                               //我们看下,现在的a[x]还是上一次的for赋值的a[x]=y也就是a[3]=2,那么b[a[x]]也就是相当于b[3]嘛,注意我这时候因为输了两
                               // 遍3进去,所以说x是等于3的,等于3因为之前有过赋值操作所以a[x]就不会为0,好,我们现在把b[2]=0了,我们回去看一下,b[2]
                               // 是什么?他就是上一次循环与a[3]相连的那个b[2]呀,我上次让a[3]=2,b[2]=3,理解起来就是让这两个点互连,为什么呢?因为我可
                               // 以通过b[2]的值找到与他相连的a数组的那个下标,同样我也可以通过a[3]的值找到与他相连的b点的下标,但是我时候把b[2]清0了,
                               // 为什么?因为我目前录入了一个y值是比之前录入的y值更大,所以我们根据题目条件,要重新将a[3]和b[4]相连,但是一个a[3]只能
                               // 链接一个b[i]呀,所以我们要清除第一个链接的b[2],也就是说要取消a[3]与b[2]的链接,重新将a[3]与b[4]相连。这就是这短短一
                               // 句话的含义,同样下面那个if语句是同理的,就不多于赘述。
            if (b[y] > 0)
                a[b[y]] = 0;
            a[x] = y;//最后这两步在我认为还是有个小坑,就是说为什么不放在if语句的里面而是放在这里?之前讲了这个if进来的条件1.是x与之前的x都不一样,
            b[y] = x;//2.是我x和y中有一个是与之前一样的,另一个的话是要大于之前那个的,举个例子就是说我第一次x=2,y=3,第二次x=2,y就要>3,或者y=3,
                    //x就要>2,这样才能进入这个if语句里进行模拟。而我这两种情况第一种的话是进不去a[x]>0和b[y]>0这两个if的,直接进行赋值操作,第二种情况
                    // 呢则是需要先把之前那个链接的断掉,这步操作呢在上面两个if中就完成了,剩下的还是要连接新的,也就是赋值操作,所以说两种情况都需要进
                    // 行最后的相互连接,写在这里能减少一丢代码难度。
        }
    }
    int ans = 0;
    for (int i = 1; i <= n; ++i) {//这个if就很简单,就是看下a和b数组中有多少个没有连接成功的,最后统计ans,输出出来就行
        if (a[i] == 0)
            ++ans;
        if (b[i] == 0)
            ++ans;
    }
    printf_s("%d", ans);
    return 0;
}

CSP-J初赛复习大题整理笔记,笔记,算法
CSP-J初赛复习大题整理笔记,笔记,算法
CSP-J初赛复习大题整理笔记,笔记,算法

CSP-J初赛复习大题整理笔记,笔记,算法CSP-J初赛复习大题整理笔记,笔记,算法
CSP-J初赛复习大题整理笔记,笔记,算法
CSP-J初赛复习大题整理笔记,笔记,算法文章来源地址https://www.toymoban.com/news/detail-707715.html

到了这里,关于CSP-J初赛复习大题整理笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2022 CSP-J1 CSP-S1 初赛 第1轮 真题讲评 真题解析

    CSP-J/S 2022初赛讲评 CSP-J/S 2022初赛讲评_哔哩哔哩_bilibili CSP-J2022 初赛第一轮解析 选择题 CSP-J2022 初赛第一轮解析 选择题_哔哩哔哩_bilibili 2022csp j初赛解析-单项选择题 2022csp j初赛解析-单项选择题_哔哩哔哩_bilibili CSP-J2022 初赛第一轮 解析 阅读程序1 CSP-J2022 初赛第一轮 解析 阅读

    2024年02月12日
    浏览(43)
  • 2022 CSP-J CSP-S 第1轮 初赛 第2轮 复赛 分数线 晋级率 获奖名单 汇总 整体成绩分析解读

    2022年CSP-JS初赛北京及全国各省市分数线汇总! 2022年CSP-JS初赛北京及全国各省市分数线汇总! - 知乎 CSP-J/S 2022第一轮认证评级全国分数线各省分数线和晋级率 CSP-J/S 2022第一轮认证评级全国分数线各省分数线和晋级率-童程童美少儿编程招生网 2022 CSP-S1 提高组 第1轮 初赛 视频

    2024年02月12日
    浏览(50)
  • CSP-S初赛基础知识整理

    持续更新中 关于部分 l a t e x latex l a t e x 在 csdn 不能很好的显示,更好的阅读体验。 计算机系统的组成 硬件系统和软件系统。 计算机硬件的五大组成 控制器、运算器、存储器、输入设备和输出设备。 [1-2]二进制 [1]基本定义及应用 逢二进一。后缀为 B texttt{B} B 。 是计算机

    2024年02月09日
    浏览(44)
  • 提高组CSP-S初赛模拟试题整理2

    因为觉得把初赛试题整理放在一篇博客里面显得很拥挤,所以就分成两篇整理啦qwq 上一篇博客 1.在编程时(使用任一种高级语言,不一定是 C + + C++ C + + ),如果需要从磁盘文件中输入一个很大的二维数组(例如 1000 × 1000 1000times1000 1000 × 1000 的 d o u b l e double d o u b l e 型数

    2024年02月07日
    浏览(37)
  • CSP初赛知识点 学习笔记

    对于咱们信奥选手来说,会做的题要坚决不丢分,不会做的题要学会尽量多拿分,这样你的竞赛之路才能一路亨通! 文件(文件夹)操作 点击查看代码 G++/Gcc 基础指令 访问速度:寄存器 () 高速缓存 () 内存(ROM + RAM) () 外存,断电仅保留 ROM 和外存中的数据。 (texttt

    2024年02月09日
    浏览(48)
  • 2023CSP-J题解

    烦死了,这次CSP考的真的垃圾,犯了好多低级错误。 小 Y 的桌子上放着 n n n 个苹果从左到右排成一列,编号为从 1 1 1 到 n n n 。 小苞是小 Y 的好朋友,每天她都会从中拿走一些苹果。 每天在拿的时候,小苞都是从左侧第 1 1 1 个苹果开始、每隔 2 2 2 个苹果拿走 1 1 1 个苹果。

    2024年02月08日
    浏览(55)
  • [CSP-J 2022] 解密

    大家好,今天我来解题[CSP-J 2022] 解密 题目来源链接 题目描述 给定一个正整数 k k k ,有 k k k 次询问,每次给定三个正整数 n i , e i , d i n_i, e_i, d_i n i ​ , e i ​ , d i ​ ,求两个正整数 p i , q i p_i, q_i p i ​ , q i ​ ,使 n i = p i × q i n_i = p_i times q_i n i ​ = p i ​ × q i ​ 、 e

    2024年02月08日
    浏览(47)
  • 备考CSP-J—贪心

    额……既然是备考,那么一定要动脑筋,一共5题,大家好好思考一下。 一:P1250 种树 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 二:P1020 [NOIP1999 提高组] 导弹拦截 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)  三:P1230 智力大冲浪 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 

    2024年01月25日
    浏览(50)
  • 2022 CSP-J 复赛题解

    【题目描述】 小文同学刚刚接触了信息学竞赛,有一天她遇到了这样一个题:给定正整数 a 和 b ,求 a b 的值是多少。 a b 即 b 个 a 相乘的值,例如 23 即为 3 个 2 相乘,结果为 2 × 2 × 2 = 8。 “简单!”小文心想,同时很快就写出了一份程序,可是测试时却出现了错误。 小文

    2024年02月07日
    浏览(63)
  • 2022CSP-J2题解

    今天(2022,10,29), C S P − J S CSP-JS C S P − J S 第二轮成功举办, 虽然大部分省市疫情取消 本蒟蒻今天有幸参加CSP,特发入门组题解 小文同学刚刚接触了信息学竞赛,有一天她遇到了这样一个题:给定正整数 a a a 和 b b b ,求 a b a^b a b 的值是多少。 a b a^b a b 即 b b b 个 a a a 相乘

    2023年04月08日
    浏览(84)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包