AtCode ABC249 - A - Jogging

AtCoder从小白到大神的进阶攻略 摘自https://www.cnblogs.com/LHYLHY/p/11572011.html 在此对作者表示感谢 AtCoder从小白到大神的进阶攻略 前言 现在全球最大的编程比赛记分网站非CodeForces和AtCoder莫属了,@ezoixx130大佬已经在去年介绍过CodeForces了(传送门),那么现在我们主要谈一下AtCoder。 简介 A... 阅读详情

标签

  • 条件语句、数学

题目地址

A - Jogging

  • https://atcoder.jp/contests/abc249/tasks/abc249_a

问题描述

Problem Statement

Takahashi and Aoki decided to jog.
Takahashi repeats the following: “walk at Bmeters a second for Aseconds and take a rest for Cseconds.”
Aoki repeats the following: “walk at Emeters a second for Dseconds and take a rest for Fseconds.”
When Xseconds have passed since they simultaneously started to jog, which of Takahashi and Aoki goes ahead?

Constraints

  • 1≤A,B,C,D,E,F,X≤100
  • All values in input are integers.

Input

Input is given from Standard Input in the following format:

A B C D E F X

Output

When XX seconds have passed since they simultaneously started to jog, if Takahashi goes ahead of Aoki, print Takahashi; if Aoki goes ahead of Takahashi, print Aoki; if they have advanced the same distance, print Draw.


Sample Input 1

4 3 3 6 2 5 10

Sample Output 1

Takahashi

During the first 10 seconds after they started to jog, they move as follows.

  • Takahashi walks for 4seconds, takes a rest for 3 seconds, and walks again for 3 seconds. As a result, he advances a total of (4+3)×3=21 meters.
  • Aoki walks for 6 seconds and takes a rest for 4 seconds. As a result, he advances a total of 6×2=12 meters.

Since Takahashi goes ahead, Takahashi should be printed.

题意

  • 比较简单:一个人走A秒,歇C秒,然后再走,X秒后,看谁走的远?

思路

这道题不难,不过相对以往比赛第一题,稍有难度。

我在线上参加比赛时编写的代码如下,是不是写的比较绕了。

主要是当时心态有些急,如果稍加分析,理清思路,很快就能秒掉该题。

题解

小码匠

void coder_solution() {
    // 提升cin、cout效率
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    // 提升cin、cout效率
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    int a, b, c, d, e, f, x, g, h;
    cin >> a >> b >> c >> d >> e >> f >> x;
    if (x <= a + c) {
        if (x >= a && x <= a + c) {
            g = a * b;
        } else {
            g = x * b;
        }
    }
    if (x <= d + f) {
        if (x >= d && x <= d + f) {
            h = d * e;
        } else {
            h = x * e;
        }
    }
    if (x > a + c) {
        g = x / ( a + c) * a * b;
        if (x % ( a + c) >= a) {
            g += a * b;
        } else {
            g += x % ( a + c) * b;
        }
    }
    if (x > d + f) {
        h = x / ( d + f) * d * e;
        if (x % ( d + f) > d) {
            h += d * e;
        } else {
            h += x % (d + f) * e;
        }
    }
    if ( g > h) {
        cout << "Takahashi";
    } else if ( g == h) {
        cout << "Draw";
    } else {
        cout << "Aoki";
    }
}

官方题解

  • 这个是官方给的题解,利用循环做处理,感觉也有些绕。
void best_solution() {
    // 提升cin、cout效率
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    
    int a, b, c, d, e, f, x;
    cin >> a >> b >> c >> d >> e >> f >> x;
    int takahashi = 0, aoki = 0;
    for (int k = 0; k < x; ++k) {
        if (k % (a + c) < a) {
            takahashi += b;
        }
        if (k % (d + f) < d) {
            aoki += e;
        }
    }
    if (takahashi > aoki) {
        cout << "Takahashi\n";
    } else if (takahashi < aoki) {
        cout << "Aoki\n";
    } else {
        cout << "Draw\n";
    }
}

小码匠二次解

这个是今天晚上做复盘时,重写的代码,比之前线上比赛时简洁多了。

主要是还学习到了新知识。(呵呵…)

void best_solution() {
    // 提升cin、cout效率
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    
    // 输入
    int a, b, c, d, e, f, x;
    cin >> a >> b >> c >> d >> e >> f >> x;

    // 定义函数
    auto calc = [&](int a, int b, int c, int x) {
        int m = x / (a + c) * a * b;
        if (x % (a + c) >= a) {
            m += a * b;
        } else {
            m += x % (a + c) * b;
        }
        return m;
    };

    // 分别计算
    int takahashi = calc(a, b, c, x);
    int aoki = calc(d, e, f, x);
    
    // 输出
    if (takahashi > aoki) {
        cout << "Takahashi";
    } else if (takahashi < aoki) {
        cout << "Aoki";
    } else {
        cout << "Draw";
    }
}

