CSP-J 第二轮 模拟赛一补题报告

本文记录了一场比赛中的四个编程题目,涉及数字降级(质数判断)、分组求最大专属分数、抢夺地盘的DP优化和闯关神器的最少使用。参赛者运用了唯一分解定理、模拟和贪心策略解决问题。

                         日期:2023 年 10 月 1 日星期日 

                                          学号:S07246
                                          姓名:江守栋

1. 比赛概况: 

        比赛总分共4 题,满分400,赛时拿到220分,其中第一题100分,第二题 

        100 分,第三题10分,第四题10分。 


2. 比赛过程: 

    这场比赛我把重点放在了前两道题上,拿到题目之后先看了第一题,一开始以为    需要模拟或枚举,做着做着忽然恍然大悟,想到了唯一分解定理,写完了第    一题,并在赛时AC。
       第二题,我研究了样例,找到了思路和方法,很快就写完了代码,但调试了很      久,我以为是算法部分出了问题,却发现只是freopen读入部分写错了,好在最    后也AC了。
    后两题我看了很久,但没有思路,直接输出了样例,总共得了20分。

3. 题解报告: 

 (1) 第一题:数字降级

             情况:赛中100分 

             题意:数字每一次降级都表示将一个数字除以一次它的任意一个因子。
                         请问最少几次操作可以将一个数字 ,降级成一个质数?

             赛时本题做题想法: 原本想采用模拟,后来想起了唯一分解定理,分为两种情况:1:N为质数,不需要操作,输出0    2:N不为质数,输出1   轻松AC了这道题

              题解:这道题用到了唯一分解定理,即任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积,所以可以写一个判断质数的函数,如果N是质数,则不需要降级,直接输出0。如果不为质数,根据唯一分解定理,N一定等于一个质数乘另外一个自然数,则 N=P*X (P为质数),所以输出1。

       AC 代码: 

#include<bits/stdc++.h>
          using namespace std;
        long long n;
        bool prime(long long n){
            if(n==1) return 0;
 &n
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值