【贪心】AtCoder Grand Contest 018 B - Sports Festival
假设我们一开始选取所有的运动项目,然后每一轮将当前选择人数最多的运动项目从我们当前的项目集合中删除,尝试更新答案。容易发现只有这样答案才可能变优,如果不动当前选取人数最多的项目,答案就不可能变优。
我这最外面那个二分是卖萌的。
#include<cstdio>
#include<set>
#include<cstring>
#include<algorithm>
using namespace std;
typedef pair<int,int> Point;
set<Point>S[310];
int n,m,a[310][310],b[310][310],cnts[310],ans=2147483647;
int main(){
// freopen("b.in","r",stdin);
scanf("%d%d",&n,&m);
for(int i=1;i<=n;++i){
for(int j=1;j<=m;++j){
scanf("%d",&a[i][j]);
b[i][a[i][j]]=j;
}
}
int l=1,r=n;
while(l<r){
int mid=(l+r>>1);
for(int j=1;j<=n;++j){
S[j].clear();
for(int k=1;k<=m;++k){
S[j].insert(make_pair(b[j][k],k));
}
}
for(int j=1;j<=m;++j){
memset(cnts,0,sizeof(cnts));
for(int k=1;k<=n;++k){
++cnts[(*S[k].begin()).second];
}
int maxx=-1,whi;
for(int k=1;k<=m;++k){
if(cnts[k]>maxx){
maxx=cnts[k];
whi=k;
}
}
if(maxx<=mid){
r=mid;
goto OUT;
}
for(int k=1;k<=n;++k){
S[k].erase(make_pair(b[k][whi],whi));
}
}
l=mid+1;
OUT:;
}
printf("%d\n",l);
// for(int i=1;i<=m;++i){
// for(int j=1;j<=n;++j){
// S[j].clear();
// S[j].insert(make_pair(b[j][i],i));
// }
// for(int j=1;j<=m;++j) if(j!=i){
// memset(cnts,0,sizeof(cnts));
// for(int k=1;k<=n;++k){
// S[k].insert(make_pair(b[k][j],j));
// ++cnts[(*S[k].begin()).second];
// }
// int maxx=-1,whi;
// for(int k=1;k<=m;++k){
// if(cnts[k]>maxx){
// maxx=cnts[k];
// whi=k;
// }
// else if(cnts[k]==maxx && k==i){
// whi=k;
// }
// }
// if(whi!=i){
// for(int k=1;k<=n;++k){
// S[k].erase(make_pair(b[k][j],j));
// }
// }
// else{
// ans=min(ans,maxx);
// }
// }
// }
// printf("%d\n",ans);
return 0;
}
【贪心】AtCoder Grand Contest 018 B - Sports Festival的更多相关文章
- 【贪心】【堆】AtCoder Grand Contest 018 C - Coins
只有两维的时候,我们显然要按照Ai-Bi排序,然后贪心选取. 现在,也将人按照Ai-Bi从小到大排序,一定存在一个整数K,左侧的K个人中,一定有Y个人取银币,K-Y个人取铜币: 右侧的X+Y+Z-K个 ...
- AtCoder Grand Contest 018 D - Tree and Hamilton Path
题目传送门:https://agc018.contest.atcoder.jp/tasks/agc018_d 题目大意: 给定一棵\(N\)个点的带权树,求最长哈密顿路径(不重不漏经过每个点一次,两点 ...
- AtCoder Grand Contest 018 A
A - Getting Difference Time limit時間制限 : 2sec / Memory limitメモリ制限 : 256MB 配点 : 300 点 問題文 箱に N 個のボールが入 ...
- AtCoder Grand Contest 018 E Sightseeing Plan
题意: 给定三个矩形,选定三个点,答案加上第一个点出发经过第二个点在第三个点结束的方案数,只能往右或往下走. 折腾了我半个多下午的题. 设三个矩形为$A,B,C$一个思路是枚举$B$的那个点$s(x, ...
- 【GCD】AtCoder Grand Contest 018 A - Getting Difference
从大到小排序,相邻两项作差,求gcd,如果K是gcd的倍数并且K<=max{a(i)},必然有解,否则无解. 可以自己手画画证明. #include<cstdio> #include ...
- AtCoder Grand Contest 018 A - Getting Difference
A - Getting Difference Time limit : 2sec / Memory limit : 256MB Score : 300 points Problem Statement ...
- AtCoder Grand Contest 018题解
传送门 \(A\) 根据裴蜀定理显然要\(k|\gcd(a_1,...,a_n)\),顺便注意不能造出大于\(\max(a_1,...,a_n)\)的数 int n,g,k,x,mx; int mai ...
- AtCoder Grand Contest 011
AtCoder Grand Contest 011 upd:这篇咕了好久,前面几题是三周以前写的... AtCoder Grand Contest 011 A - Airport Bus 翻译 有\( ...
- AtCoder Grand Contest 009
AtCoder Grand Contest 009 A - Multiple Array 翻译 见洛谷 题解 从后往前考虑. #include<iostream> #include< ...
随机推荐
- vue实现微信对话
因为项目中需要实现仿微信对话功能,于是抽空实现了下,主要是h5的canvas的把图片和文字绘制到画布上 原文来自我的个人博客:http://lvhww.com/index.php/archives/6 ...
- idea 调试远程tomcat
# ----- Execute The Requested Command ----------------------------------------- JAVA_OPTS="-age ...
- foreign key constraint fails错误的原因
建表:CREATE TABLE Course ( Cno Char(4) PRIMARY KEY, Cname Char(40), Cpno Char(4), Ccredit Int, FOREIGN ...
- Django rest framework 版本控制(源码分析)
基于上述分析 #2.处理版本信息 处理认证信息 处理权限信息 对用户的访问频率进行限制 self.initial(request, *args, **kwargs) #2.1处理版本信息 #versi ...
- python基础===如何优雅的写代码(转自网络)
本文是Raymond Hettinger在2013年美国PyCon演讲的笔记(视频, 幻灯片). 示例代码和引用的语录都来自Raymond的演讲.这是我按我的理解整理出来的,希望你们理解起来跟我一样顺 ...
- 网站服务器压力Web性能测试(4):服务器压力Web性能测试小结
1.Apache Bench,Webbench,http_load对网站压力Web性能进行测试时,为了得到更加客观和准确的数值,应该从远程访问.局域网访问和本地等多个方面进行全方位的测试.一般用127 ...
- Sql Server中常用函数replicate
SQL常用函数之三 REPLICATE () 按指定次数重复字符表达式. 语法 REPLICATE ( character_expression, integer_expression) 参数 cha ...
- bzoj 1491
思路:先求出每两点之间的最短路,建出n个最短路径图,然后枚举起点终点和中间点,计算条数用到拓扑图dp... 看别人的方法很巧妙地用floyd在计算最短路的时候就可以直接计算条数啦... #includ ...
- 转:x64与x86的改变
http://tieba.baidu.com/p/1250470248 x64与x86的改变 硬件要求就是64位的CPU.操作系统也必须是64位的,如果在64位的CPU上安装了32位的操作系统,就算编 ...
- thinkphp之url的seo优化
1.网站url做seo优化的原因 SEO是由英文Search Engine Optimization缩写而来, 中文意译为“搜索引擎优化”.SEO是指通过对网站进行站内优化(网站结构调整.网站内容建设 ...