1. 程式人生 > >【HDU6195 2017 ACM ICPC Asia Regional Shenyang Online B】【水題 匹配】cable cable cable M個格子任選K個放K個物品的最小連邊匹配

【HDU6195 2017 ACM ICPC Asia Regional Shenyang Online B】【水題 匹配】cable cable cable M個格子任選K個放K個物品的最小連邊匹配

cable cable cable

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


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.
Source
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<string>
#include<ctype.h>
#include<math.h>
#include<set>
#include<map>
#include<vector>
#include<queue>
#include<bitset>
#include<algorithm>
#include<time.h>
using namespace std;
void fre() { freopen("c://test//input.in", "r", stdin); freopen("c://test//output.out", "w", stdout); }
#define MS(x, y) memset(x, y, sizeof(x))
#define ls o<<1
#define rs o<<1|1
typedef long long LL;
typedef unsigned long long UL;
typedef unsigned int UI;
template <class T1, class T2>inline void gmax(T1 &a, T2 b) { if (b > a)a = b; }
template <class T1, class T2>inline void gmin(T1 &a, T2 b) { if (b < a)a = b; }
const int N = 0, M = 0, Z = 1e9 + 7, inf = 0x3f3f3f3f;
template <class T1, class T2>inline void gadd(T1 &a, T2 b) { a = (a + b) % Z; }
int casenum, casei;
int main()
{
	UL M, K;
	while (~scanf("%llu%llu", &M, &K))
	{
		UL ans = K * (M - K + 1);
		printf("%llu\n", ans);
	}
	return 0;
}
/*
【trick&&吐槽】
敢猜敢過。~沒加,收穫SB的 OLE

【題意】
有M個格子,有K個物品。我們希望在格子與物品之間連數量儘可能少的邊,使得——不論是選出M個格子中的哪K個,都可以與K個物品恰好一一匹配。

【分析】
看樣例可以猜答案,答案就是(M - K + 1) * K

從這個答案去猜測原因——
每個物品,都要向(M - K + 1)個格子連去一條邊,我們會丟棄M - K個格子,但總會剩下一個格子是與這個物品連邊的。

但是還要完成一一匹配的關係。
這個要怎麼保證呢?如果讓我們構造並輸出一組方案怎麼辦?

連邊方式就是:
1 -> [1, M - K + 1]
2 -> [2, 1 + M - K + 1]
3 -> [3, 2 + M - K + 1]
K -> [K, M]

這樣不論選哪些格子,第一個物品總是能匹配第一個格子,第二個物品總是能匹配第二個格子…… 所以總能合法匹配!

【時間複雜度&&優化】
O(1)

*/


相關推薦

HDU6195 2017 ACM ICPC Asia Regional Shenyang Online B 匹配cable cable cable M格子任選KK物品匹配

cable cable cable Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 152    Accep

hdu6195 cable cable cable(from 2017 ACM/ICPC Asia Regional Shenyang Online)

數量 rom ret int cstring 格子 sca () pre 最開始一直想不通,為什麽推出這個公式,後來想了半天,終於想明白了。 題目大意是,有M個格子,有K個物品。我們希望在格子與物品之間連數量盡可能少的邊,使得——不論是選出M個格子

2017 ACM/ICPC Asia Regional Shenyang Online:number number number hdu 6198矩陣快速冪

cpc 相同 exp -128 integer regional test atom online Problem Description We define a sequence F:? F0=0,F1=1;? Fn=Fn?1+Fn?2 (n≥2).Give you

2017 ACM/ICPC Asia Regional Shenyang Online 記錄

接下來 沒有 min pair gic 不下來 node long 建立 這場比賽全程心態爆炸…… 開場腦子秀逗簽到題WA了一發。之後0貢獻。 前期狀態全無 H題想復雜了,寫了好久樣例過不去。 然後這題還是隊友過的…&hell

hdu6201 transaction transaction transaction(from 2017 ACM/ICPC Asia Regional Shenyang Online)

col cti name from .com main 技術 const int 最開始一直想著最短路,不過看完題解後,才知道可以做成最長路。唉,還是太菜了。 先上圖: 只要自己添加兩個點,然後如此圖般求最長路即可,emmm,用SPFA可以,迪傑斯特拉也可以,或者別

HDU 6198(2017 ACM/ICPC Asia Regional Shenyang Online)

