一、单项链表的实现 struct list *create_list()//建立一个节点 void traverse(struct list *ls)//循环遍历链表 struct list *insert_list(struct list *ls, int n, int data)//在指定位置插 ...
分类:
其他好文 时间:
2018-11-21 19:44:29
阅读次数:
130
链接:https://www.luogu.org/problemnew/show/P1972 好题 last数组是本题的关键. last数组是一个链表,链接上一个相同颜色的位置. 考虑如何操作. 用树状数组维护. 树状数组p[i]表示第i个位置的值(值代表这个颜色是否有效) 先把操作离线下来(经典操 ...
分类:
其他好文 时间:
2018-11-07 20:02:09
阅读次数:
174
传送门 我才不会说我这个题D了好久 区间dp可是一大骗分利器 要写熟练 如果第一层循环要枚举长度真的不如记搜 Time cost: 25min 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<cmath> ...
分类:
其他好文 时间:
2018-11-03 22:02:57
阅读次数:
172
这道题在线不好做,但是可以离线...... 就是把所有的询问都读进来,按照r排序, 扫描原序列,并且记录这种颜色上一次出现的位置, 这样每次add(i,1) add(last[val[i]],-1) (last[val[i]]!=0) 如果是一个询问的左端点,就利用树状数组的前缀和进行统计 这道题不 ...
分类:
其他好文 时间:
2018-11-03 17:30:49
阅读次数:
160
分析: 题目描述不说了,大意是,求一段区间内不同元素的种数。 看到区间,我们大概先想到的是暴力(然后炸掉)、线段树、树状数组、分块。 下面给出的是一种树状数组的想法。 首先,对于每一段区间里的数,如果出现重复的元素,我们只需要看最后一个就好了。所以,我们可以对所有需要查询区间的右端点进行从小到大的排 ...
分类:
其他好文 时间:
2018-10-28 11:14:42
阅读次数:
143
题目描述 有一条彩色宝石项链,是由很多种不同的宝石组成的,包括红宝石,蓝宝石,钻石,翡翠,珍珠等。有一天国王把项链赏赐给了一个学者,并跟他说,你可以带走这条项链,但是王后很喜欢红宝石,蓝宝石,紫水晶,翡翠和钻石这五种,我要你从项链中截取连续的一小段还给我,这一段中必须包含所有的这五种宝石,剩下的部分 ...
分类:
其他好文 时间:
2018-10-27 14:49:33
阅读次数:
123
#include #include #include #include #include using namespace std; int d[30][30005]; //d[i][j] i件中,j重量的物品 ,价格最高 int v[30],w[30]; int Max(int a,int b) {... ...
分类:
其他好文 时间:
2018-10-22 22:19:48
阅读次数:
175
#include #include #include #include #include using namespace std; struct HY { int u,v; }hy[10005]; bool cmp(HY a,HY b) { if(a.v == b.v) return a.u>b.u... ...
分类:
其他好文 时间:
2018-10-22 22:15:22
阅读次数:
244
题目描述 HH 有一串由各种漂亮的贝壳组成的项链。HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH 不断地收集新的贝壳,因此,他的项链变得越来越长。有一天,他突然提出了一个问题:某一段贝壳中,包含了多少种不同的贝壳?这个问题很难回答……因为项链实在 ...
分类:
其他好文 时间:
2018-10-17 00:13:45
阅读次数:
150