• Problem 1002-2017 ACM/ICPC Asia Regional Shenyang Online


    • 网络赛:2017 ACM/ICPC Asia Regional Shenyang Online

    • 题目来源:cable cable cable

    • Problem Description:
      Connecting the display screen and signal sources which produce different color signals by cables, then the display screen can show the color of the signal source.Notice that every signal source can only send signals to one display screen each time.
      Now you have M display screens and K different signal sources(K≤M≤2^32−1). Select K display screens from M display screens, how many cables are needed at least so that any K display screens you select can show exactly K different colors.

    • Input
      Multiple cases (no more than 100), for each test case:
      there is one line contains two integers M and K.

    • Output
      Output the minimum number of cables N.

    • Sample Input
      3 2
      20 15

    • Sample Output
      4
      90

    • Hint


      As the picture is shown, when you select M1 and M2, M1 show the color of K1, and M2 show the color of K2.
      When you select M3 and M2, M2 show the color of K1 and M3 show the color of K2.
      When you select M1 and M3, M1 show the color of K1.

    • 题目分析:对于每个测试样例给两个整数,分别是M个display screens,K个different signal sources,(K≤M≤2^32−1),从M个screens中选出K个screens,在源头和屏幕之间连线,使得这K个屏幕可以显示出不同的K中颜色。
      连线只存在源头和屏幕之间。

    • 我的思路:
      首先,对于K个源点,先对K个屏幕连一条线,以K=3,M=4为例子:
      这里写图片描述
      每个源点选择一个屏幕进行连线,如下图:
      这里写图片描述
      这样会剩下(M-K)个屏幕在链接的时候一定会链接不同的源点,并且链接的源点一定是K个,因为在显示的时候是要求选择K个屏幕同时出现不同的颜色,如果链接的源点少于K个就会出现重复颜色。如下图:
      这里写图片描述
      最后,可以得到一个公式:
      需要的连线数目=K+(M-K)* K , 整理得K*(M+1)-K*K
      需要注意一下M,K的范围,需要用long long存,要不就是WA…..Orz

    • 完整代码:
    #include<stdio.h>
    int main(void)
    {
        long long M, K;
        while (scanf("%lld%lld", &M, &K) != EOF)
        {
            printf("%lld
    ", K*(M + 1) - K*K);
        }
        return 0;
    }
  • 相关阅读:
    Docker之Harbor
    idea 代码块编辑(批量列编辑)快捷键 -- idea version 2018 不常用
    mysql 去除表中重复的数据,保留id最小的数据信息
    打家劫舍(动态规划+滚动数组+取模运算优化)
    利用线程异步调用
    idea 2019激活码
    mysql导出PDM表结构并带有注释
    安装GO
    GO语言
    项目启动
  • 原文地址:https://www.cnblogs.com/FlyerBird/p/9052565.html
Copyright © 2020-2023  润新知