「 COGS 1669 」 神秘的咒语
题目大意
这出题人太凉心,居然给我句鸟语。(连我最爱的OI也被鸟语污染了吗)
下面给大家说说这句鸟语啥意思。不要误会,都是度娘的功劳 QAQ
之前不是给出了两个伪咒语吗。
这句鸟语就是说真正的咒语就是两个伪咒语的最长公共上升子序列的长度
解题思路
开始的时候用二维的 $dp$ 三层循环的做。只有 $40$ 分。这不对啊,为啥?
来看看这组样例
不出意外,你的代码会输出 $0$。但是人都能看出答案应该是 $1$ 。问题出在哪呢?
再看一下核心部分的代码
我们发现如果枚举的两个序列的长度都是 $1$ 并且两个数还想等的话。第三重循环就不会进行。
那么我们的 $f$ 数组也就不会更新,这就导致了错误出现。
后来我想了想并没有找到妥帖的解决方法,于是决定写压维优化后的最长公共上升子序列。
大概是这样的
这样就对了。因为 $f$ 数组得到了更新。
附上代码
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int T, m1, m2, a[], b[], f[], Ans;
int main() {
freopen("codes.in", "r", stdin);
freopen("codes.out", "w", stdout);
scanf("%d", &T);
while (T--) {
memset(f, , sizeof(f));
Ans = ;
scanf("%d", &m1);
for(int i=; i<=m1; i++)
scanf("%d", &a[i]);
scanf("%d", &m2);
for(int i=; i<=m2; i++)
scanf("%d", &b[i]);
for(int i=; i<=m1; i++) {
int tmp = ;
for(int j=; j<=m2; j++) {
if(a[i] > b[j]) tmp = max(tmp, f[j]);
if(a[i] == b[j]) f[j] = tmp + ;
}
}
for(int i=; i<=m2; i++)
Ans = max(f[i], Ans);
printf("%d\n", Ans);
}
fclose(stdin); fclose(stdout);
return ;
}
「 COGS 1669 」 神秘的咒语的更多相关文章
- 「 COGS 2240 」 X 「 Luogu P2885 」 架设电话线
解题思路 首先很容易就想到了一个二维的朴素的 $dp$. 设 $dp[i][j]$ 表示第 $i$ 个位置的电话线杆的高度为 $j$ 时的最小花费,就需要枚举第 $i$ 个电话线杆.第 $i$ 个电话 ...
- 「FJOI2016」神秘数 解题报告
「FJOI2016」神秘数 这题不sb,我挺sb的... 我连不带区间的都不会哇 考虑给你一个整数集,如何求这个神秘数 这有点像一个01背包,复杂度和值域有关.但是你发现01背包可以求出更多的东西,就 ...
- 「专题总结」LCT 2
差不多理解板子之后,写了一些奇怪的题. 但是还是那个问题:树剖真好使. 魔法森林:mikufun说这个是傻逼题. 为了得到书法大家的真传,小 E 同学下定决心去拜访住在魔法森林中的隐士. 魔法森林可以 ...
- 前端构建工具之gulp(一)「图片压缩」
前端构建工具之gulp(一)「图片压缩」 已经很久没有写过博客了,现下终于事情少了,开始写博吧 今天网站要做一些优化:图片压缩,资源合并等 以前一直使用百度的FIS工具,但是FIS还没有提供图片压缩的 ...
- fir.im Weekly - 如何打造 Github 「爆款」开源项目
最近 Android 转用 Swift 的传闻甚嚣尘上,Swift 的 Github 主页上已经有了一次 merge>>「Port to Android」,让我们对 Swift 的想象又多 ...
- 更新日志 - fir.im「高级统计」功能上线
距离 2016 年到来只剩 10 个日夜,fir.im 也准备了一些新鲜的东西,比如「高级统计」功能和「跳转应用商店」功能,帮助你更好地管理.优化应用,欢迎大家试用反馈:) 新增高级统计功能 这次更新 ...
- Notepad++ 开启「切分窗口」同时检视、比对两份文件
Notepad++ 是个相当好用的免费纯文本编辑器,除了内建的功能相当多之外,也支持外挂模块的方式扩充各方面的应用.以前我都用 UltraEdit 跟 Emeditor,后来都改用免费的 Notepa ...
- 「zigbee - 1」工欲善其事必先利其器 - IAR for 8051 IDE customization
最近在实验室做一些 Zigbee 相关的事情,然而一直没在博客上记录啥东西,也不像原来在公司有动力在 Confluence wiki 上扯东扯西.直到前些阵子,跑到 feibit 论坛上(国内较大的一 ...
- 「C语言」文件的概念与简单数据流的读写函数
写完「C语言」单链表/双向链表的建立/遍历/插入/删除 后,如何将内存中的链表信息及时的保存到文件中,又能够及时的从文件中读取出来进行处理,便需要用到”文件“的相关知识点进行文件的输入.输出. 其实, ...
随机推荐
- GraphDatabase_action
https://neo4j.com/docs/ #https://pypi.python.org/pypi/neo4j-driver/1.5.3from neo4j.v1 import GraphDa ...
- HTTP要点概述:五,HTTP的无状态性,持久连接,Cookie
一,HTTP的无状态性: HTTP 是一种不保存状态,无状态(stateless)协议.HTTP 协议自身不对请求和响应之间的通信状态进行保存.也就是说在 HTTP 这个级别,协议对于发送过的请求或响 ...
- spring 的核心接口
spring有两个核心接口,BeanFactory 和ApplicationContext ,其中ApplicationContext 是BeanFactory的子接口.他们代表了Spring容器. ...
- node inspector的安装以及使用【已经淘汰了】
https://github.com/node-inspector/node-inspector 前提 1.npm install -g node-pre-gyp https://github.com ...
- bzoj 2428 均分数据
题目大意: 已知N个正整数 将它们分成M组,使得各组数据的数值和最平均,即各组的均方差最小 求最小均方差 思路: 模拟退火 #include<iostream> #include<c ...
- 【POJ 1470】 Closest Common Ancestors
[题目链接] 点击打开链接 [算法] 离线tarjan求最近公共祖先 [代码] #include <algorithm> #include <bitset> #include ...
- [loj6089]小Y的背包计数问题
https://www.zybuluo.com/ysner/note/1285358 题面 小\(Y\)有一个大小为\(n\)的背包,并且小\(Y\)有\(n\)种物品. 对于第\(i\)种物品,共有 ...
- Ural 1382 2SAT
ural1382 直接套用 2SAT模板 缩点 拓扑排序... #include<iostream> #include<cstdio> #include<cstdlib& ...
- FreeMarker:
ylbtech-FreeMarker: 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 6.返回顶部 作者:ylbtech出处:http://ylbt ...
- bzoj 1801: [Ahoi2009]chess 中国象棋【dp】
注意到一行只能放012个炮,我们只需要知道列的状态,不用状压行 所以设f[i][j][k]表示前i行有j列有1个炮,有k列有2个炮的方案数 然后分情况讨论转移就行了 #include<cstdi ...