欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

牛客编程巅峰赛S1第4场 - 青铜&白银

程序员文章站 2022-05-14 10:03:40
...

牛客编程巅峰赛S1第4场 - 青铜&白银
A-组合数第k小

https://ac.nowcoder.com/acm/contest/6221/A
牛牛想知道在所有不同的组合数值中,第k小的组合数值是多少呢。给定一个k,返回第k小的组合数值。
牛客编程巅峰赛S1第4场 - 青铜&白银
C++
这就不用多讲了吧,组合数从1-1e9都有。

class Solution {
public:
    /**
     * 
     * @param k int整型 
     * @return int整型
     */
    int kthSamllest(int k) {
        // write code here
        return k;
    }
};

B-浅尝辄止
链接:https://ac.nowcoder.com/acm/contest/6221/B
来源:牛客网

牛客编程巅峰赛S1第4场 - 青铜&白银
牛客编程巅峰赛S1第4场 - 青铜&白银
C++
这道题首先要推理出一个坐标公式n/(n/i)
表如下:
牛客编程巅峰赛S1第4场 - 青铜&白银
会发现这个坐标内的数字都是相同的,因为向下取整,所以除数的整数部分结果都是相同的。

class Solution
{
public:
    /**
     *
     * @param n long长整型
     * @return int整型
     */
    int work(long long n)
    {
        // write code here
        long long sum=0;
        long long l,r;
        for(l=1; l<=n; l=r+1)
        {
            r=n/(n/l);
            sum+=(n/l)*(r-l+1);
            sum%=998244353;
        }
        return sum%998244353;
    }
};

C-Tree I
https://ac.nowcoder.com/acm/contest/6221/C
牛客编程巅峰赛S1第4场 - 青铜&白银
牛客编程巅峰赛S1第4场 - 青铜&白银
了解一下完全二叉树的性质,就可以知道(a[i], a[2i]) 和(a[i],a[2i+1]) 是树上的边。

class Solution
{
public:
    /**
     *
     * @param a int整型vector 表示这棵完全二叉树的Bfs遍历序列的结点编号
     * @return long长整型
     */
    long long tree1(vector<int>& a)
    {
        long long ans=0;
        for(int i=2; i<=a.size(); i++)
            ans+=a[i-1]^a[i/2-1];
        return ans;
    }
};
相关标签: 2020牛客巅峰赛