【ACUMTB團隊賽】第一周題解 -开发者知识库

【ACUMTB團隊賽】第一周題解 -开发者知识库,第1张

周賽地址:https://vjudge.net/contest/152769#overview

 

A題:

題意:Nikita想選擇兩門課A和B,使得他想要選的所有學位能被這兩門課划分成4個集合,分別是:有AB,有B沒A,有A沒B,沒AB的,並求出這些集合的最大值的最小值。

思路:xjb模擬,才1e6的操作量……

【ACUMTB團隊賽】第一周題解 -开发者知识库,第2张
 1 #include <iostream>
2 #include <cstdio>
3 #include <cstring>
4
5 using namespace std;
6
7 const int maxn=105;
8
9 int mp[maxn][maxn];
10
11 int main()
12 {
13 int mx=0x7fffffff;
14 int n,m;
15 scanf("%d %d",&n,&m);
16 for(int i=1;i<=n;i ){
17 for(int j=1;j<=m;j ){
18 scanf("%d",&mp[i][j]);
19 }
20 }
21 int u=0,v=0;
22 for(int i=1;i<=m;i ){
23 for(int j=i 1;j<=m;j ){
24 int a=0,b=0,c=0,d=0;
25 for(int k=1;k<=n;k ){
26 if(mp[k][j]==0&&mp[k][j]==mp[k][i]) a ;
27 else if(mp[k][j]==1&&mp[k][j]==mp[k][i]) b ;
28 else if(mp[k][j]==0&&mp[k][i]==1) c ;
29 else if(mp[k][j]==1&&mp[k][i]==0) d ;
30 }
31 int tem=max(a,max(b,max(c,d)));
32 if(mx>tem){
33 mx=tem;
34 u=i,v=j;
35 }
36 }
37 }
38 printf("%d\n",mx);
39 printf("%d %d",u,v);
40 return 0;
41 }

最佳答案:

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复