复盘

心态:

  • 每次做第一题时,心态都有些急,难免思路就会不清晰。其实精心梳理下,这道题很快就能解决。
  • 函数:重复的处理要编写函数,提高程序的扩展性。
    • 老码农叮嘱我:不要为了写代码而写代码,每一次动手敲都要有提高,可以是技术,可以是思维,总之要有提升。

待补知识点

  • 关于函数需要深入学习
    • 给老码农安排个活,帮我整理下知识点和学习资料
AtCoder ABC142 本来不想发这篇博客的 但是考虑到这是人生中第一次atcoder abc做出5道题 还是忍不住发一波 T1 看到了就很慌 作为史上做过的最难得abcT1,居然不是像140那种的直接输出N3N^3N3 翻译一下题意,输出小于n的奇数个数n\frac{小于n的奇数个数}{n}n小于n的奇数个数​ # include <cstdio> # include <algorithm> #... 阅读详情

相关推荐

AtCoder初学者比赛:编程学习

ABC比赛为初学者提供了一个良好的平台,让他们在编程竞赛中获得实践经验,并提高他们的编程技能。在编程领域,AtCoder Beginner Contest(ABC)是一个非常受欢迎的比赛,旨在帮助初学者提高他们的编程能力。在这篇文章中,我们将介绍ABC比赛的一些基本概念,并提供一些示例代码来帮助您更好地理解。让我们来看一个简单的示例,来帮助您了解ABC比赛的工作原理。希望本文能帮助您了解AtCoder初学者比赛(ABC)的基本概念,并为您的编程学习之旅提供一些指导。给定两个整数A和B,计算它们的和。

IELLQUI8的博客 2864

【AtCoder】 AtCoder Beginner Contest 103 (ABC103)

先上一张最终结果的图吧: 感觉AtCoder的ABC还是比较练手的,考验代码速度,网速,D题还会有一些思维难度。 这次ABC由于网络原因,很迟才看到题,但完成得还是不错的。 题解: A 题意:给你三个都需要被完成的任务的难度,均为1至100的正整数。 首先,你可以用0的花费完成任何一个任务。 如果你完成了一个任务,那么你可以完成另一个任务,花费是两个任务的难度的差的绝对值。 题...

ezoixx130's Blog 5374

HFSS实战(二)——精准仿真高速PCB差分线的信号完整性

本文深入探讨了使用HFSS进行高速PCB差分线信号完整性仿真的关键技术与实战经验。从设计文件导入、模型裁剪到差分端口设置,详细解析了精准仿真的全流程,特别强调了材料特性和3D电磁场仿真在解决微带线损耗等问题中的重要性。文章还提供了常见问题排查指南和效率优化技巧,帮助工程师提升高速PCB设计的仿真精度与效率。

weixin_38170829的博客 572

洛谷上的 AtCoder 水(难)题(C++)【第一到五题】

前言: 蒟蒻尹:啊啊啊~~要疯啦! 为了不让我们玩得太high,我们的教练给我们布置了30题的AtCoder经典题当作业,还要写10篇题解。。。 可事实上。。。教练我们还有寒假作业啊 QAQ 555~~ 这次我选了五道题来做讲解,后面会再出五道题; 这次讲解为了方便理解,我把题面改了一点,有的原题实在看不下去 好了废话不多说,开始奋斗吧>o< 第一题:おいしいたこ焼きの売り方 - 洛谷 题目描述: 高桥烦恼着怎样按顺序卖章鱼烧。因为知道做了的章鱼烧不好吃,所以高桥不

ytk888的博客 5125

从ISCXTor2016到CICIDS2017:手把手教你下载和使用UNB的网络安全数据集

本文详细介绍了UNB大学发布的ISCXTor2016和CICIDS2017等网络安全数据集的下载与使用方法,特别适合加密流量识别和网络行为分析研究。文章提供了多种高效获取路径、文件结构解析及实战分析示例,帮助研究者快速上手这些真实场景捕获的精细标注数据集。

weixin_42524945的博客 630

Keil5与ARM编译器V5安装指南:从下载到配置全流程解析

本文提供Keil5与ARM Compiler V5的完整安装与配置指南。针对新版Keil5默认不包含V5编译器导致老工程编译失败的问题,详细解析了从软件下载、授权管理到获取并正确安装ARM Compiler V5(AC5)的全流程,确保开发者能顺利搭建兼容老项目的稳定开发环境。

weixin_29158047的博客 874

AtCoder Beginner Contest 292 (A - E) 记录第一场ABC

本来晚上在打Acwing周赛,最后一题Trie想不出来咋写,看群里有人说ABC要开始了,想着没打过ABC就去报了一下,感觉难度大概是cf的Div3到Div4之间吧,总共写了五个题,E题想复杂了快结束才交过。总的来说手速很重要。

