寒假训练赛第五场

问题 A: 分火腿

题目描述

小月⾔要过四岁⽣日了,她的妈妈为她准备了n根⽕腿,她想将这些⽕腿均分给m位小朋友,所以她可能需要切⽕腿。为了省事,小月⾔想切最少的⼑数,使这n根⽕腿分成均等的m份。请问最少要切⼏⼑?

输入

第⼀⾏⼀个整数T,表示有T组数据。
接下来T组数据,每组共⼀⾏,有两个数字n,m。

输出

每组数据⼀⾏,输出最少要切的⼑数。

样例输入 Copy

2
2 6
6 2

样例输出 Copy

4
0

思路
一开始题目没说2根香肠分3份只要切2刀,wa了,后来考虑了这种情况,找规律可得解;

ll gcd(ll a,ll b)
{
    if(b==0) return a;
    else return gcd(b,a%b);
}

int main()
{
    int n;cin>>n;
    while(n--)
    {
        ll x,y;
        cin>>x>>y;
        if(y==0||x%y==0) cout<<0<<endl;
        else if(y%x==0)
        {
            ll z=y/gcd(x,y);
            cout<<(z-1)*x<<endl;
        }
        else
            cout<<y-gcd(x,y)<<endl;
    }
    return 0;
}
问题 B: 工资

题目描述

n+e在暑假参加了打零⼯的活动,这个活动分为n个⼯作日,每个⼯作日的⼯资为Vi。有m个结算⼯钱的时间,n+e可以自由安排这些时间,也就是说什么时候拿钱,老板说的不算,n+e才有发⾔权!(因为n+e是⼟豪,他是老板的老板)
n+e不喜欢身上⼀次性有太多的钱,于是他想安排⼀下拿钱的时间,使他⼀次性拿的钱中最⼤的那次的最小。(最后⼀天⼀定要领钱)

输入

第⼀⾏2个数n,m
接下来n⾏,每⾏⼀个数,代表Vi

输出

输出⼀⾏⼀个整数,表示最小的最⼤钱数。

样例输入 Copy

7 5
100
400
300
100
500
101
400

样例输出 Copy

500

提示

100 400//300 100//500//101//400// ”//” 表示 n+e 要去拿钱。

对于20%的数据,1<=n<=20
对于另20%的数据,1≤n≤50,Vi的和不超过1000
对于100%的数据,1≤n≤100000,m≤n,Vi≤100000

思路
二分答案ans,判断mid是否符合judge函数的判断,符合判断则满足分组要求,可以将 r 减小,否则将 l 增大。

int n,m;
ll a[100005];///用long long

bool judge(ll mid)
{
    int cnt=0;
    ll ret=0;
    for(int i=1;i<=n;i++)
    {
        if(ret+a[i]>mid)
        {
            ret=a[i];
            cnt++;
        }
        else ret+=a[i];
        if(cnt>=m || ret>mid)///有多于m个分组是大于mid的,则非法
            return false;    ///或者是其中一个数ret大于mid,也非法
    }
    if(cnt<m) return true;
    return false;
}

int main()
{
    cin>>n>>m;
    ll ans,minn=1000000,maxn=0;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        maxn+=a[i];
        minn=min(minn,a[i]);
    }
    while(minn<maxn)
    {
        ll mid=(minn+maxn)/2;
        if(judge(mid)) maxn=mid;
        else minn=mid+1;

    }
    cout<<minn<<endl;
}

问题 C: 公约数

题目描述

话说CD比较⽋扁,他表示在课室的日⼦没有教主在旁边打他的日⼦太寂寞了,所以这⼀晚,他终于来到了电脑室被打。由于CD是⼤家的宠物,于是⼤家都来打CD了。
电脑室里有n个⼈,第i个⼈希望打CD ai下。但是太多⼈打CD,他又会不爽,于是他规定只能有K个⼈打到他,并且为了公平起见,最终K个⼈打他的次数都必须是相同的,CD规定这个次数就是这K个⼈希望打他的次数的最⼤公约数。为什么是最⼤公约数呢?因为他觉得被打的次数是GCD的话他才会变成Glad CD。
之前说了,CD比较⽋扁,于是CD希望,K个⼈打他的次数的和最⼤。你能告诉他他最后总共会被打多少下么?

输入

第⼀⾏两个正整数n,k。
第⼆⾏n个正整数,表示每个⼈希望打CD多少下。

输出

输出⼀个正整数表示CD会被打多少下。

样例输入 Copy

3 1
1 2 3

样例输出 Copy

3

提示

对于30%的数据,保证k≤n≤20。
对于50%的数据,保证输⼊中所有数小于5000。
对于100%的数据,保证输⼊中所有数小于500000,k≤n。

思路:暴力枚举: i 从a[i]_max开始枚举到1,查询是否有大于等于k个数数是i的倍数,若有,则i是最大公约数。

