隐藏页面特效

2799 高校排名 加强版

2799 高校排名 加强版

 

 时间限制: 1 s
 空间限制: 128000 KB
 题目等级 : 钻石 Diamond
 
 
 
题目描述 Description

大学排名现在已经非常流行。在网上搜索可查到关于中国大学排行的各个方面的消息。

我们知道,在一大学里通常都由许多不同的(专业)组成,比如计算机系(简称CS);电子工程系(简称EE);外语系(简称FLS),等等。在一个大学里,其某一专业也许国内排前几,但其他专业却默默无闻。因此,大多数大学排行榜都有不同专业的详细的排名。

但是信息量如此巨大的光芒,却掩盖不了一个严重的问题:究竟哪个大学更好?幸运的是,波布博士提出了一个新概念绝对更好使得这个难题能被部分解决。

为了更好地阐述波布博士的新概念,我们举一个例子:

假设现在有三大学:X大学、Y大学、Z大学。每所大学都有三个专业:CSEEFLS。而这三所大学三个专业国际公认的排名如下:

CS排名:X>Y>ZX>Y表示XCS专业比Y的好)

EE排名:X>Z>Y

FLS排名:Z>X>Y

显然,X大学的每个专业都比Y大学好,所以X大学绝对比Y大学好。运用这个概念我们就能比较出一些大学的优劣。

现在波布博士有一份完整的各个大学不同专业的排名,他想找出这样的K个大学(U1U2U3…,Uk),Ui一定比Uji<j)好。

你能告诉波布博士这个K的最大值么?

输入描述 Input Description

第一行有两个整数NM0<N,M≤100),表示有N所大学和M项专业。

接下来的M行中,第i1<=i<=m)行有N所大学的编号Uj1≤j≤N,1≤Uj≤N),代表第i个专业N大学的排名(越在前的排名越前)。

输出描述 Output Description

输出文件应该一行,该行是K值的最大值。不需要多余的空格。

样例输入 Sample Input

3 3

1 2 3

1 3 2

3 1 2

样例输出 Sample Output

2

数据范围及提示 Data Size & Hint

0<N,M≤100

分类标签 Tags 点此展开 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

题解:

第一次用 面向对象

预处理一下

按总排名排一下序

求一下最长上升子序列

完成

(具体原因,自行脑补)

AC代码:

#include<cstdio> #include<algorithm> using namespace std; const int N=110; class node{ public: void modify(int i,int x){s=s+x;g[i]=x;} int at(int i){return g[i];} int sum(){return s;} int operator [](int i){return at(i);} private: int g[N],s; }a[N]; int n,m,ans,f[N]; bool cmp(node x,node y){ return x.sum()>y.sum(); } bool compare(node x,node y){ for(int i=1;i<=m;i++) if(x[i]>y[i]) return 0; return 1; } int main(){ scanf("%d%d",&n,&m); for(int i=1,v;i<=m;i++){ for(int j=1;j<=n;j++){ scanf("%d",&v); a[v].modify(i,j); } } sort(a+1,a+n+1,cmp); for(int i=1;i<=n;i++) f[i]=1; for(int i=1;i<=n;i++){ for(int j=1;j<i;j++){ if(compare(a[i],a[j])){ f[i]=max(f[i],f[j]+1); } } } for(int i=1;i<=n;i++) ans=max(ans,f[i]); printf("%d",ans); return 0; }

 

 


__EOF__

本文作者shenben
本文链接https://www.cnblogs.com/shenben/p/6006461.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   神犇(shenben)  阅读(329)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示