游者的博客 1623

docker拉取镜像报错:Error response from daemon: Get “https://registry-1.docker.io/v2/“: dial tcp

docker拉取镜像报错:Error response from daemon: Get “https://registry-1.docker.io/v2/“: dial tcp

m0_55333789的博客 1556

AtCoder褐名记

今年四月份开始参加AtCoder比赛,至今参加了9次。在第9次结束后,涨了一级,从最低级的灰名涨到倒数第二级的褐名。 相对于我这样的新手而言,AtCoder比TopCoder和Codeforces更加合适。AtCoder分三个级别的比赛:AtCoder Beginnner Contest(ABC),AtCoder Regular Contest(ARC),AtCoder Grand Co...

小树学信奥 6208

西门子S7-200 SMART PLC高速计数器与增量式编码器实战配置指南

在工业自动化控制系统中,传感器是将物理量转换为电信号的关键组件,其中编码器作为核心的位置与速度检测元件,其工作原理基于光电或磁电效应,将机械位移转换为脉冲序列。增量式编码器通过输出相位差90度的A/B两相脉冲,不仅能实现精确的位移测量,还能通过相位关系自动判别运动方向,并通过倍频技术提升分辨率。其技术价值在于为PLC等控制器提供了实时、高精度的位置反馈,是实现闭环控制、提升系统精度与可靠性的基础。在包装机械、物料输送、绕线设备等应用场景中,编码器与PLC高速计数器的协同工作是实现精确定位、定长切割与速度控制

weixin_29178069的博客 393

WINCC8.1工业组态软件安装与授权配置指南

SCADA系统作为工业自动化控制的核心平台,通过实时数据采集与监控实现生产流程可视化。WINCC作为西门子旗舰级组态软件,其8.1版本凭借稳定的运行时环境在汽车制造、流程工业等领域广泛应用。本文从工业控制系统软件安装规范切入,重点解析WINCC8.1与Automation License Manager的协同工作原理,详细说明包括系统环境检查、安装包校验、授权文件配置等关键技术环节。针对工程实施中常见的内存配置不足、授权管理器报错等典型问题,提供经过现场验证的解决方案,特别适用于需要进行产线监控系统升级维护

cqwf95925的博客 1651

[ABC249A] Jogging

这题一看便知,是一道小学数学题,干就完了。

mbjx2021的博客 502

通过声音识别鸟类

根据野生鸟类的外表来识别它是一回事。仅仅根据声音来识别同一只鸟是另一回事。除非你是一个熟练的观鸟者,通过声音识别鸟类可能相当具有挑战性德国马尔堡大学的一组数学、计算机科学和生物学研究人员设计了一种快速识别鸟类和监测当地生物多样性的方法。他们使用连接到 NVIDIA 的便携式设备拍摄的录音根据研究人员的说法是一个边缘人工智能系统,“基于分布式系统中运行的嵌入式边缘设备,能够对森林中记录的声景进行高效、连续的评估。”要了解更多信息,请参阅。

分享AI前沿科技 1679

零点工作室暑假集训(AtCoder--ABC249)

题意 :高桥和青木决定一起慢跑。高桥重复以下动作:“以B米每秒的速度行走A秒,然后休息C秒。”青木重复以下动作:“以E米每秒的速度行走D秒,然后休息F秒。”当从他们同时开始慢跑经过X秒后,谁会领先一步?为了确定高桥和青木谁在X秒后领先,我们需要根据他们行进的距离来计算。

weixin_73807663的博客 244

SpringBoot DDoS防护:限流与验证全面指南

SpringBoot应用DDoS防护摘要 本文介绍了SpringBoot应用防护DDoS攻击的方案。DDoS攻击通过分布式请求耗尽服务器资源,导致服务不可用、成本激增等风险。防护需遵循分层防御、弹性设计等原则。 核心方案包括: 令牌桶限流:使用Guava RateLimiter控制请求速率 滑动窗口算法:通过Redis+Lua实现精确的分布式限流 微服务集成:利用Spring Cloud Gateway统一管理API限流 实施建议: 关键接口默认添加限流保护 监控系统实时警报异常流量 结合WAF等多层防护措

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 2486

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

AtCoder Beginner Contest 312 复盘 + 参与后感

这次我过了 ABC 三道比较水的题目,拿到了 600 分的成绩,在 9300 位提交代码的选手中排名 3538 ,说实话,我觉得可以更高的。这道题没有复盘的必要,唯一遗憾的是我没看懂原题里 uppercase 是什么意思,导致我画蛇添脚写了一个把小写字母转成大写字母的过程,等 A 了这道题之后到翻译姬里面一查发现这个单词的意思是大写字母,尴尬的我差点用脚指头扣出一座芭比娃娃的梦幻城堡。的复杂度(即二分的复杂度与判断的复杂度相乘),此番优化意义不大,没有这样写让代码变得更麻烦的必要。

