题解
lkcc
眼光放长远
展开
-
蓝桥杯 导弹拦截问题
这道题有三种解法双原创 2020-03-31 15:32:25 · 246 阅读 · 0 评论 -
c++ 数组下标是字符串的处理
蓝桥杯中不可以使用c++标准的库函数 — 具体见这里由于需要对string 进行计数等操作 而c++中数组下标只能是数字,所以我们需要用STL中的一个库函数 mapmap<string , int> cnt;例题:洛谷P1201code#include <iostream>#include <map>using namespace std;map<string , int> cnt; //相当于 cnt["dashabi"] = 25原创 2020-11-05 11:42:56 · 1308 阅读 · 1 评论 -
纸牌博弈 改DP
这个题目刷过一次 没记住地址有一串纸牌 只能从纸牌两边抽取扑克,有两名玩家,假设两名玩家都绝顶聪明会选择,会选择最优的情况,抽取的纸牌面值累加为分数,求获胜者的分数和。输入:42 7 100 20输出:102文章目录暴力递归动态规划Code暴力递归先思考抽牌的情况从左边抽 那么第二个人就从剩下的部分抽从右边抽 ------------------------------------------由于两个人都是绝顶聪明 ,所以我们要考虑从左右抽取的时候 哪边更加合适,max(arr原创 2020-11-04 00:37:34 · 161 阅读 · 0 评论 -
蓝桥算法提高 DP+记忆化搜索
有一条长为n的走廊,小明站在走廊的一端,每次可以跳过不超过p格,每格都有一个权值wi。 小明要从一端跳到另一端,不能回跳,正好跳t次,请问他跳过的方格的权值和最大是多少?输入格式 输入的第一行包含两个整数n, p, t,表示走廊的长度,小明每次跳跃的最长距离和小明跳的次数。 接下来n个整数,表示走廊每个位置的权值。输出格式 输出一个整数。表示小明跳过的方格的权值和的最大值。样例输入8 5 33 4 -1 -100 1 8 7 6样例输出12数据规模和约定 1<=n,原创 2020-09-26 10:22:24 · 291 阅读 · 0 评论 -
最大公约数 GCD
文章目录偷懒版本gcd内部原理gcd的优化头文件:algorithm偷懒版本#include <bits/stdc++.h>using namespace std;int main(){ int n,m; cin>>n>>m; cout<<"最大公约数:"<<__gcd(n,m); return 0;}gcd内部原理//裸的_gcd(a,b);int gcd(int n,int m){ return (!m)?n原创 2020-08-22 15:50:16 · 276 阅读 · 0 评论 -
c++ 双端队列deque 单调栈stack
文章目录滑动窗口的最大值Code涉及知识点:双端队列 deque滑动窗口的最大值由于需要直到某个区间的最大值,在区间向右滑动的时候,可以拆解为R向右一位,L也向右一位。由于我们只需要最大值,所以deque里的内容单调递减的,开头的最大,记录的是arr的【下标】Code返回每个长度为size的区间内最大值vector<int> getMaxarr(vector<int>& arr , int size){ vector<int> res;原创 2020-08-17 22:52:33 · 265 阅读 · 0 评论 -
CSS3悬浮式下拉菜单
个人整理一下,有错误欢迎指出。文章目录思路格式最后效果:思路并非div套div,一开始搞错了,还钻牛角尖,浪费一天时间。先把下拉菜单隐藏 display:none; 当鼠标悬停时display:bolck;显示格式1.先确认下拉菜单一般html格式<div> <!--导航栏--> <ul> <li><a href="#">A类</a> <ul> <li><a href原创 2020-06-27 00:34:57 · 2237 阅读 · 0 评论 -
荷兰国旗问题双版本
文章目录荷兰国旗问题低级版正常版本荷兰国旗问题不考虑先后顺序,额外空间复杂度O(1),时间复杂度O(n)低级版将区间分成两段,左边的<=m的数,右边是>m的数。<= m 左区间后一位和指针位交换,指针位右移,左区间右移> m 指针位直接右移//荷兰国旗#include <bits/stdc++.h>using namespace std;const int maxn = 55;int n,m;int num[maxn];int main原创 2020-06-22 21:21:46 · 138 阅读 · 0 评论 -
石子合并问题 环形 链式两种的区别和题解
链式题目传送门环形传送门区别:1.对于预处理部分,链式为前缀和s[ ]。环形为区间cost[ ][ ];2.主要环形的处理 w[n+i] = w[i]; //环长度为n//链式#include <iostream>#include <cstdio>using namespace std;const int maxn = 310,INF = 0x3f3f3...原创 2020-05-05 12:51:00 · 252 阅读 · 0 评论 -
自然数拆分问题 dfs
传送门:p2404题目要求:增序输出,由于拆分一个数,所以总和确定。用dfs,每次减去一个i,搜完再回溯加回来就行。p[ ] 记录数值n 要拆分的数字m 见注释#include <cstdio>#include <iostream>using namespace std;int n,p[11]={1},m; void print(int a){...原创 2020-05-05 09:11:24 · 394 阅读 · 0 评论 -
P1115 最大子段和 区间DP(简单易懂)
@题目链接思路:求最大区间和数据范围 N<=200 000number[maxn]记录输入数字 由于要求区间的累加值设想只有两个数字的时候,读入第二个数字。状态转移方程f[i] = max(f[i-1] +number[i] , number[i]);假设第一个数字是 7 则 f[i] = 7 此时sum=7;  ...原创 2020-04-26 21:52:04 · 250 阅读 · 1 评论 -
算法训练 单词接龙(DFS超级简单)
问题描述单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如 beast和astonish,如果接成一条龙则变为beastonish,另外相邻的两部分不能存在包含关系,例如at 和 atide 间不能相连。输入格式输入的第一行为一个单独...原创 2020-03-31 21:58:42 · 1301 阅读 · 0 评论 -
多重背包问题-笔记
多重背包问题是对物品的数目有了限制 并且加强了数据n2复杂度会超时 所以使用二进制优化7 = 2^0 + 2^1 + 2^2#include <iostream>#include <vector>using namespace std;int N,V;int f[2010]; //dp用struct node{ //存体积 价值 int v,w;}...原创 2020-04-17 22:31:49 · 205 阅读 · 0 评论 -
P2895 [USACO08FEB]Meteor Shower S(简单易懂)
**思路:依旧BFS+队列**用map_time[] 维护陨石掉落时间0vis[]标记是否走过 ***当枚举四联通之后,如果map_time的值还是-1,说明该点不是陨石能影响到的地方***#include <bits/stdc++.h>using namespace std;struct node{ int x,y,time;};int m,x,y,t;int...原创 2020-04-04 23:04:51 · 424 阅读 · 1 评论 -
P1135 奇怪的电梯 3msAC
刚开始读题的时候没读懂 现在重新一下。N是一共有多少层 A是起点 B是终点 第二行数字是每一层可以一次性上下几楼。**思路:求最短路 BFS问题 +队列****用e[210] 存放每一楼层能上下的层数****用vis[210]标记是否访问**AC代码:#include <bits/stdc++.h>using namespace std;struct node{ ...原创 2020-04-04 21:30:24 · 210 阅读 · 0 评论 -
kkksc03考前临时抱佛脚
~~DP问题:可以当作01背包来做~~左右脑可以同时工作 但只能学一科 求所有科目完成的最少时间,所以可以一科一科的看。#include <bits/stdc++.h>using namespace std;int a[5];int sum,t;int dp[2501],homework[21];int main(){ for(int i=1;i<=4;i...原创 2020-04-04 11:47:43 · 450 阅读 · 0 评论