PAT甲级 Perfect Sequence (25) 记忆化搜索
题目分析:
意思是要求对于一个给出的数组,我们在其中尽可能多选数字,使得所选数字的max <= min * p,而由于数据量较大直接二层循环不加优化实现是不现实的,由题意得知,对于数字序列的子序列选择没有连续性要求,就是可以随便选的意思,所以我们先将整个序列从小到大排序(这样在遍历时j-i+1就是你选择的个数),从第i == 1个元素开始往后搜索,只要能满足max <= min * p就继续搜索,直到不满足的退出,而在i+1个元素开始搜索时我们发现,由于下标为i+1的元素一定比i大(从小到大排序),所以之前i元素能达到的最远max,i+1元素是必然能达到的,所以i+1元素开始的位置就是i元素的最右极限+1(我用cnt记录i元素本次搜索能达到的最远的下标,i+1从cnt+1开始搜索)
本题代码:
1 #include<iostream>
2 #include<stdio.h>
3 #include<algorithm>
4 using namespace std;
5
6 const int N = 100005;
7 int k[N];
8 int n, p, ans;
9
10 int main(){
11 scanf("%d%d", &n, &p);
12 for(int i = 1; i <= n; i++) scanf("%d", &k[i]);
13 sort(k+1, k+n+1);
14 ans = 0;
15 int cnt = 0;
16 for(int i = 1; i <= n; i++){
17 if(n - i + 1 > ans){
18 for(int j = cnt+1; j <= n; j++){
19 if(k[j] <= p * k[i]){
20 cnt++;
21 j-i+1 > ans ? ans = j-i+1 : ans;
22 }else break;
23 }
24 }else break;
25 }
26 printf("%d\n", ans);
27 return 0;
28 }
PAT甲级 Perfect Sequence (25) 记忆化搜索的更多相关文章
- 【HDU6327】Random Sequence(记忆化搜索)
点此看题面 大致题意: 给你两个序列\(a,v\),其中\(a\)数组由\(0\sim m\)组成.随机用\(1\sim m\)中的一个数替换\(a\)中的\(0\),求\(\sum_{i=1}^{n ...
- 集训第五周动态规划 I题 记忆化搜索
Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ...
- 记忆化搜索(DP+DFS) URAL 1183 Brackets Sequence
题目传送门 /* 记忆化搜索(DP+DFS):dp[i][j] 表示第i到第j个字符,最少要加多少个括号 dp[x][x] = 1 一定要加一个括号:dp[x][y] = 0, x > y; 当 ...
- UVA 11884 A Shooting Game(记忆化搜索)
A and B are playing a shooting game on a battlefield consisting of square-shaped unit blocks. The bl ...
- hdu3555 Bomb (记忆化搜索 数位DP)
http://acm.hdu.edu.cn/showproblem.php?pid=3555 Bomb Time Limit: 2000/1000 MS (Java/Others) Memory ...
- DP(记忆化搜索) + AC自动机 LA 4126 Password Suspects
题目传送门 题意:训练指南P250 分析:DFS记忆化搜索,范围或者说是图是已知的字串构成的自动机图,那么用 | (1 << i)表示包含第i个字串,如果长度为len,且st == (1 ...
- hdu 4856 Tunnels (记忆化搜索)
Tunnels Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su ...
- POJ 1088 滑雪(记忆化搜索)
滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 92384 Accepted: 34948 Description ...
- FZU 2092 bfs+记忆化搜索
晚上团队训练赛的题 和普通bfs不同的是 这是同时操纵人与影子两个单位进行的bfs 由于可能发生人和影子同时接触水晶 所以不可以分开操作 当时使用node记录人和影子的位置 然后进行两重for循环来分 ...
随机推荐
- 落谷 P2401 不等数列
题目链接. Solution 状态设计 设 \(f_{i, j}\) 为 \(1\) 到 \(i\) 的排列,其中有 \(j\) 个 \(\text{'<'}\) 的方案数. 状态转移 尝试从 ...
- 新挖个坑,准备学习一下databricks的spark博客
挖坑 https://databricks.com/blog 一.spark3.0特性(Introducing Apache Spark 3.0) 1.通过通过自适应查询执行,动态分区修剪和其他优化使 ...
- 谷歌浏览器debugger技巧
1.Pause/Resume script execution:暂停/恢复脚本执行(程序执行到下一断点停止). 2.Step over next function call:逐步执行. 跳过按钮.它会 ...
- webstorm实现手机预览页面
效果:在webstorm中开发页面,复制该页面在电脑中的浏览网址,发给手机,在手机上点击链接,可以直接访问本地开发的页面.并且,电脑上修改后保存,手机上刷新即可看到效果. 步骤: 1.webstorm ...
- gulp-sourcemaps的用法
1.项目文件夹中,安装gulp-sourcemaps插件 npm install --save gulp-sourcemaps 2.gulpfile.js文件,导入要用到的插件. 如: // 引入gu ...
- 数据结构与算法——图(游戏中的自动寻路-A*算法)
在复杂的 3D 游戏环境中如何能使非玩家控制角色准确实现自动寻路功能成为了 3D 游戏开 发技术中一大研究热点.其中 A*算法得到了大量的运用,A*算法较之传统的路径规划算法,实时性更高.灵活性更强, ...
- 【ubantu下安装python3.6】
Ubuntu16.04默认安装了Python2.7和3.5 请注意,系统自带的python千万不能卸载! 输入命令python
- js v-if 判断多个属性 in
js v-if 判断 <div v-if="suborder.approve_user==user_id || suborder.approve_userrole_id in rol ...
- django DRF理解
django restframework(DRF) 最近的开发过程当中,发现restframework的功能很强大,所以尝试解读了一下源码,写篇博客分享给大家,有错误的地方还请各位多多指出 视图部分 ...
- SysCtlDelay 实现延时
SysCtlDelay 实际上由 3 条汇编指令实现,一次可以延时 3 个 clock. 例如,初始化系统时钟: SysCtlClockFreqSet((SYSCTL_XTAL_16MHZ | SYS ...