高校排名 加强版(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)编程入门教程】14.final关键字的应用
这个关键字只能用来定义类和定义方法, 不能使用final这个关键字来定义成员属性,因为final是常量的意思,我们在PHP里定义常量使用的是define()函数,所以不能使用final来定义成员属性. ...
- Mac Pro 开机自启动 PHP-FPM,Nginx,MySql 等软件
在Mac下安装好了PHP开发环境(PHP-FPM,Nginx,MySql), 想设置成开机自启动,原来以为和一般的Linux系统一样,也是在rc.d这样目录放置启动脚本.在网上查了一些资料,发现苹果应 ...
- An error I have completed recently
在上学期开发javaweb的项目中,遇见一个字符串池的问题. 大致如下: 在上传一篇文章的时候,通过字符串的截取获取该篇文章的后缀名,如doc.pdf.txt....然后规定只能上传pdf和doc格式 ...
- Java中Runnable和Thread
java中有两种实现多线程的方式:一种是继承Thread类,一种是实现Runnable接口. 1.java启动线程为什么使用start函数呢? 在JDK的安装路径下,src.zip是全部的java源程 ...
- BZOJ2466——[中山市选]树
1.题目大意:给你一棵树,树的每个节点都有一个权值,是0或1,最开始都是0,你可以做一种修改操作,就是把一个节点和它相邻的 节点的权值取反,问最少几次修改能把所有节点的权值变得都是1,最多100个节点 ...
- 揭露QPS增高后的秘密
导读 很多人在实际的开发中害怕系统的QPS增高,因为觉得QPS太高会导致系统挂掉;基于这种心理会想着尽量的降低系统的请求量,甚至有人会将很多处理放置到服务中来处理,这样外部发一起请求,服务就把所有的业 ...
- [lintcode] Binary Tree Maximum Path Sum II
Given a binary tree, find the maximum path sum from root. The path may end at any node in the tree a ...
- 从Objective-C转战C++ Android平台开发实践(C++/Java)
是否使用虚拟方法 最好在不用“virtual”关键字的情况下声明所有cpp成员方法 但是在写CPP头文件时,请检查有没有父类的方法被当前的工作覆盖.如果有,请确保将这些方法改为虚拟方法. 如果从父类继 ...
- php学习笔记(1)-----基础
语法 <?PHP //code here?> 变量以$开头 字符串并置运算符 . echo $txt1 . " " . $txt2计算字符串长度 strlen() 空格 ...
- UDS帧传输
说明 在UDS协议中,其中有一点我视作为基础,即帧传输.也即是数据传输这一块,在UDS的帧传输中,分为4种: SF单帧 FF第一帧 CF连续帧 FC流控制帧 首先,我们抛开以上的东西,假设一个销售商( ...