P4956 [COCI2017-2018#6] Davor

这篇具有很好参考价值的文章主要介绍了P4956 [COCI2017-2018#6] Davor。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题面翻译

在征服南极之后,Davor 开始了一项新的挑战。下一步是在西伯利亚、格林兰、挪威的北极圈远征。他将在 2018 2018 2018 12 12 12 31 31 31 日开始出发,在这之前需要一共筹集 n n n 元钱。他打算在每个星期一筹集 x x x 元,星期二筹集 x + k x+k x+k 元,……,星期日筹集 x + 6 k x+6k x+6k 元,并连续筹集 52 52 52 个星期。其中 x , k x,k x,k 为正整数,并且满足 1 ≤ x ≤ 100 1 \le x \le 100 1x100

现在请你帮忙计算 x , k x,k x,k 为多少时,能刚好筹集 n n n 元。

如果有多个答案,输出 x x x 尽可能大, k k k 尽可能小的。注意 k k k 必须大于 0 0 0

题目描述

After successfully conquering the South Pole, Davor is preparing for new challenges. Next up is the Arctic expedition to Siberia, Greenland and Norway. He begins his travels on 31 December 2018, and needs to collect ​N kunas (Croatian currency) by then. In order to do this, he has decided to put away ​X (​X ≤ 100) kunas every Monday to his travel fund, ​X + K kunas every Tuesday, ​X + 2* ​K every Wednesday, and so on until Sunday, when he will put away ​X + 6* ​K kunas. This way, he will collect money for 52 weeks, starting with 1 January 2018 (Monday) until 30 December 2018 (Sunday).

If we know the amount of money ​N​, output the values ​X and ​K so that it is possible to collect the ​exact money amount in the given timespan. The solution will always exist, and if there are multiple, output the one with the greatest ​X ​ and smallest ​K ​.

输入格式

The first line of input contains the integer ​N​ (1456 ≤ ​N​ ≤ 145600), the number from the task.

输出格式

The first line of output must contain the value of ​X (​0 < ​X ​≤ 100 ​)​, and the second the value of
K (K ​> 0 ​)​.

1.题目分析

该题只要考查的是循环和解方程组,这里用穷举就可以解决。

2.题目思路

第一周筹集的资金是:(7x + 21k),那么52周就是:(7x + 21k)*52 = n,
这样就可以得到判断条件,写两个循环分别枚举K和X,得到多组解,但要求X要尽可能的小,
定义一个变量记录第一次最小值,然后判断解中的最小值,保存相应的解。打印输出即可。文章来源地址https://www.toymoban.com/news/detail-615935.html

3.代码实现

#include <stdio.h>

int main() {
    int n, x, k;
    scanf("%d", &n);
    int min,max;
    int count = 1;
    //穷举
    for (x = 0; x <= 100; x++) {
        for (k = 1; k < 1000; k++) {
            //判断方程的解
            if (52 * (7 * x + 21 * k) == n){
                //记录第一个解,看作最小值
                if (count == 1){
                    min = k;
                    count--;
                }
                //判断最小值,并赋值
                if (k <= min){
                    min =k;
                    max = x;
                }
            }
        }
    }
    //打印结果
    printf("%d\n", max);
    printf("%d\n",min);
    return 0;
}

到了这里,关于P4956 [COCI2017-2018#6] Davor的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • [COCI2010-2011#6]STEP

    目录 1.题目: 题目描述 输入格式 输出格式 2.思路 1.ans数组的维护 2.L and R 的维护 3.ne数组与pr数组的维护 4.len数组:  3.代码: 1.有注释版: 2.copy版: 给定一个长度为N的字符序列  ,初始时序列中全部都是字符L。 有 q次修改,每次给定一个 x,若为L,则将 修改成R,否则将

    2024年02月15日
    浏览(30)
  • 2017年408专业算法题

    因为要转换为中序表达式,因此使用中序遍历。在中序遍历的过程中,对于当前访问的非空结点p,则先输出\\\"(“,然后递归调用左子树,输出p的权值,递归调用右子树,输出“)”,如果p是根或者叶结点,则不需要输出“(”或”)\\\"。 408历年真题算法题解析

    2024年02月12日
    浏览(37)
  • 超实用的Go语言基础教程,让你快速上手刷题!!

    工欲善其事,必先利其器。掌握Go的基础语法还不够,还需要勤加练习,修习“外功”,才能达到出奇制胜的效果。 在大致了解Go语言的基本语法后,我就迫不得已地想使用这门语言。可是我发现编程思路不是问题,很大的问题是“手慢”,不熟悉常用写法(可能这就是快速

    2024年02月04日
    浏览(34)
  • cec2017(MATLAB):星雀优化算法(Nutcracker optimizer algorithm,NOA)

    星雀优化算法(Nutcracker optimizer algorithm,NOA)由Mohamed Abdel-Basset等人于2023年提出,该算法模拟星雀的两种行为,即:在夏秋季节收集并储存食物,在春冬季节搜索食物的存储位置。星雀优化算法(Nutcracker optimizer algorithm,NOA)_IT猿手的博客-CSDN博客 参考文献: [1]Mohamed Abdel-Basset, Reda

    2024年02月06日
    浏览(31)
  • 智能算法终极大比拼,以CEC2017测试函数为例,十种智能算法直接打包带走,不含任何套路

    包含 人工蜂群(ABC)、灰狼(GWO)、差分进化(DE)、粒子群(PSO)、麻雀优化(SSA)、蜣螂优化(DBO)、白鲸优化(BWO)、遗传算法(GA)、粒子群算法(PSO) , 基于反向动态学习的差分进化算法 ,共 十 种算法,直接一文全部搞定! 其中基于反向动态学习的差分进化算法是我自己改进的。大家可

    2024年02月11日
    浏览(29)
  • 【算法】刷题路线(系统+全面)

    本系列基于当前各大公司对大公司的考察情况,给大家规划一条可行的算法刷题路线,大概会规划 200 道自认为有用的题,并且争取让初学者,能够刷起来更加丝滑,而且每个阶段都会进行相对应的说明。 当然,无论是面试还是笔试,你也完全可以按照这个路线来,应付大公

    2024年02月16日
    浏览(26)
  • 算法刷题记录

    cf题目记录 773 A题 给定三个坐标 就是让你求两个y相同时x的差,这个y要是最大的y 收获:ans我本来定义的是double,因为我看题目输出是浮点数,然后wa了,发现大数相减时,会把后面的省略了,比如 然后把double改为int就行了,因为减数和被减数都是int型的 772 B A题 题意 如果两

    2024年02月15日
    浏览(26)
  • 每日刷题|贪心算法初识

                                            食用指南:本文为作者刷题中认为有必要记录的题目                                         推荐专栏 : 每日刷题                                        ♈️ 今日夜电波 : 悬溺—葛东琪                        

    2024年02月08日
    浏览(30)
  • leetcode算法刷题——链表

    题意:删除链表中等于给定值 val 的所有节点。 示例 1: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5] 示例 2: 输入:head = [], val = 1 输出:[] 示例 3: 输入:head = [7,7,7,7], val = 7 输出:[] 在链表类中实现这些功能: get(index):获取链表中第 index 个节点的值。如果索引无效,

    2024年02月21日
    浏览(36)
  • 【贪心算法】leetcode刷题

    贪心算法无固定套路。 核心思想:先找局部最优,再扩展到全局最优。 两种思路: 1、从大到小。局部最优就是大饼干喂给胃口大的,充分利用饼干尺寸喂饱一个,全局最优就是喂饱尽可能多的小孩。 先遍历的胃口,在遍历的饼干 2、从小到大。 小饼干先喂饱小胃口 。两个

    2024年02月14日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包