Java实现UVA10131越大越聪明(蓝桥杯每周一题)
10131越大越聪明(蓝桥杯每周一题)
[问题描述]
一些人认为,大象的体型越大,脑子越聪明。为了反驳这一错误观点,你想要分析一组大象的数据,找出尽量
多的大象组成一个体重严格递增但 IQ 严格递减的序列。
[输入]
输入包含若干大象的数据,每行一头大象,直到输入结束。每头大象的数据包括两个整数:第一个是以千克为
单位的体重,第二个是以整百为单位的 IQ 指数。两个整数均在 1 到 10000之间。输入最多包含 1000 头
大象。两头大象可能有相同的体重,或者相同的 IQ,甚至体重和 IQ 都相同。
[输出]
输出第一行应当包括一个整数 n,为找到的大象序列的长度。接下来的 n 行,每行包含一个正整数,表示一
头大象。用 W[i] 和 S[i] 表示输入数据中第 i 行的两个数,则若找到的这一序列为 a[1],a[2],
… ,a[n],则必须有:
W [a[1]] < W [a[2]] < … < W [a[n]] 和 S[a[1]] > S[a[2]] > … > S[a[n]]i
这里的 n 应当是最大可能值。所有不等关系均为严格不相等:体重严格递增,而 IQ 严格递减。
如果存在多组解,你的程序只需输出任何一个解。
[样例输入]
6008 1300
6000 2100
500 2000
1000 4000
1100 3000
6000 2000
8000 1400
6000 1200
2000 1900
[样例输出]
4
4
5
9
7
解释:符合题意的最长序列长度为4,按顺序是
第4行 1000 4000
第5行 1100 3000
第9行 2000 1900
第7行 8000 1400
欢迎评论,~~滑稽
import java.util.Scanner;
public class Demo102 {
static int []w = new int[1000];
static int []s = new int[1000];
static int n = 9;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
for (int i = 1; i <=9; i++)
{
w[i]=sc.nextInt();
s[i]=sc.nextInt();
}
int[] d = new int [1000];
d[9] = 1;
//dp的初始值设置的最后一位
//这里是把i从后向前
//其实我的dp数组是从前向后的,
//最后更新的就是从i=1,然后j》1《=n证明是整个数组
//这里如果把i从前向后,j就要从后向前,并且后面输出就需要从后向前 很烦
for (int i = n - 1; i >= 1; i--){
d[i] = 1;
for (int j = i + 1; j <= n; j++){
if (w[i]<w[j] && s[i]>s[j])
if (d[i] < d[j] + 1)
d[i] = d[j] + 1;
}
}
//find max
int start = 1;
for (int i = 2; i <= n; i++)
if (d[i] > d[start])start = i;
System.out.println(d[start]);
System.out.println(start);
for (int i = 1; i <=n;i++)
//这里在不断的让节点替换,也就是上面dp过程时候的逆推
if (w[start]<w[i] && s[start]>s[i] && d[start] == d[i] + 1)
{
System.out.println(i);
start = i;
}
}
}
Java实现UVA10131越大越聪明(蓝桥杯每周一题)的更多相关文章
- 蓝桥杯vip题阶乘计算
蓝桥杯vip题阶乘计算 详细题目 输入一个正整数n,输出n!的值. 其中n!=123*-*n. 算法描述 n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法.使用一个数组A来表示一个 ...
- 取球游戏_nyoj_518(博弈-蓝桥杯原题).java
取球游戏 时间限制: 1000 ms | 内存限制: 65535 KB 难度: 2 描述 今盒子里有n个小球,A.B两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下 ...
- Java实现 LeetCode 887 鸡蛋掉落(动态规划,谷歌面试题,蓝桥杯真题)
887. 鸡蛋掉落 你将获得 K 个鸡蛋,并可以使用一栋从 1 到 N 共有 N 层楼的建筑. 每个蛋的功能都是一样的,如果一个蛋碎了,你就不能再把它掉下去. 你知道存在楼层 F ,满足 0 < ...
- 【蓝桥杯真题】地宫取宝(搜索->记忆化搜索详解)
链接 [蓝桥杯][2014年第五届真题]地宫取宝 题目描述 X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签. 地宫的入口在左上角,出口在右下角. 小明被 ...
- java算法 蓝桥杯(题+答案) 压缩变换
10.压缩变换 (程序设计) 小明最近在研究压缩算法.他知道,压缩的时候如果能够使得数值很小,就能通过熵编码得到较高的压缩比.然而,要使数值很小是一个挑战. 最近,小明需要压缩一些正整数的序列,这些 ...
- java算法 蓝桥杯(题+答案) 方格填数
6.方格填数 (结果填空) 如下的10个格子 (如果显示有问题,也可以参看[图1.jpg]) 填入0~9的数字.要求:连续的两个数字不能相邻.(左右.上下.对角都算相邻) 一共有多少种可能的填数方案 ...
- 蓝桥杯 每周一练 第一周(3n+1问题)
[问题描述] 考虑如下的序列生成算法:从整数 n 开始,如果 n 是偶数,把它除以 2:如果 n 是奇数,把它乘 3 加1. 用新得到的值重复上述步骤,直到 n = 1 时停止.例如,n = 22 时 ...
- bfs记录路径,蓝桥杯真题
题意:在01矩阵中,找到一条从入口到终点的最短路径,并且打印这条路径. 题目链接:http://lx.lanqiao.cn/problem.page?gpid=T291 #include<ios ...
- 2019第十届蓝桥杯 E题 迷宫
/*输入 30 50 01010101001011001001010110010110100100001000101010 00001000100000101010010000100000001001 ...
随机推荐
- 1008 Elevator (20分)
1008 Elevator (20分) 题目: The highest building in our city has only one elevator. A request list is ma ...
- 2、接口测试(Composer)
前言 Fiddler最大的优势在于抓包,我们大部分使用的功能也在抓包的功能上,fiddler做接口测试也是非常方便的. 对应没有接口测试文档的时候,可以直接抓完包后,copy请求参数,修改下就可以了. ...
- GitHub使用SSH连接以及生成修改添加密钥详细过程
目录 1. 先看看本地有没有SSH密钥 2. 生成/修改密钥 3. 把SSH密钥添加到ssh-agent 4. 把SSH密钥添加到GitHub账户里 5. 测试使用ssh地址clone仓库 6. 把远 ...
- axios请求拦截器(修改Data上的参数 ==>把data上的参数转为FormData)
let instance = axios.create({ baseURL: 'http://msmtest.ishare-go.com', //请求基地址 // timeout: 3000,//请求 ...
- 初涉WebGL
之前一直在捣鼓Vue和React栈,对组件化架构项目有了些理解和体会.今天尝尝WebGL,当然,并不打算现在深入,只是略作了解,我知道这个坑很深. js的图形库.3d库也有好几款比较流行的,如游戏开发 ...
- jquery live 区别
http://www.360doc.com/content/13/1222/22/14022539_339358149.shtml 开始的时候在jQuery.1.7.1中使用了.live()觉得很好用 ...
- 王艳 201771010127《面向对象程序设计(java)》第十四周学习总结
实验十四 Swing图形界面组件 一理论部分 1.Layout Manager(布局管理器):布局管理器是一组类,实现 java.awt.LayoutManager 接口,决定容器中组件的位置和大小 ...
- 苏浪浪 201771010120《面向对象程序设计(java)》第八周学习总结
1.实验目的与要求 (1) 掌握接口定义方法: (2) 掌握实现接口类的定义要求: (3) 掌握实现了接口类的使用要求: (4) 掌握程序回调设计模式: (5) 掌握Comparator接口用法: ( ...
- C语言基础知识(三)——指针
指针定义 1.指针的值表示的是它所指向对象的地址,指针+1表示的是下一元素的地址,按**字节**编址,而不是下一字节的地址. 2.依照数据类型而定,short占用两字节.int占用4字节.double ...
- 六、表达式:前缀&&后缀
count为运算后的值.