【noip模拟赛1】古韵之乞巧 (dp)
描述
闺女求天女,更阑意未阑。
玉庭开粉席,罗袖捧金盘。
向月穿针易,临风整线难。
不知谁得巧,明旦试相看。
——祖咏《七夕》
女子乞巧,是七夕的重头戏。古时,女子擅长女红被视为一种重要的德行。所以女孩子们纷纷在七夕这天祈求上天,是自己变得更加灵巧。仰头凝视,以虔诚的心去膜拜桂魄;双手合十,用坚定信念去盼望未来,祈求能有更出众的才能。一根针、一丝线、一轮月、一束影,组成了一个简单的乞巧仪式。
“年年岁岁花相似,岁岁年年人不同。”千百年后的今天,女孩子们更加看重自己的才华与能力。韵哲君参加了一个新乞巧活动:
韵哲君发现自己的面前有一行数字,当她正在琢磨应该干什么的时候,这时候,陈凡老师从天而降,走到了韵哲君的身边,低下头,对她耳语了几句,然后飘走了。
陈凡老师说了什么呢,且听下回分解。
接上回书,陈凡老师原来对韵哲君说了这些话:“还记得我传授给你的不下降子序列吗?你现在只要找出一定长度的不下降子序列的种数,你就完成任务了。”
输入
第一行有两个整数N(0<N<=100),M(0<M<=20);
N表示给出多少个整数,M表示给出的定长;
第二行有N个整数,对于每个数字(-10000<=T[i]<=10000)。
输出
输出一个整数,在给出的数列中定长不下降子序列的种数。
输入样例 1
10 5
1 2 3 4 5 6 7 8 9 10
输出样例 1
252 dp[i][j] 表示处理前i个数字 长度为j的不下降子序列的个数 先是参考了最长不下降子序列的个数: n^2 写法:
long long dp[N];
int a[N];
int main()
{
int n;cin>>n;
for(int i=;i<=n;i++)
RI(a[i]); int ans=;
for(int i=;i<=n;i++)
{
for(int j=;j<i;j++)
if(a[j]<a[i])dp[i]=max(dp[i],dp[j]+ );
ans=max(ans,dp[i]);
}
cout<<ans;
}
最长不下降子序列个数
将所有满足的情况累合起来
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<cstring>
#include<iostream>
#include<queue>
using namespace std;
//input
#define RI(n) scanf("%d",&(n))
#define RII(n,m) scanf("%d%d",&n,&m);
#define RIII(n,m,k) scanf("%d%d%d",&n,&m,&k)
#define RS(s) scanf("%s",s)
#define LL long long
#define REP(i,N) for(int i=0;i<(N);i++)
#define CLR(A,v) memset(A,v,sizeof A)
//////////////////////////////////
#define N 2050
#define inf -0x3f3f3f3f long long dp[N][N];
int a[N];
int main()
{
int n,m;
RII(n,m);
for(int i=;i<=n;i++)
RI(a[i]);
CLR(dp,);
for(int i=;i<=n;i++)
dp[i][]=;//先初始化 每个数字都是长度为1的序列 for(int i=;i<=n;i++)
for(int k=;k<=m;k++)
for(int j=;j<=i-;j++)
if(a[i]>=a[j])dp[i][k]+=dp[j][k-];//遍历完之后 显然dp[i][k]所有子序列必定包含a[i](且a[i]为最后一个数) 以此类推之前的dp[j]也都是以a[j]为最后一个数 所以不会有重复 long long ans=;
for(int i=;i<=n;i++)
ans+=dp[i][m];
printf("%lld\n",ans);
}
【noip模拟赛1】古韵之乞巧 (dp)的更多相关文章
- 【noip模拟赛5】细菌 状压dp
[noip模拟赛5]细菌 描述 近期,农场出现了D(1<=D<=15)种细菌.John要从他的 N(1<=N<=1,000)头奶牛中尽可能多地选些产奶.但是如果选中的奶牛携 ...
- 「NOIP模拟赛」数位和乘积(dp,高精)
统计方案数,要么组合数,要么递推(dp)了. 这是有模拟赛历史以来爆炸最狠的一次 T1写了正解,也想到开long long,但是开错了地方然后数组开大了结果100->0 T3看错题本来简单模拟又 ...
- 【NOIP 模拟赛】Evensgn 剪树枝 树形dp
由于树规做的少所以即使我考试想出来正确的状态也不会转移. 一般dp的转移不那么繁杂(除了插头.....),即使多那也是清晰明了的,而且按照树规的一般思路,我们是从下到上的,所以我们要尽量简洁地从儿子那 ...
- 【NOIP模拟赛】黑红树 期望概率dp
这是一道比较水的期望概率dp但是考场想歪了.......我们可以发现奇数一定是不能掉下来的,因为若奇数掉下来那么上一次偶数一定不会好好待着,那么我们考虑,一个点掉下来一定是有h/2-1个红(黑),h/ ...
- 古韵之乞巧 题解 dp题
[noip模拟赛1]古韵之乞巧 描述 闺女求天女,更阑意未阑. 玉庭开粉席,罗袖捧金盘. 向月穿针易,临风整线难. 不知谁得巧,明旦试相看. ——祖咏<七夕> 女子乞巧,是七夕的重头戏 ...
- NOIP模拟赛20161022
NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...
- contesthunter暑假NOIP模拟赛第一场题解
contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...
- NOIP模拟赛 by hzwer
2015年10月04日NOIP模拟赛 by hzwer (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...
- 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程
数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...
- 队爷的讲学计划 CH Round #59 - OrzCC杯NOIP模拟赛day1
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的讲学计划 题解:刚开始理解题意理解了好半天,然后发 ...
随机推荐
- 【poj3415】 Common Substrings
http://poj.org/problem?id=3415 (题目链接) 题意 给定两个字符串 A 和 B,求长度不小于 k 的公共子串的个数(可以相同). Solution 后缀数组论文题... ...
- Django中简单添加HTML、css、js等文件(非正规添加,适合小白)
Django中简单添加HTML.css.js等文件 首先申明下自己的环境, python版本3.65(亲测3.7版本有毒,没解决掉!) Django版本1.11.15(版本比较成熟,也可以用最新的版本 ...
- 界面编程之QT的数据库操作20180801
/*******************************************************************************************/ 一.数据库连 ...
- log4j2常见配置
依赖jar: <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId> ...
- django2.0 官方中文文档地址
django2.0 官方开始发布中文文档了,之前还想着一直翻译完成所有有必要的内容,想着可以省事一些了,打开以后看了一下,发现官方的中文文档还没翻译完成, 现在(2018-7-10)最新章节是是 编 ...
- CSS reset--(来自网易)
/* reset */ html,body,h1,h2,h3,h4,h5,h6,div,dl,dt,dd,ul,ol,li,p,blockquote,pre,hr,figure,table,capti ...
- jq无缝滚动效果插件(之前的那个升级改造加强版)
scroll滚动插件 支持上下左右,淡入淡出,滚动时间设置,动画时间设置,鼠标经过是否停止设置 默认配置参数可修改 $(".content").easysroll({ //默认配置 ...
- AngularJS开发指南:表达式
---恢复内容开始--- 表达式是类似Javascript的代码片段,通常在绑定中用到,写在双大括号中如{{表达式}}.表达式是用$parse方法来处理的. 下面是一些合法的AngularJS表达式 ...
- bzoj 1432 数学(找规律)
我们可以发现所有的情况(除n=1时),都可以找到两个交叉的直线,就是第一层的那 两个线段所在的直线如图中左 那么我们以这个为准,两边对称着加直线,会得到右图,每一层是折线,且每 加一对儿就多两条线段, ...
- 3.微信公众号开发:配置与微信公众平台服务器交互的URL接口地址
微信开发基本原理: 1.首先有3个对象 分别是微信用户端 微信公众平台服务器 开发者服务器(也就是放自己代码的服务器) 三者间互相交互 2.微信公众平台服务器 充当中间者角色 (以被动回复消息为例) ...