- 博客(18)
- 问答 (1)
- 收藏
- 关注
原创 分数的四则运算
1.分数的存储struct node{ int up,down; node() { up=0; down=1; }}result;2.分数的四则运算,以加法为例node add(node a,node b){ node result; result.up=a.up*b.down+a.down*b.up; result.down=a.down*b.down; re...
2020-01-24 11:28:35 115
原创 [蓝桥杯2019初赛]Fibonacci数列与黄金分割
[蓝桥杯2019初赛]Fibonacci数列与黄金分割水题一个#include<iostream>#include<bits/stdc++.h>long long f[100];using namespace std;int main(){ f[1]=1; f[2]=1; for(int i=3;i<=50;i++) { f[i]=f[i-...
2020-01-23 19:26:56 1441
原创 map or multimap——STL的克星
map or multimappair只包含一对数值:pair<int,char>map是一个集合类型,永远保持排好序的,map每一个成员就是一个pair,例如:map<int,char>map的insert()可以把一个pair对象作为map的参数,例如mapmultimap允许重复的键值插入容器,multimap的插入只能用insert()不能用数组,其他的与...
2020-01-22 21:45:41 140
原创 主席树——数据结构的克星
#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=1e5;struct node{ int e; int l,r; int lazy; node(){ e=lazy=l=r=0; }}tree[maxn*40];int tot=0,a[maxn];vo...
2020-01-19 12:29:48 227 2
原创 线段树——数据结构的克星
#include<bits/stdc++.h>using namespace std;const int maxn=1e5;struct node{ int e;// int l,r; int lazy; node() { e=lazy=0; }// int mid(){// return (r+1)>>1;// }}tree[maxn<...
2020-01-19 12:28:39 2854 3
原创 树状数组-——数据结构的克星
树状数组树状数组的tree[i]维护的是前面一段区间的状态,这个视题意而定,比如题目要求一段区间的和,那么树状数组tree[i]表示前面一段区间的和,如果题目要求一段区间的最大值,那么树状数组tree[i]表示前面一段区间的最大值。那么前面的一段区间是多少的,就是将i转换成二进制编码时,第一个1出现是的长度。11101000,它维护的区间长度就是1000的大小,为8.求维护区间长度的具体代码...
2020-01-18 23:01:47 228
原创 EOJ Monthly 2020.1——A. 回文时间
A. 回文时间单点时限: 1.0 sec内存限制: 512 MBCuber QQ 很惊奇地发现 2020 年 1 月 22 日的 10:02:02 构成的字符串竟然是一个回文串。(构成的字符串是 20200122100202 ),这下又有充足的理由约女神吃饭了。可是这之后,女神开始为难 Cuber QQ 了。她现在只允许 Cuber QQ 在回文时间约她吃饭。回文时间指的是,年份(四位数...
2020-01-18 09:14:45 475
原创 优先队列——priority_queue
priority_queue:优先队列,自动排序,默认为优先级较高的在前,但是要注意的是,它对int型变量的默认排序是从大到小,因为它认为值越大,优先级越高,与sort排序刚好相反。1.对int型变量priority_queue<int, vector < int > ,less < int > >从大到小排列priority_queue<int ,...
2020-01-17 18:57:17 353 2
原创 背包问题克星——分组背包
背包问题克星——分组背包有N件物品,告诉你这N件物品的重量以及价值,将这些物品划分为K组,每组中的物品互相冲突,最多选一件,求解将哪些物品装入背包可使这些物品的费用综合不超过背包的容量,且价值总和最大。算法:首先判断一个分组当中的一件物品,同01背包一样,此物品存在两种状态,取与不取,若取此物品,则继续判断下一组的第一件物品,若不取此物品,则继续判断本组下一件物品,若该物品为本组最后一件物品...
2020-01-16 09:27:07 475
原创 混合背包详解
混合背包有的物品只可以取一次(01背包),有的物品可以取无限次(完全背包),有的物品可以取的次数有一个上限(多重背包)。应该怎么求解呢?01背包与完全背包的混合考虑到在P01和P02中给出的伪代码只有一处不同,故如果只有两类物品:一类物品只能取一次,另一类物品可以取无限次,那么只需在对每个物品应用转移方程时,根据物品的类别选用顺序或逆序的循环即可,复杂度是O(VN)。伪代码如下:for i...
2020-01-15 22:43:01 293
原创 二维费用背包,二维背包
①基本题型:二维费用的背包问题是指对于每件物品,具有两种不同的费用,选择这件物品必须同时付出这两种代价,对于每种代价都有一个可付出的最大值(背包容量),求选择物品可以得到最大的价值。设第i件物品所需的两种代价分别为v[i]和u[i],两种代价可付出的最大值(两种背包容量)分别为V和U,物品的价值为w[i]。②基本解法:相比经典的01背包问题,二维费用背包问题增加了一维费用,于是我们需要在状态...
2020-01-15 22:32:47 232
原创 背包问题的克星——背包九讲
P01: 01背包问题题目有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。基本思路这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是:f[i][v]=max{f[i-1][v],f[i-1][...
2020-01-15 16:45:19 220
原创 多重背板问题
#include<bits\stdc++.h>using namespace std;typedef long long ll;const int maxn=1e3;int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n,v; cin>>n>>v; in...
2020-01-15 16:38:02 129
原创 完全背包问题
完全背包模板#include<bits\stdc++.h>using namespace std;typedef long long ll;const int maxn=1e3;int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n,v; cin>>n>>...
2020-01-15 16:36:20 92
原创 01背包问题
01背包模板#include<bits\stdc++.h>using namespace std;typedef long long ll;const int maxn=1e3;int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n,v; cin>>n>>...
2020-01-15 16:34:48 113
原创 Favourite Number
Volodymyr’s favourite number is A and it has an odd number of positive divisors. When you add K to this number, the resulting sum also has an odd number of positive divisors. Given K, find all possibl...
2020-01-15 12:23:31 2289 1
原创 pair
pair<T1, T2> p1; //创建一个空的pair对象(使用默认构造),它的两个元素分别是T1和T2类型,采用值初始化。pair<T1, T2> p1(v1, v2); //创建一个pair对象,它的两个元素分别是T1和T2类型,其中first成员初始化为v1,second成员初始化为v2。make_pair(v1, v2); ...
2020-01-10 17:46:38 99
空空如也
博客的重要性,博客真的那么重要吗
2021-03-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人