Description

每年的CQOI比赛结束后都会组织选手参加一次游玩活动。由于人数众多,通常会把选手分成两队出发。组委会为了和谐,想尽量把比较熟悉的选手分在同一队。我们用“友好度”(一个正整数值)来表示某两位选手之间的熟悉程度,友好度越大,则两名选手越熟悉。而“和谐度”定义为两队中熟悉程度最低的那对选手的友好度。

现在告诉你选手数量和一些选手之间的友好度,该如何分队(每组至少1人),才能让两队的和谐度达到最大。请你来帮助组委会完成这个任务。


Input

第一行为两个正整数n,分别选手的数目以及友好度大于0的选手对数,选手编号为1~n。,选手编号为1~n。

  
接下来是一个n*n的矩阵,矩阵的第i行第j列表示选手i和选手j的友好度c,当i==j时c=0,注意,矩阵一定是斜对称的。


Output

一个整数,表示最大和谐度,某些情况下可能为0。


Hint

2<=n<=1000


Solution

首先这道题是一道需要二分猜答案的二分图练习题。需要求的是最大和谐度,也就是最小友好度,那么就用邻接矩阵存每一段友好度(也就是每一条边的权值),dfs的时候将大于猜的那个答案的值的边跳过,小于这个值的边染色为1和2,判断小于这个答案的所有边是否能构成二分图。然后因为这个图不一定连通所以当vis等于0的时候就需要dfs一次。

定义一个L和R,把L赋初值为0,R赋初值为midx,当mid满足条件时就往右边猜,往右边猜就要把L更新成mid+1,否则就往左边猜,把R更新成mid-1,最后当L=R的时候while循环退出输出ans,程序结束。

注意事项:
1.g[s][q]>=mid和s==q的时候都需要跳过,只有到遇到vis的值为1且两个端点颜色相等的时候就return false,或者它的子图不连通的时候return false。
2.每一次check(mid)之前要把color数组和vis数组清零避免爆了(。)
3.猜答案的时候跳L和R要+1和-1

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#define maxn 1005
using namespace std;
int n,midx,midn,ans;
bool flag;
int g[maxn][maxn],color[maxn];
bool vis[maxn];
void init(){scanf("%d",&n);for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){scanf("%d",&g[i][j]);}}
}
bool dfs(int s,int c,int mid){color[s]=c;vis[s]=true;for(int q=1;q<=n;q++){if(g[s][q]>=mid)continue;if(s==q)continue; if(vis[q]){if(color[s]==color[q])return false;}else if(dfs(q,3-c,mid)==false)return false;}return true;
}
void tomid(){for(int q=1;q<=n;q++){for(int p=1;p<=n;p++){midx=max(midx,g[q][p]);}}midn=0;
}
bool check(int mid){memset(color,0,sizeof(color));memset(vis,0,sizeof(vis));for(int i=1;i<=n;i++)if(!vis[i])if(!dfs(i,1,mid)) return false;return true;
}
int main(){init();tomid();int mid=(midx+midn)/2;int L=0,R=midx;while(L<=R){mid=(L+R)>>1;if(check(mid)){ans=mid;L=mid+1;}else R=mid-1;}printf("%d\n",ans);return 0;
}

转载于:https://www.cnblogs.com/virtual-north-Illya/p/10045022.html

