hdoj 2372 El Dorado

2024-05-05 12:58
文章标签 el hdoj dorado 2372

本文主要是介绍hdoj 2372 El Dorado,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题号:hdoj 2372;链接:http://acm.hdu.edu.cn/showproblem.php?pid=2372

题目:

El Dorado

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 418    Accepted Submission(s): 197


Problem Description
Bruce Force has gone to Las Vegas, the El Dorado for gamblers. He is interested especially in one betting game, where a machine forms a sequence of n numbers by drawing random numbers. Each player should estimate beforehand, how many increasing subsequences of length k will exist in the sequence of numbers. 



Bruce doesn't trust the Casino to count the number of increasing subsequences of length k correctly. He has asked you if you can solve this problem for him. 


Input
The input contains several test cases. The first line of each test case contains two numbers n and k (1 ≤ k ≤ n ≤ 100), where n is the length of the sequence drawn by the machine, and k is the desired length of the increasing subsequences. The following line contains n pairwise distinct integers a i (-10000 ≤ a i ≤ 10000 ), where a iis the i th number in the sequence drawn by the machine. 

The last test case is followed by a line containing two zeros. 

Output
For each test case, print one line with the number of increasing subsequences of length k that the input sequence contains. You may assume that the inputs are chosen in such a way that this number fits into a 64 bit signed integer . 

Sample Input
  
10 5 1 2 3 4 5 6 7 8 9 10 3 2 3 2 1 0 0

Sample Output
  
252 0

解题思路:

题目要求一个序列中长度为k的递增子序列的个数,我们可以用dp来做。dp[i][j]的含义:i表示子序列中尾元素的下标,j表示子序列的长度。这样的话,我们可以得到状态转移方程:dp[i][j] = sum(dp[k][j-1]) 其中(a[k]< a[i])(k>=j-1&&k<i),最后,我们所要求的结果就是sum(dp[i][k])(i=1,2,...,n).


代码:

#include <iostream>
#include <cstring>
using namespace std;const int MAXN = 110;
__int64 dp[MAXN][MAXN];
int a[MAXN];int main()
{std::ios::sync_with_stdio(false);int n, k;while(!cin.eof()){long long ans = 0;cin >> n >> k;if(0 == n && 0 == k) break;for(int i = 1; i <= n; i++)cin >> a[i];	memset(dp, 0, sizeof(dp));for(int i = 1; i <= n; i++)dp[i][1] = 1;for(int j = 2; j <= k; j++){for(int i = j; i <= n; i++){for(int m = j - 1; m < i; m++){if(a[i] > a[m]){dp[i][j] += dp[m][j-1];}}}}for(int i = 1; i <= n; i++)ans += dp[i][k];cout << ans << endl;}return 0;
}



这篇关于hdoj 2372 El Dorado的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/961778

相关文章

vue2实践:el-table实现由用户自己控制行数的动态表格

需求 项目中需要提供一个动态表单,如图: 当我点击添加时,便添加一行;点击右边的删除时,便删除这一行。 至少要有一行数据,但是没有上限。 思路 这种每一行的数据固定,但是不定行数的,很容易想到使用el-table来实现,它可以循环读取:data所绑定的数组,来生成行数据,不同的是: 1、table里面的每一个cell,需要放置一个input来支持用户编辑。 2、最后一列放置两个b

vue el-dialog嵌套解决无法点击问题

产生原因: 当你在 el-dialog 上嵌套另一个 el-dialog 窗口时,可能会遇到内部对话框无法点击的问题。这通常是由于嵌套对话框的遮罩层(overlay)或其他样式问题造成的。 解决方案: 如果你的 el-dialog 组件支持 append-to-body 属性,你可以将对话框附加到 body 元素上,以避免 z-index 问题。 <template><el-dialo

el-date-picker年份选择默认值为当前年,并且将获取时间转为年月日格式

<el-date-pickervalue-format="yyyy"v-model="leftQuery.year":disabled="timeArr && timeArr.length != 0 ? true : false"type="year"placeholder="选择年"@change=changeYear:picker-options="pickerOptions"></el-da

el-table 封装表格(完整代码-实时更新)

最新更新时间: 2024年9月6号 1. 添加行内编辑、表头搜索 <template><!-- 简单表格、多层表头、页码、没有合并列行 --><div class="maintenPublictable"element-loading-background="rgba(255,255,255,0.5)"><!--cell-style 改变某一列行的背景色 --><!-- tree-props

EL表达式获取List集合长度

有一次在jsp页面我要获取后台的一个list集合的长度,当然你可以在后台保存长度然后在页面获取,这是一种方法,现在我介绍另一种方法: 首先:我们在jsp页面导入jstl标签库<%@ taglib prefix="fn" uri="http://java.sun.com/jsp.jstl/functions"%> 然后在你要获取的地方写上:${fn:length(qunarRemarkList)

vue2,vue3基于elementUI的el-table实现复制粘贴功能

vue2,vue3基于elementUI的el-table实现复制粘贴功能 vue2vue3 1、先声明一下,为啥又有vue2和vue3呢,因为老项目要改造成vite+ts+vue3,时间紧,来不及全部转换,所以就有了componentApi和optionsApi共存的情况 2、单页面使用,全局未实现 vue2 既然是基于el-table呢就有现成的methods可以使用 @

el-table使用#header自定义表头后脱离响应式问题处理

问题描述:当titleList的值进行筛选改变的时候#header里面的的数据并没有实时响应,如下面的代码 <el-table :data="newData" border style="width: 100%"><el-table-columnv-for="(day, index) in titleList" :key="day.date"width="600"align="center">

jstl,el,ognl的区别

jstl——JSP Standard Tag Library, el——Expressiong Language ognl——Object Graph Notation Language。 一种是标签,一种是表达式。 jstl能用于servlet和jsp中, struts标签针对于使用了struts的项目。 而el表达式是应用在JSP中,简化一些代码用的。 而struts2默认的是ognl表达式,

JSP JSTL EL标签使用

一.配置 JSTL 包括两个 JAR文件, jstl.jar 和standard.jar 。 JSP页面最上面引入: <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%> <%@tag

vue3 el-menu 菜单Maximum recursive updates exceeded 报错

vue3 用el-menu实现管理后台左侧菜单,报Uncaught (in promise) Maximum recursive updates exceeded in component <ElMenu>. This means you have a reactive effect that is mutating its own dependencies and thus recursivel