标签:
本来想找一道网络流的题来着,结果这道题越看越不对劲,总觉得这题存在不用网络流的解法
看了题解区以后坚定了自己的猜想
1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 5 const int maxN=51; 6 7 int boy[maxN]={0}; 8 int girl[maxN]={0}; 9 10 char map[maxN]; 11 int N,K; 12 13 int main() 14 { 15 scanf("%d%d",&N,&K); 16 for(int i=0;i<N;i++) 17 { 18 scanf("%s",map); 19 for(int j=0;j<N;j++) 20 if(map[j]==‘Y‘) { boy[i+1]++; girl[j+1]++; } 21 } 22 int ans=10000000; 23 24 using std::min; 25 for(int i=1;i<=N;i++) 26 ans=min(ans,min(boy[i],girl[i])); 27 printf("%d\n",min(ans+K,N)); 28 return 0; 29 }
代码相当短,就是建立二分图,喜欢的人之间相互连接,然后找出其中度最小的节点
舞会的最长时间取决于“最不想跳”的人,所以不妨把它理解成一种短板效应
标签:
原文地址:http://www.cnblogs.com/Onlynagesha/p/5389464.html