CCF-CSP认证备考 第三题 历年解题思路汇总

这是一份本人当时备考时总结的复习资料(从202303往前,没有近三次的题目),大致总结了【CCF-CSP第三题】十来道题的解题思路要点以及注意事项。希望能对大家的备考有所帮助。

个人认为,第三题的难点在于题目阅读量大,关系复杂。这种题往往需要非常耐心分析题目,根据得分小点来拆解,简化题目。一般来说,在考场上,能骗到20分,40分就已经很可以了。

在备考时,注意需要耐下心来练习,一步步debug,争取先能每道题目顺利拿到20分、40分。之后再注意提升解题速度。

另外,我认为,第三题对于结构体以及哈希表的运用是非常多的,需要大家能够熟练的梳理题目关系,把各个对象提取出来。

LDAP

  • 用到的数据结构:结构体数组、哈希表

  • struct User
    {
    	int DN; // 存储用户标号 
    	unordered_map<LL, LL> attr // 哈希表存储属性和值;
    }user[N];
    
  • 字符串处理操作 string类,取交并集函数

  • &(|(...)(...))(...)递归思想

JPEG 解码

  • Z字形扫描

防疫大数据

  • 1. 风险地区开始、结束时间 -> 存储每天哪些是风险地区, 只有1000天
    2. 存储每天的漫游信息 三元组-结构体
    
  • struct node
    {
        LL d, u, r;
    }a;
    
    vector<node> day[N]; // 每天的漫游数据
    set<LL> risk[N], res;  // risk 存储第i天的风险地区, res-结果
    

角色授权

  • 结构体数组、哈希表,存储很多映射关系。很巧妙的是用哈希表存储角色名称和下标(id)的映射关系,不然给定角色名称在结构体数组中寻找该角色会很费时,有了映射关系直接从哈希表中获得角色的下标。
  • 有点绕,关系很复杂,输入很多。理清关系很重要。
  • 判断操作还是比较简单,翻译文本即可。

计算资源调度器

  • 结构体数组 节点Node + 排序

  • struct Node
    {
        int id; int cnt; int area;
        unordered_set<int> task;
        bool operator< (const Node &a)const
        {
            if (cnt != a.cnt) return cnt < a.cnt;
            else return id < a.id;
        }
    }node[N];
    
  • 题目本质就是根据条件一步步筛选,再从候选节点中选出最靠前的(结构体数组排序已实现)。筛选步骤中可用一个标记数组st[]标记被筛除掉的节点

  • 根据子任务一步步拿分 20 50 80 100

  • 注意:若需要给结构体数组排序,下标从0开始比较好处理!

登机牌条码(40分)

脉冲神经网络

  • 邻接表存储连接关系 add()

  • double I[1024][N / 2]; 神经元是带有时间的,两维

  • 先脉冲源发射 -> 神经元 -> 神经元

DHCP服务器

  • 分配IP,结构体存储IP信息

  • 每个时刻都要更新IP的状态 update_ips_state

  • 一句句翻译

点亮数字人生

  • 拓扑排序判断是否有回路
  • "AND", "OR", "NOT", "XOR", "NAND", "NOR"

化学方程式【好题!】

  • 4Au+8NaCN+2H2O+O2=4Na(Au(CN)2)+4NaOH

  • 模拟、字符串处理、递归处理括号

  • 找到等号位置,左右分开处理

  • 双指针找到每一个项(+号分隔),处理其前缀数字(cnt)

  • 对于每一个项(含有括号)递归处理

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值