自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 算法竞赛进阶指南学习day14

poj1442 思路:用优先队列,维护两个递增和递减的队列 知识点:greater<int> 和less<int> 重载运算符 #include<iostream> #include<cstdio> #include<cmath> #include<queue> #include<algorithm> #include<string> #include<cstring> #include &l

2021-08-30 22:25:39 91

原创 算法竞赛进阶指南学习day13

CH2401 题目:作为惩罚,GY被遣送去帮助某神牛给女生送礼物(GY:貌似是个好差事)但是在GY看到礼物之后,他就不这么认为了。某神牛有N个礼物,且异常沉重,但是GY的力气也异常的大(-_-b),他一次可以搬动重量和在w(w<=2^31-1)以下的任意多个物品。GY希望一次搬掉尽量重的一些物品,请你告诉他在他的力气范围内一次性能搬动的最大重量是多少。 本题直接dfs也可以写,但是看到数据规模(对于100%的数据 N<=45 W<=2^31-1),直接dfs肯定要超时的;所以用到双向搜

2021-08-29 17:53:01 115

原创 算法竞赛进阶指南学习day12(poj1011专版)

poj1011木棒 作为搜索的经典题,今天就仔细探讨一下 题目:乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过50个长度单位。然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度。请你设计一个程序,帮助乔治计算木棒的可能最小长度。每一节木棍的长度都用大于零的整数表示。 先写个朴素版的 思路:因为原本木棒都是等长的,所以答案一定是木棒长度的约数,所以可以枚举长度,dfs,更新最小值 #include<iostream> #incl

2021-08-29 00:58:06 181

原创 算法竞赛进阶指南学习day11

CH2201 思路:深搜所有装猫的情况,更新最小值 #include<iostream> #include<cstdio> #include<cstring> #include<string> #include<algorithm> #include<cmath> using namespace std; long long x[50]; long long wmax; long long w[50];//表示每车重量 int n

2021-08-27 22:04:37 82

原创 算法竞赛进阶指南学习day10

关于单调栈: 类似优先队列,栈内元素按递增或递减排列, 实现:(以单调递增为例) 当空栈或栈顶比进栈元素大时,直接进;当比栈顶大时,出栈直到入栈入栈后满足单调递增。 板子:R56953588 #include<iostream> #include<cstdio> #include<cmath> #include<vector> #include<algorithm> #include<string> #include<

2021-08-25 22:11:46 92

原创 算法竞赛进阶指南学习day9

CH1701 题目:有n堆水果,每堆有aKg,问合成一堆最少要搬多种的水果 思路:优先队列,默认从大到小,直接push负值(硬核重载),然后每次都挑最小的和一块,直到队列里只剩一个 #include<iostream> #include<cstdio> #include<cmath> #include<vector> #include<algorithm> #include<string> #include<cstring

2021-08-24 22:05:44 68

原创 算法竞赛进阶指南学习day8

关于map: 简介:map是有序键值对容器,它的元素的键是唯一的。搜索、移除和插入操作拥有对数复杂度——oiwiki 特点:键可以为字符型 建立一个map: map<key,num> mp;//key为键,num为对应值 增: 法一 mp.insert(pair<string,int>("key",num));//insert的方法添加需要以pair的形式 法二、直接用键进行赋值 mp[key]=num; 删: mp.erase(...

2021-08-23 21:58:47 150

原创 算法竞赛进阶指南学习day7

看到CH1301解法中要用set,现学一下 关于set: https://oi-wiki.org/lang/csl/associative-container/ 类似集合的容器,其中操作具有log级别的时间复杂度,因为类似集合,所以不存在重复的元素 增:insert(x),在set中加入一个值为x的元素 删:erase(x)删除值为x的元素,返回删除个数 clear(),清空set容器 查:count(x) 返回键为x的元素数量 lower ...

2021-08-22 21:59:46 59

原创 算法竞赛进阶指南学习day6

CH1101 题目概述:求1-n所有出栈顺序 思路:深搜 #include<iostream> #include<cstdio> #include<cmath> #include<vector> #include<algorithm> #include<string> #include<cstring> using namespace std; int n;int top=0;int in[50],out[50];i

2021-08-20 22:04:46 78

原创 算法竞赛进阶指南学习day6

CH0701国王游戏 题目: 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这 n 位大臣排成一排,国王站在队伍的最前面。排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。 国王不希望某一个大臣获得特别多的奖赏,所以他想请你帮他重新安排一下队伍的顺序,使得获得奖赏最多的大臣,所获奖赏尽可能的

2021-08-19 22:11:39 118

原创 算法竞赛进阶指南学习day5

poj3461 题目概述:有c头牛,牛要晒太阳,涂防晒霜,每头牛有不同的防晒霜承受等级,有L种防晒霜,每种对应的数量和等级,求最多涂多少瓶防晒霜 思路:将牛和防晒霜排序,贪心 代码: #include<iostream> #include<cstdio> #include<cmath> #include<vector> #include<algorithm> #include<string> #include<cstri

2021-08-18 22:15:03 64

原创 算法竞赛进阶指南学习day4

CH0502 思路:因为行和列是不互相影响的(改变行列对列和行的总数没影响),所以可以行列分开做两遍,加上前缀和,中位数 #include<iostream> #include<cstdio> #include<cmath> #include<vector> #include<algorithm> #include<string> #include<cstring> using namespace std; long

2021-08-17 22:20:18 81

原创 算法竞赛进阶指南学习day4

CH0304 / P4552 知识点:差分 关于差分: 差分数组存储了原数组相邻元素的差,方便进行区间修改,若对差分数组a[n]中区间[l,r]进行加x操作,那么a[l]+x,a[r+1]+1,就可以完成区间修改 思路:题目是对区间进行操作,所以很容易想到用差分,于是题目中的区间修改转变成修改2个位置,题目要把所有元素变一样,翻译一下就是让差分数组除了最后一个全是0,差分数组中有正有负,那么全部正数与负数互相抵消之后就得到一个最后一个是数,其他全是0的差分数组,这就代表原始数组只有最后一个,处理最后

2021-08-16 21:58:07 55

原创 算法竞赛进阶指南学习day3

Poj1958 概述:四柱汉诺塔 知识点:递推 思路:将四柱转化为三柱,假如有N个,那么先把i个放到2号柱上,剩下n-i个放3号柱上,再分别放到4柱上,由此可推递推式 #include<iostream> #include<cstdio> #include<cmath> #include<vector> #include<algorithm> #include<string> #include<cstring> u

2021-08-15 22:06:19 74

原创 算法竞赛进阶指南学习day2

CH0103 状压dp 核心思想:状压DP,列举当前状态存在所有相连路径来更新最短路径 #include<iostream> #include<cstdio> #include<cmath> #include<vector> #include<algorithm> #include<string> #include<cstring> #define inf 0x3f3f3f using namespace std;.

2021-08-14 20:34:39 86

原创 算法竞赛进阶指南学习day1

0x01位运算 补码:计算机中,数值都是用补码表示的,原因在于它方便处理符号和加减运算 四种运算:与 & ,或 | ,非 ~ ,异或 ^ 移位运算: 左移 (<<):

2021-08-13 18:51:24 1256

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除