【2017 ACM/ICPC Asia Regional Shenyang Online 1002】hdu 6195 cable cable cable

10 篇文章 0 订阅

cable cable cable

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 70    Accepted Submission(s): 60


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( KM2321 ). 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,从M个screens中选出K个screens,在源头和屏幕之间连线,使得这K个屏幕可以显示出不同的K中颜色,连线只存在源头和屏幕之间

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

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

int main()
{
    ll m, k;
    while (cin >> m >> k)
    {
        ll ans = k * (m - k + 1);
        cout << ans << endl;
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值