int n;
ll k;
int visit[500005];
int main()
{
    cin>>n>>k;
    int maxn=0;
    for(int i=1;i<=n;i++)
    {
        int x;
        scanf("%d",&x);visit[x]++;
        maxn=max(maxn,x);
    }
    for(int i=maxn;i>=1;i--)
    {
        int cnt=0;
        for(int j=i;j<=maxn;j+=i)///查询是否存在i的倍数
        {
            if(visit[j])cnt+=visit[j];///存在,则计算有多少个
            if(cnt>=k) break;
        }
        if(cnt>=k)
        {
            printf("%lld",i*k);///cout会出错
            break;
        }
    }
}
<think>好的,我现在需要帮助用户解决如何提高保研概率的问题,尤其是他现在专业排名第二的情况下。首先,我需要回顾之前的对话历史,看看用户之前已经询问过湖南科技大学信息学院的保研建议,并且得到了详细的回复。现在用户的具体情况是专业排名第二,想知道如何进一步提高保研概率。 首先,用户当前排名已经很靠前,但可能担心竞争激烈或者想冲刺更好的学校。我需要考虑在现有基础上还能优化的地方。根据之前的建议,绩点和排名是关键,但用户已经是第二,所以可能需要巩固现有成绩,同时提升其他方面,比如竞赛、科研、英语等。 接下来,用户的需求可能不仅仅是维持排名,而是如何在现有基础上增加竞争力,尤其是针对目标院校的要求。需要分点列出具体的策略,比如巩固学业、竞赛突破、科研提升、材料准备等。 还要考虑用户可能的潜在需求,比如是否需要联系导师、如何选择夏令营、面试准备等。此外,用户可能对保研流程中的时间节点不太清楚,需要提醒关键时间,比如大三下学期的准备,夏令营申请等。 需要确保建议具体可行,例如在竞赛方面推荐适合信息学院学生的比赛,科研方面如何寻找导师项目,如何准备推荐信和个人陈述。同时,提醒用户关注政策变化,准备备选方案,比如同步准备考研,以防万一。 最后,语言要口语化,结构清晰,分点明确,让用户容易理解和执行。需要检查是否有遗漏的重要点,比如英语成绩的重要性,或者实践项目的建议。确保每个建议都有实际操作性,比如具体提到GitHub项目、专利申请等细节。</think>以下是针对专业排名第二的学生提升保研成功率的进阶策略,结合信息学院特点给出具体建议: --- ### **一、巩固学业优势(核心基础)** 1. **精准控分策略** - 重点保护核心课程(如:$90+$的《算法设计与分析》《数字信号处理》) - 使用《课程成绩预测表》测算后续课程对GPA影响,优先保障学分高的必修课 - 关注课程设计(如《嵌入式系统设计》),争取获评优秀作品 2. **差异化竞争** - 在专业细分方向建立标签(如:强化"机器学习算法优化"或"FPGA开发"方向课程优势) - 选修研究生先修课(如《矩阵分析》《机器学习数学基础》) --- ### **二、竞赛突破策略(关键加分)** 1. **重点赛事建议** | 赛事类型 | 推荐赛事 | 建议组队时间 | |----------------|---------------------------|-----------------| | 算法类 | ACM-ICPC亚洲区域赛 | 大三上学期组队 | | 综合类 | 全国大学生电子设计竞赛 | 大二暑期开始备赛 | | 数学类 | 数学建模美赛(MCM/ICM) | 大二寒假参赛 | 2. **备赛技巧** - 针对算法竞赛:每日坚持LeetCode/PAT甲级题库训练 - 电子设计类:提前掌握Altium Designer和STM32开发 - 数学建模:建立常用算法库(如灰色预测模型$GM(1,1)$) --- ### **三、科研能力提升(决胜关键)** 1. **科研路径选择** - 优先参与学院重点实验室项目(如:智能信息处理实验室) - 尝试在CCF-C类会议发表论文(如ICMLC、ICNC) - 申请实用新型专利(平均周期6-8个月) 2. **科研工具准备** - 掌握LaTeX论文排版(推荐使用Overleaf平台) - 学习科研绘图(Origin/Matplotlib) - 建立个人学术博客(记录科研笔记) --- ### **四、目标院校攻坚** 1. **夏令营策略** ```python # 目标院校梯度建议(以计算机方向为例) target_schools = { "冲刺档": ["清华大学(深圳)", "浙江大学(工程师学院)"], "主申档": ["华中科技大学", "电子科技大学"], "保底档": ["中南大学(人工智能研究院)", "本校优培计划"] } ``` 2. **材料优化重点** - 个人陈述突出科研贡献(如:"提出改进的$LSTM$模型,预测准确率提升12.3%") - 推荐信争取获得省级以上人才称号的教授签名 - 准备技术作品集(含代码仓库链接、电路设计图、Demo视频) --- ### **五、风险控制方案** 1. **双轨制准备** $$P(保研成功) = 1 - \prod_{i=1}^n (1 - p_i)$$ (其中$p_i$代表各备选路径成功率) - 同步准备1-2门考研专业课(如《数据结构》《计算机网络》) - 维持英语持续学习(建议托福每周模考1次) 2. **关键时间轴** ``` 大三下(3月):联系目标院校导师 大三下(5月):参营论文终稿完成 大四上(9月):准备3套面试应急预案 ``` --- **特别提醒**: 1. 关注学院《推免细则》中"综合成绩=学业成绩×80%+发展性素质×20%"的具体算法 2. 建议每周与1位已保研学长交流(重点获取面试真题) 3. 准备5分钟英文自我介绍(含专业术语双语对照表) 当前排名已具备较强竞争力,重点应转向提升科研产出和院校匹配度。建议每月进行一次SWOT分析,动态调整备战策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值