【训练题】分队 P1672相关推荐

  1. 二级计算机为让利消费者,计算机二级office题库训练题(2)

    D.计算机病毒是一个特殊的寄生程序 15. 以下关于编译程序的说法正确的是( ). A.编译程序属于计算机应用软件,所有用户都需要编译程序 B.编译程序不会生成目标程序,而是直接执行源程序 C.编译程 ...

  2. 职称计算机windows 7,2017职称计算机考试Windows训练题

    2017职称计算机考试Windows训练题 考试考点往往贯穿在平时我们练习的习题中,下面是小编给大家提供的职称计算机考试Windows训练题,大家可以参考练习,更多习题练习请关注应届毕业生考试网. 1 ...

  3. c语言编程思维训练50题,c语言逻辑思维训练题一

    c语言逻辑思维训练题一 (3页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.90 积分 要求:用java实现下面的所有题目,2012年11月1日提交 ...

  4. js逻辑训练题_二建冲刺必刷300题!精选历年真题+母子题+模考易错题!

    订阅公众号,回复[口诀],获取完整版实务口诀 你是不是常常疑惑为什么同样在做题,同样熬通宵,同样很努力,为什么有人顺利拿证,有人却因几分之差黯然落榜? 因为二建不仅拼努力的程度,更要拼对精准二建信息的 ...

  5. c语言中a lt 1e-9,年9月计算机二级考试C语言强化训练题

    年9月计算机二级考试C语言强化训练题 为了使广大学员在备战计算机二级考试时更快的掌握相应知识点,小编在此精选了计算机二级C语言的练习题供学员参考,大家要抓紧时间备考,祝大家备考愉快,梦想成真. 一.单 ...

  6. 计算机考试dw操作题,职称计算机考试Dreamweaver训练题

    职称计算机考试Dreamweaver训练题 在考试备考中,大家要多进行习题的练习,以保证知识的灵活运用,下面是小编给大家提供的职称计算机考试Dreamweaver训练题,大家可以参考练习. 训练题一: ...

  7. 为什么c语言乘除法优先级低,C语言训练题.docx

    C语言训练题 C语言训练题1.表达式:(int)((double)9/2)- 9%2 的值是A) 0B) 3C) 4D) 5 参考答案:B[解析]先将整型数据9强制转换成double型,然后除以2得到 ...

  8. 职称计算机怎么练,2017职称计算机windows操作训练题

    2017职称计算机windows操作训练题 导语:一些基于windows系统的操作是每个职称计算机考生都必须了解的,下面是小编给大家提供的职称计算机windows操作训练题,大家可以参考练习,更多习题 ...

  9. 2022年执法资格通用法律知识考试判断题专项训练题及答案

    题库来源:优题宝公众号 2022年执法资格通用法律知识考试判断题专项训练题及答案,由优题宝公众号根据最新执法资格通用法律知识考试大纲与历年执法资格通用法律知识考试真题汇总编写,包含执法资格通用法律知识 ...

  10. 计算机二级考试怎么练题库,计算机二级考试单选题训练题库

    计算机二级考试单选题训练题库 计算机二级考试是全国计算机等级考试(National Computer Rank Examination,简称NCRE)四个等级中的一个等级,考核计算机基础知识和使用一种 ...

最新文章

  1. Flask显示图片并设置图片的缓存时间
  2. Kubernetes — PV、PVC
  3. nmap脚本(nse)原理和编写
  4. 八皇后问题(递归+非递归)
  5. stdthread(2)创建
  6. 用CRF做命名实体识别——NER系列(三)
  7. Linux系统TCP内核参数优化总结
  8. uva 753(网络流最大流)
  9. 你的DNA都会玩摇滚了,你却还是个音痴
  10. 富勒wms系统里的定时器id_为什么物流行业非常推崇仓库管理系统?
  11. 《软件工程导论》之总体设计
  12. 私服游戏推荐服务器三丰云服务器
  13. Error: Some file crunching failed
  14. 笔记:《高效能人士的七个习惯》第一章 由内而外全面造就自己
  15. 山东理工ACM 1151 C语言实验——输出字符串
  16. 5G网络中的缩略语与简写
  17. 微信小程序在组件中刷新当前页面
  18. 生产用料清单-在制材料数量
  19. 【小贴士】合肥工业大学本科毕业答辩tips
  20. SI512国产13.56MHz低功耗NFC前端芯片替代PN532/PN512

热门文章

  1. 【POJ】2296 Map Labeler
  2. centos---centos配置svn
  3. LeetCode8. 字符串转换整数 (atoi)
  4. 问题 B: 编写函数:Swap (I) (Append Code)
  5. 问题 H: Search Problem (V)
  6. delay 芯片时序output_set_input_delay/set_output_delay
  7. python删除行_python 删除文件中指定行
  8. ttshop是PHP开发的,商家应该如何选择商城系统?
  9. Cover开启投票是否对Yearn漏洞提供保险
  10. BarnBridge更新路线图计划或于Q2推出SMART Alpha