搜索
搜索
Albert.Jw
加油!!!
展开
-
贪心
1.删数问题(黄p266)思路:(1)先删高位(2)先删大的数例:输入:175438 4输出:13误区:1.思路:算最后留下几个数,那为保证最大就一定是递增错误:因为可能删去几个数后仍无法保证全部递增2.思路:将数串中找出其最长上升子序列,然后从高向低删除错误:为保证最长,会使得错过高位上一些大的数,而去找相对较低位的大数正解:将错误分析,发现错在1.有特定的删除数量限制2.为低位而舍去了高位。所以,我们直接从高位开始,一旦出现递减,就将前面的数删除,最后如果剩下递增,就取前面几位原创 2020-10-04 22:05:03 · 173 阅读 · 0 评论 -
康拓展开
作用:网络图的状态存储,将二维转一维(一行行拼接,形成一个数),进行判重实质:一个自然数映射一个数列原理:所有的排列从小到大排序后,所处的位置,算出多少个数比它小原创 2020-08-18 21:43:20 · 125 阅读 · 0 评论 -
模拟
1.原理:模拟过程2。注意:(1)变量要有意义(2)注意输出时的行末空格(3)使用STL(4)封装函数3.特点: 题面极长–详细STL:1.map定义:map<关键字类型,映射值类型> dicdic[x]=y;按关键字升序排列 map<int,int> dic; dic[1]=5; dic[6]=3; dic[4]=6; map<int,int>::iterator it; for(it=dic.begin();it!=dic.end()原创 2020-08-17 06:38:09 · 181 阅读 · 0 评论 -
搜索
模拟的过程不同状态的转移解决:1.方案数2.从起始到目标状态花费最小BFS:适用:1.状态适合储存(方格图,网格图)2.很深的问题3.一个状态有多种转移方式原创 2020-08-10 10:21:45 · 151 阅读 · 0 评论 -
单调栈/队列
单调栈:1.海报https://www.luogu.com.cn/problem/P3467思路:单调栈1.必有一个楼房被完全覆盖2.将次被覆盖的房子向左移,看其能否覆盖上一个,如果能,就加上上一个能覆盖的房子数,然后继续直到无法延伸。注意:1.向左和向右是一样的,(从后往前,从前往后),且向左做可以利用上一步算出的信息2.对于宽:不用管,因为最后直接是一个矩形覆盖,不是后面的楼房覆盖代码 int n; cin>>n; int f[n+1]; f[0]=0; int原创 2020-07-12 10:38:17 · 111 阅读 · 0 评论 -
剪枝
应用于深搜1.可行性剪枝:发现某些状态无论如何都不能找到最终的解注意:负数……(别剪错)2.最优性剪枝:——调到答案那步与其进行比较最优解的一类问题,通常可以用最优性剪枝,比如在求解迷宫最短路的时候,如果发现当前的步数已经超过了当前最优解,那从当前状态开始的搜索都是多余的,因为这样搜索下去永远都搜不到更优的解。通过这样的剪枝,可以省去大量冗余的计算。常用:步数(总之就是达到目的,再剪)方法:定义范围或if()return; 传入个参数3.重复性剪枝:一个方案可能会被搜索很多次,这样是原创 2020-08-08 21:58:15 · 236 阅读 · 0 评论 -
生日蛋糕——真题
题解:DFS+剪枝表层思考:超了,少了(当前运算已经超过最大,小值)—体积,表面积–》边界的选取远瞻:如果当前的值选的太过临界,会导致后面的值超了,少了,所以可以预处理一个更小的范围直指答案:——最优性剪枝已经算出答案#include <algorithm>#include <cmath>#include <cstdio>#include <iostream>using namespace std;const int INF = 0原创 2020-08-08 21:13:44 · 386 阅读 · 0 评论 -
图论——连通性
割点:1.无向图2.删去这个点及其所连边后,图不再联通点双连通图:1.无向图2.没有割点(删去任意一个点图仍联通)点双联通分量:无向图G中所有子图G’如果G’1.是点双联通子图2.不是其他点双联通子图的真子集,则G’是G的极大点双联通子图,也称点双联通分量。桥(割边):1.无向图2.删此边(不删其连着的点),剩下的图不再联通边双连通图:1.无向图2.删任意一边,剩下的图仍联通边双联通分量:无向图G中所有子图G’如果G’1.是边双联通子图2.不是其他边双联通原创 2020-08-01 13:10:03 · 1704 阅读 · 0 评论 -
蒜普6
题目:https://www.jisuanke.com/contest/9297/challenges题解:第一题80 ——模拟#include <bits/stdc++.h>using namespace std;struct node{ int pos,len;}a[10000];bool cmp(node a,node b){ return a.pos<b.pos;}int main(){ int n,x0,y0,x,y; cin>>n>&原创 2020-06-21 18:11:36 · 180 阅读 · 0 评论 -
蒜头君的花园
题目描述蒜头君的花园里有 n个花盆,每个花盆可以种一株花,现在花椰妹给了蒜头君三种花的方案但是花椰妹的每种方案种的都是同一种花,只是形状不同全部种 A 花,第 i 盆花的价格为 ai全部种 B 花,第 i 盆花的价格为 bi全部种 C 花,第 i 盆花的价格为 ci可是蒜头君觉得整个花园都是同一种花不好看,但是他又不想浪费了花椰妹的好意,所以他决定依旧是按照花椰妹的方案来买花,也就是...原创 2020-04-10 18:49:49 · 439 阅读 · 0 评论