- 博客(15)
- 收藏
- 关注
原创 BST
讲BST之前,先讲一下中序遍历不说了看代码就行CODE No.1inline void out(node *p){ if(p){//这个不判断的话就会炸成RE out(p->l); cout<<p->v<<" "; out(p->r); }}BST意思是二叉排序树最好用的地方就是排序O(∩_∩)O哈哈哈~每插入一个节点,就将它的权值v
2017-06-15 20:40:29 330
原创 二叉树、二叉堆
妈呀,好久没写blog了……来讲讲二叉堆定义二叉堆是一个完全二叉树,且每个根节点的权值<(可以重载)它的儿子节点 那么什么是完全二叉树呢? 看图找规律吧~ - 左边为满二叉树 - 右边为完全二叉树 - 红色部分表示被节点被删去现在懂了吧!实现/*以下代码全部演示堆排序*/##include<iostream>#include<cstdio>#define maxn 10
2017-06-04 23:04:01 300
原创 Luogu P1616 疯狂的采药+完全背包
不用markdown确实不那么习惯~~题目大意分析原题是0-1背包,这题就变成完全背包了~~~完全背包与0-1背包几乎没有区别666丢代码跑Code#include#includeusing namespace std;int i,m,n,j,k;int a[10001],w[10001],ans[100001];int main(){ cin
2017-02-10 14:09:24 354
原创 Luogu P1216 数字金字塔+动态规划
题目大意观察下面的数字金字塔。 写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以走到左下方的点也可以到达右下方的点。 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5上面的例子中7->3->8>7>5最大,为30分析还有什么犹豫的?直接动归! 令a[i][j]为从第i行第j类开始往下走的最大值。那么a[i][j]=max(
2017-01-28 15:06:35 1263
原创 Luogu P1795 无穷的序列+bitset的福利
题目大意有一个无穷序列如下:110100100010000100000……请你找出这个无穷序列中指定位置上的数字。分析观察1的位置就会发现有规律。1的位置为:1 2 4 7 11…… 所以1的位置可以记录下来。但是我还是有N次没A!我真%我自己一堆代码代码1(70分,纯粹暴力)不TLE就怪了#include<iostream>using namespace std;int i,m,n,j,k;
2017-01-26 19:25:36 438
原创 Luogu P1102 A-B数对+map
题目大意给出一串数以及一个数字C,要求计算出所有A-B=C的数对的个数。分析本题有如下几种思路暴力枚举 O(n^2)桶排 炸内存REmap大法好那什么是map呢?才不告诉你。思路1代码#include<bits/stdc++.h>using namespace std;int i,m,n,j,k;int a[200001];bool cmp(int a,int b){ ret
2017-01-24 13:28:36 399
原创 Luogu P2908 文字的力量
题目大意分析直接模拟。先把所有字符串转换成大写,然后手打一个find()来判断是否含有“good string”。代码#include<bits/stdc++.h>using namespace std;char cow[1001][1000],l[101][30];int lb[101],la[1001];int j;//长度是用来优化各种函数的void biga(int x){
2017-01-22 20:20:26 300
原创 Luogu P1208 混合牛奶
题目大意分析这个题目直接开个结构体按价格排序,然后一直加加加,就可以了。 典型的贪心。代码#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<cstdlib>using namespace std;int i,m,n,j,k,ans;struct
2017-01-22 12:15:08 246
原创 Luogu P1981 表达式求值
题目大意给你一个只包含0~ 9、+、*这 12 种字符的算式,求出它的值mod 10000分析这题目有一个北大的神犇哥哥给我们讲过(我无耻的没有听懂),他说要用:字符串后缀表达式栈60多行的程序Orz!%%%其实呢,简单的模拟就好了…… 反正输入的结尾是’\n’,那么我们就用一个while来输入就好了。 然后最后一个数嘛,就用一个标记判断是加法还是乘法,并用k来记录下前一个数。 说实
2017-01-22 11:56:44 612
原创 Luogu P2970 自私的放牧+线段覆盖
题目大意FJ有一群牛,她们只喜欢在一个特定的地方吃草。现在给你范围,求最多能有几头Cow能同时吃草。分析这个题目其实有点类似线段覆盖问题。思路稍微想想就能出来:先 多关键字排序(后端点在前面、长度长一些),然后从第一头牛开始贪心,只要没有公共部分就ans++,然后记录下来之前是那一头牛被“贪心”了。代码#include<iostream>#include<cstdio>#include<cst
2017-01-19 10:54:56 253
原创 Luogu P2799 国王的魔镜
题目大意有个国王有一面interesting 的镜子,这个镜子可以把一个字符串复制,但是是反的。比如说:czy———镜子大法好———>czyyzc这个国王用镜子对某个字符串搞了一些事情后,有了一个新的字符串。国王告诉你这个字符串,问你原字符串的长度分析这显然就是一个回文的判断。直接拆字符串,直到两种情况发生就输出长度。字符串的长度成了奇数字符串不回文就是这样一个简单的模拟呀!AC代码#incl
2017-01-18 12:31:48 351
原创 Luogu P2925 干草出售+0-1背包
题目大意FJ要去买干草,卖方像LK一样抠,只一包一包地卖,每包的体积不同。FJ只能买C (1≤C≤50000) 个单位的干草,卖方有H (1≤H≤5000) 包干草,每一包都有它的体积Vi (l≤Vi≤C)分析本题中,每包干草的成本=价值,于是可以直接用动态规划,转化成0-1背包问题代码#include<iostream>#include<cstdio>using namespace std;
2017-01-16 12:35:22 324
原创 Luogu P1540 机器翻译
题目背景 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。题目描述 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。
2016-12-23 18:40:33 702
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人