CZH_hhx的博客 2798

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

AtCoder Beginner Contest 423:算法竞赛入门指南

算法竞赛是提升编程能力的重要途径,其中动态规划和数据结构是核心考察内容。通过系统化的赛题训练,开发者可以掌握时间复杂度优化和边界条件处理等关键技术。AtCoder Beginner Contest作为面向新手的赛事,其题目梯度设计合理,从基础语法到图论应用逐步深入。参赛者需熟悉ICPC赛制特点,并建立本地测试工具链提升效率。本文以ABC423为例,详解输入输出优化、调试技巧等实战方法,特别适合准备突破蓝名评级的选手参考。

weixin_32175665的博客 295

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

AtcoderABC249场

具体地,可以将每个字符串看作一个二进制数,第 i 位为 1 表示选择第 i 个字符串,为 0 表示不选择。然后枚举所有可能的字符串选择情况,对于每种情况,统计其包含的字母数,最终取最大值即可。具体地,对于已选择的字符串,遍历其中的每个字母,将其对应的 sum 数组元素加 1。最后,遍历 sum 数组,统计出现次数为 K 的字母数 now,即为当前字符串选择情况下包含的字母数。选择若干个字符串,找到包含恰好 K 个已选择字符串中的一些字母的最大不同字母数。给定一个字符串S,判断它是否为美妙的字符串。

m0_73618658的博客 353

AtCoder题解——Beginner Contest 168——B - ... (Triple Dots)

题目相关 题目链接 AtCoder Beginner Contest 168 B题,https://atcoder.jp/contests/abc168/tasks/abc168_b。 Problem Statement We have a stringSconsisting of lowercase English letters. If the length ofSis at mostK, printSSwithout change. If the length ofSex...

努力中的老周的专栏 714

AtCoder ABC 249

A Jogging 没看清楚题 a不是移速 所以卡了十分钟 语法题 int main() { int a, b, c, d, e, f, x; cin >> a >> b >> c >> d >> e >> f >> x; // 速度 b 和 e int aa1 = b * a, bb1 = e * d; int res1 = aa1 * (x / (a + c)); int

DM010maker的博客 629

AtCode ABC249 - B - Perfect String

标签 集合 题目地址 B - Perfect String https://atcoder.jp/contests/abc249/tasks/abc249_b 问题描述 Problem Statement Let us call a string consisting of uppercase and lowercase English alphabets a wonderful string if all of the following conditions are satisfied: Th

小码匠和老码农的博客 578

AtCoder ABC 239题解(A ~ E)

AtCoder ABC 239 A Horizon(语法 + 数学) sqrt(a∗b)==sqrt(a)∗sqrt(b) sqrt(a * b) == sqrt(a) * sqrt(b) sqrt(a∗b)==sqrt(a)∗sqrt(b) int main() { LL n; scanf("%lld", &n); double res = sqrt(n) * sqrt(12800000 + n);//防溢出 printf("%.2f\n", res); r

DM010maker的博客 5129

「Atcoder」abc242 题解

A - T-shirt Code void solve() { int a, b, c, x; cin >> a >> b >> c >> x; if(x <= a) printf("%.12lf\n", 1.0); else if(x <= b) { double res=c; res /= (b-a); printf("%.12lf\n",res);

CodeTty的博客 1060

Atcoder ABC 166 B-D (B简单模拟, C 思维 , D 枚举) 交一发再说

B - Trick or Treat 题意: 给你N个Snuke ,问你有哪一间Snuke是没有小吃的。 思路: 有小吃就记录一下。 最后遍历一遍就知道有几间Snuke没有小吃。 AC #include <iostream> #define For(i,x,y) for(register int i=(x); i<=(y); i++) using namespace std; const int maxn=1e3+10; int a[maxn]; int main() {

qq_45377553的博客 690

atcoder ABC51 B题

题目链接 http://abc051.contest.atcoder.jp/tasks/abc051_b #include #include #define ll long long using namespace std; ll f(ll s,ll k){ if(s < 0) return 0; if(k >= s) return s+1; if(s%2 ==

育 711

Atcoder-蓝名总结

2018年3月11号的AtCoder Beginner Contest 090成功打上了1200分,步入了蓝名,atc的Beginner基本就是codeforces-div2的AB题难度,其实就是手速场,每场都有人10分钟内AK...从2017年12月10日开始,一共打了9场,最好成绩rank16,也就是上蓝名那一场,最差成绩rank739,掉分2333。没有FST的比赛好棒啊!!!!!!!...

sortmin的博客 3940
上一篇: AtCode ABC249 - B - Perfect String
下一篇: AtCode ABC123 - D - Cake 123
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小码匠和老码农

喜欢作者

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值