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日
    浏览(38)
  • 2017年408专业算法题

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

    2024年02月12日
    浏览(43)
  • 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日
    浏览(48)
  • 超实用的Go语言基础教程,让你快速上手刷题!!

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

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

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

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

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

    2024年02月08日
    浏览(41)
  • 算法刷题-数组-螺旋矩阵

    力扣题目链接 给定一个正整数 n,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。 示例: 输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ] 这道题目可以说在面试中出现频率较高的题目, 本题并不涉及到什么算法,就是模拟过程,但却十分考察对代

    2024年02月08日
    浏览(55)
  • 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日
    浏览(48)
  • 【贪心算法】leetcode刷题

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

    2024年02月14日
    浏览(50)
  • 【算法刷题】Day28

    原题链接 第 i 个元素是一支给定的股票在第 i 天的价格 最多可以完成 两笔 交易 注意:你不能同时参与多笔交易 1. 状态表示: dp[i] 表示:第 i 天结束之后,所能获得的最大利润 f[i][j] 表示:第 i 天结束之后,完成了 j 次交易,此时处于“买入”状态下的,最大利润 g[i][j]

    2024年02月02日
    浏览(44)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包