高校排名 加强版(codevs 2799)
大学排名现在已经非常流行。在网上搜索可查到关于中国大学排行的各个方面的消息。
我们知道,在一大学里通常都由许多不同的“系”(专业)组成,比如计算机系(简称CS);电子工程系(简称EE);外语系(简称FLS),等等。在一个大学里,其某一专业也许国内排前几,但其他专业却默默无闻。因此,大多数大学排行榜都有不同专业的详细的排名。
但是信息量如此巨大的光芒,却掩盖不了一个严重的问题:究竟哪个大学更好?幸运的是,波布博士提出了一个新概念“绝对更好”,使得这个难题能被部分解决。
为了更好地阐述波布博士的新概念,我们举一个例子:
假设现在有三大学:X大学、Y大学、Z大学。每所大学都有三个专业:CS,EE,FLS。而这三所大学三个专业国际公认的排名如下:
CS排名:X>Y>Z(X>Y表示X的CS专业比Y的好)
EE排名:X>Z>Y
FLS排名:Z>X>Y
显然,X大学的每个专业都比Y大学好,所以X大学绝对比Y大学好。运用这个概念我们就能比较出一些大学的优劣。
现在波布博士有一份完整的各个大学不同专业的排名,他想找出这样的K个大学(U1,U2,U3…,Uk),Ui一定比Uj(i<j)好。
你能告诉波布博士这个K的最大值么?
第一行有两个整数N,M(0<N,M≤100),表示有N所大学和M项专业。
接下来的M行中,第i(1<=i<=m)行有N所大学的编号Uj(1≤j≤N,1≤Uj≤N),代表第i个专业N大学的排名(越在前的排名越前)。
输出文件应该一行,该行是K值的最大值。不需要多余的空格。
3 3
1 2 3
1 3 2
3 1 2
2
0<N,M≤100
/*
不禁被自己的2货行为所折服啊
一看题目就知道是求最长路,然后就想到了记忆化搜索,犯了两个错误
一是题目读错了,m和n循环式写反了(这样都拿了70分……)
二是记忆化搜索忘记返回值了(还以为记忆化过不了,快吓死了……)
快NOIP了,不能犯低级错误啊!!!
*/
#include<cstdio>
#include<iostream>
#include<cstring>
#define N 110
using namespace std;
int a[N][N],in[N],head[N],f[N],n,m,cnt,ans;
struct node
{
int v,pre;
};node e[N*N];
int read()
{
int num=,flag=;char c=getchar();
while(c<''||c>''){if(c=='-')flag=-;c=getchar();}
while(c>=''&&c<=''){num=num*+c-'';c=getchar();}
return num*flag;
}
void add(int x,int y)
{
++cnt;e[cnt].v=y;
e[cnt].pre=head[x];
head[x]=cnt;
}
int dfs(int x)
{
if(!head[x])return ;
if(f[x])return f[x];//忘记加这个了,呃呃呃……
for(int i=head[x];i;i=e[i].pre)
f[x]=max(f[x],dfs(e[i].v)+);
return f[x];
}
int main()
{
freopen("jh.in","r",stdin);
n=read();m=read();
for(int i=;i<=m;i++)
for(int j=;j<=n;j++)
{
int x;scanf("%d",&x);
a[x][i]=j;
}
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
if(i!=j)
{
bool flag=false;
for(int k=;k<=m;k++)
if(a[i][k]>a[j][k])
{
flag=true;break;
}
if(!flag)add(i,j),in[j]++;
}
for(int i=;i<=n;i++)
if(!in[i])
ans=max(ans,dfs(i));
printf("%d",ans);
return ;
}
高校排名 加强版(codevs 2799)的更多相关文章
- excel acm 高校排名(hdoj)
其实写一个程序是最方便的... 不用每次进行很多次操作. 当然,能获得后台的数据更好…… e.g. 链接: https://pan.baidu.com/s/1a7s85oaKGam1-0mJ2v39u ...
- 数字三角形W(加强版) codevs 2189
2189 数字三角形W 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题目描述 Description 数字三角形 要求走到最后mod 100最大 输入描述 Inpu ...
- 数据分析:中国高校更名历史 Python
上周领了新任务,做国内高校改名历史的统计,这个挺有意思,以下是我任务完成过程,和大家分享. 一. 数据收集 数据需求:目前已有高校校名,各高校改名历史记录 高校校名数据来源:尝试从高校排名网站(iPI ...
- Python爬虫练习:爬取800多所大学学校排名、星级等
前言 国内大学最新排名,北大反超,浙大仅第四,中科大跌至第八 时隔五年,"双一流"大学即将迎来首次大考,这也是继改变高校评断标准之后,第一次即将以官方对外发布,自然是引来了许多人的 ...
- Python爬虫与数据图表的实现
要求: 1. 参考教材实例20,编写Python爬虫程序,获取江西省所有高校的大学排名数据记录,并打印输出. 2. 使用numpy和matplotlib等库分析数据,并绘制南昌大学.华东交通大学.江西 ...
- python输出格式对齐问题
采用.format打印输出时,可以定义输出字符串的输出宽度,在 ':' 后传入一个整数, 可以保证该域至少有这么多的宽度. 用于美化表格时很有用. >>> table = {'Goo ...
- Leetcode的SQL题解:185. 部门工资前三高的员工
题目 查询部门工资前三高的员工. 我用的数据库是oracle. 下面是数据表的信息. Employee表数据: | ID | NAME | Salary | DepartmentId | | -- | ...
- python 输出对齐
几种不同类型的输出对齐总结: 先看效果: 采用.format打印输出时,可以定义输出字符串的输出宽度,在 ':' 后传入一个整数, 可以保证该域至少有这么多的宽度. 用于美化表格时很有用. >& ...
- USNews2018世界大学1250所排行榜
USNews2018世界大学1250所排行榜(最全版) 中外学术情报<更多内容2017-10-27 09:00:00 10月24日,USNews发布2018世界大学排行榜,来自全球74个国家或地 ...
随机推荐
- 【PHP面向对象(OOP)编程入门教程】16.__toString()方法
我们前面说过在类里面声明“__”开始的方法名的方法(PHP给我们提供的),都是在某一时刻不同情况下自动调用执行的方 法,“__toString()”方法也是一样自动被调用的,是在直接输出对象引用时自动 ...
- C#之LinQ数据库
一:与LINQ有关的语言特性 1.隐式类型 (1)源起 在隐式类型出现之前, 我们在声明一个变量的时候, 总是要为一个变量指定他的类型 甚至在foreach一个集合的时候, 也要为遍历的集合的元素,指 ...
- Redis学习笔记二:单机数据库的实现
1. 数据库 服务器中的数据库 Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构的db数组中,db数组的每个项都是一个redis.h/redisDb结构,每个r ...
- Android入门之GPS定位详解
一.LocationManager LocationMangager,位置管理器.要想操作定位相关设备,必须先定义个LocationManager. LocationManger locationMa ...
- git上传github上
1.git init --初始化git (选择文件夹) 2.git add README --添加项目(项目的文件夹) 3.git commit -m "SSM(360)" ...
- UIView的layoutSubviews和drawRect
原文: UIView的layoutSubviews和drawRect UIView的setNeedsDisplay和setNeedsLayout方法.首先两个方法都是异步执行的.setNeedsDis ...
- Android学习笔记(三)——初探Intent
//此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! Intent 是 Android 程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作 ...
- Oracle sysdate 时间加减
加法 select sysdate,add_months(sysdate,12) from dual; --加1年 select sysdate,add_months(sysdate,1 ...
- FTP 传输中的主动模式和被动模式
最近做一个项目用到FTP和其它系统进行文件传输,结果在FTP网络连接的问题上花了很多时间,由于太久没搞多FTP,忘记了FTP不单单开放21端口,客户端采用不同连接模式对网络有不同.在此重温一下FTP的 ...
- Longest Increasing Path in a Matrix
Given an integer matrix, find the length of the longest increasing path. From each cell, you can eit ...