unique string -a return pri 規律 line namespace 個數 思路:找規律發現這個數是斐波那契第2*k+3項-1,數據較大矩陣快速冪搞定. 快速冪入門第一題QAQ #include <stdio.h> #include

HDU 6205(尺取法)2017 ACM/ICPC Asia Regional Shenyang Online

== 左右 ctype sync %d esp log type show 題目鏈接 emmmm...思路是群裏群巨聊天講這題是用尺取法.....emmm然後就沒難度了,不過時間上3000多,有點.....盜了個低配本的讀入掛發現就降到2800左右, 翻了下,發現神犇Cla

2017 ACM/ICPC Asia Regional Shenyang Online array array array

write else for its color 判斷 clas namespace ret 2017-09-15 21:05:41 writer:pprp 給出一個序列問能否去掉k的數之後使得整個序列不是遞增也不是遞減的 先求出LIS,然後倒序求出最長遞減子序列長度,然後

[尺取法]2017 ACM/ICPC Asia Regional Shenyang Online 1012

更正一下,原來的程式碼用的結構體,比賽時記憶體卡過去了,現在改成陣列,時間記憶體都減少了。謝謝!@小白c 比賽時的提交: 修正後: 題目: 題意&分析: 題目的意思

Problem 1002-2017 ACM/ICPC Asia Regional Shenyang Online

Problem Description: Connecting the display screen and signal sources which produce different col

2015 ACM/ICPC Asia Regional Shenyang Online & HDU 5451 Best Solver迴圈節+數論||共軛矩陣冪+廣義斐波那契降冪

通過一道名為So easy!的共軛構造矩陣冪取模的問題來聯想到這個題,不難發現應該用同樣的套路來進行共軛構造。 但是問題來了,指數過分強大,取模數超小,於是一開始考慮尤拉降冪再矩陣快速冪。資料一大,發現答案全錯!後請教得知無理數無法尤拉降冪。 那麼就只有

2017 ACM/ICPC Asia Regional Qingdao Onlinesolved:7 / 11

hdu 6206 Apple(計算幾何+java高精度) 題意:給你三個點,保證不再同一條直線上,再給你一點,問你是否在這三個點形成的圓外。 思路:用java套個板子即可。就是求出三個點外接圓的圓心和半徑判斷下。 import java.mat

2017 ACM/ICPC Asia Regional Qingdao Online - 1011 A Cubic number and A Cubic Number

lin con namespace out 是我 通過 asi syn 兩個 2017-09-17 17:12:11 writer:pprp 找規律,質數只有是兩個相鄰的立方數的差才能形成,公式就是3 * n * (n + 1) +1, 判斷讀入的數是不是滿足 這次依然只是

2017 ACM/ICPC Asia Regional Qingdao Online

bottom subst 中國 == key 機房 mil turn total The Dominator of Strings Time Limit: 3000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (

hdu6206 Apple 2017 ACM/ICPC Asia Regional Qingdao Online

href long dao nat cep 公式 ane left ref 地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=6206 題目: Apple Time Limit: 1000/1000 MS (Java

HDU-2017 ACM/ICPC Asia Regional Qingdao Online-1003-The Dominator of Strings

http cpc region dom migo style nat str target iyo盼泊lb匣教5http://t.docin.com/csui81548 J癱1FVL冒傲7XN黑17http://t.docin.com/sgmcj60587 3PF煽段3

2017 ACM/ICPC Asia Regional Beijing Online

nic matrix div poll col gcd code 預處理 spa A Visiting Peking University 直接模擬 B Reverse Suffix Array unsolved C Matrix 預處理每列前綴和以及每個每個行區間的每列的

2014 ACM/ICPC Asia Regional 北京 Online

little stc within sin multipl port where appears greate G - Grade Ted is a employee of Always Cook Mushroom (ACM). His boss Matt give

2015 ACM/ICPC Asia Regional Hefei Online I - Find a path(推公式+dp)

題目連結:傳送門   題意:在n*m的平面上,每個點都具有貢獻,問你從(1,1)到(n,m)找到一條路徑(只能往上或者往右),使得路徑上的點的方差最小。詢問最小的方差值為多少。   解決方法:首先根據簡化所給公式可以推出一個式子。推出式子的步驟如下 公式

I Count Two Three (2016 ACM/ICPC Asia Regional Qingdao Online 1001)

I Count Two Three  I will show you the most popular board game in the Shanghai Ingress Resistance Team. It all started several months ago