专栏首页海天一树AtCoder Beginner Contest 101 完整解题报告

AtCoder Beginner Contest 101 完整解题报告

A题

#include <iostream>

using namespace std;

int main()
{
    string s;
    cin >> s;
    int cnt1 = 0, cnt2 = 0;
    for(int i = 0; i < 4; i++)
    {
        if('+' == s[i])
        {
            cnt1++;
        }
        else
        {
            cnt2++;
        }
    }

    cout << cnt1 - cnt2;
    return 0;
}

B题

#include <iostream>

using namespace std;

int main()
{
    int num;
    cin >> num;
    int temp = num;

    int n = 0;
    while(temp)
    {
        n += temp % 10;
        temp /= 10;
    }

    if(0 == num % n)
    {
        cout << "Yes";
    }
    else
    {
        cout << "No";
    }
}

C题

分析:因为最小的数为1,最终所有的数必然全变为1。计算1左边和右边的数各分为多少段,加起来即可得到结果。 假设1位于第i个位置,则左边的分段为(i - 1) / (k - 1),右边的分段为(n - i) / (k - 1), 加起来(i - 1) / (k - 1) + (n - i) / (k - 1) = (n - 1) / (k - 1)

#include <iostream>

using namespace std;

int main()
{
    int n, k;
    cin >> n >> k;
    int a[n + 1];
    for(int i = 1; i <= n; i++)
    {
        cin >> a[i];
    }

    int ans = (n - 1) / (k - 1);
    if(0 != (n - 1) % (k - 1))
    {
        ans += 1;
    }

    cout << ans;

    return 0;
}

D题

官方题解: https://img.atcoder.jp/arc099/editorial.pdf

#include<iostream>
using namespace std;

typedef long long LL;

double s(LL n)
{
    LL x = n;
    LL y = 0;
    while (x)
    {
        y += x % 10;
        x /= 10;
    }

    return (double)n / y;
}

int main()
{
    LL K;
    LL n = 1;
    LL x = 1;

    cin >> K;

    for (int i = 0; i < K; i++)
    {
        cout << n << endl;
        if (s(n + x) > s(n + x * 10))
        {
            x *= 10;
        }

        n += x;
    }

    return 0;
}

本文分享自微信公众号 - 海天一树(gh_de7b45c40e8b)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-06-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 小朋友学数据结构(5):顺序查找法

    查找是最常见的数据操作之一,也是数据结构的核心运算之一,其重要性不言而喻。 顺序查找是最简单的查找策略,对于小规模的数据,顺序查找是个不错的选择。

    海天一树
  • AtCoder Beginner Contest 100 完整解题报告

    https://beta.atcoder.jp/contests/abc100/tasks

    海天一树
  • 2017年海淀区信息学竞赛小学组详细答案

    海天一树
  • 2017icpc beijing-I题-Colored Nodes

    题意:给出n个点m条边 然后每个时间点,与这个位置相连的所有点就会变成这个点的颜色 比如时间1的时候就是以这个位置相连的点2 变成1的颜色同理如下,通过2个循环...

    柴银磊
  • 查找(上)

    AngelNH
  • cf449D. Jzzhu and Numbers(容斥原理 高维前缀和)

    答案=任意一种方案 - 至少有\(1\)位为\(1\)的方案 + 至少有两位为\(1\)的方案 - 至少有三位为\(1\)的方案

    attack
  • 【2020HBU天梯赛训练】7-30 树的遍历

    给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。

    韩旭051
  • TopcoderSRM679 Div1 250 FiringEmployees(树形dp)

    有一个 \(n\) 个点的树,每个点有点权(点权可能为负) ,求包含点\(1\)的最 大权连通子图(的权值和) 。 \(n \leqslant 2500\)

    attack
  • hdu 1598 find the most comfortable road(枚举+卡鲁斯卡尔最小生成树)

    find the most comfortable road Time Limit: 1000/1000 MS (Java/Others)    Memory ...

    Gxjun
  • 1478. 安排邮筒 Krains 2020-07-30 14:51:32 动态规划DFS数学

    思路:将这条街分为几块区域,每个区域安排一个邮筒。在一个区域中,要想邮筒到该区域所有房子的距离之和最小,邮筒应该安排在这些房子位置的中位数上,这时邮筒到它们的距...

    Krains

扫码关注云+社区

领取腾讯云代金券