hpu_hdy
hpu_hdy
全部文章
题解
归档
标签
去牛客网
登录
/
注册
hpu_hdy的博客
全部文章
/ 题解
(共24篇)
51 nod 1215 数组的宽度
**题,写线段树的时候懒得写query_min了直接cv的max然后cv错了,找了半天。就只需要找到每个区间最大的值相加减去每个区间最小的相加。然后每一个值他的贡献数是(mid-l+1)*(n-i+1).正解是单调栈(不会写,等会了在补。 #include<bits/stdc++.h> ...
51nod
2020-11-20
0
485
51 nod 1153 选择子序列
这个题的题意好难说啊,a[b[i]]要从大到小,直接dfs就行了。 #include<bits/stdc++.h> #define fp(i,a,b) for(int i=a;i<=b;i++) typedef long long ll; typedef double dl; us...
51nod
2020-11-20
0
372
51 nod 1682 中位数计数
n数据是8000,O(n^2)复杂度就能过。因为中位数是按从小到大排序后的中间数。所以对一个区间a[l]到a[r]我们只需要小于a[i]和大于a[i]的个数相等就行。所以在查询每个a[i]的时候我们在遍历1-i的时候如果a[i]<a[j]就cnt++,a[i]>a[j]就cnt--,为啥...
51nod
2020-11-20
0
419
51nod 1255 字典序最小的子序列
单调栈问题遍历一遍字符串,如果s[i]小于栈中的元素并且这个栈顶元素后面还有就将栈顶元素弹出。入栈就将元素标记,如果已经标记过后面遇到vis[s[i]]=1的就continue,因为如果这个时候s[i]元素已经在栈内,说明此时的栈首一定是大于等于s[i]的因为栈顶元素小于s[i],我们在遍历到栈顶元...
51nod
2020-11-19
0
378
51 nod 1449 砝码称重
这个题,我一看!嗷!,原来是一个贪心题,很快啊,我看了看没有思路,队友A了,我大意了啊,没有闪,不然我肯定自己A。队友不讲武德,把我的51nod币用完了。希望队友耗子尾汁,好好反思,以后不要再犯这样的聪明,小聪明。 #include<bits/stdc++.h> #define fp(i...
51nod
2020-11-18
0
438
51nod 1672 区间交
将右端点放进线段树,然后枚举左端点。先对l,r排序。因为需要k个区间的相交,所以我们先将前k-1个的区间右端点放进线段树。然后在枚举k到m的时候每次将右端点放入,然后查找边界的最右边。因为l是从小到大排序,所以查找的位置一定是从后往前找第k个的数(这点不懂的可以私我),即叶子节点所以在的位置,注意这...
51nod
2020-11-18
0
408
51nod 2202 做任务二
multiset因为我要查找的是容器内有没有小于等于当前这个数的。因为stl没有这种操作,所以我们只需要将其转变为负值就行了。思想是如果一个人可以干就让他一直干,时间冲突了就加一个人。每次把右端点放进去.然后查找的时候查找左端点就行了。排序的时候我一开始想的是r从小到大.l从大到小.这样是不对的.....
51nod
2020-11-18
0
472
51 nod 2464 货币系统
n数据范围100,货币是25000,用背包去处理下每个价格需要几张组成,然后遍历一遍,=1的都是新货币系统的。 #include<bits/stdc++.h> #define fp(i,a,b) for(int i=a;i<=b;i++) typedef long long ll;...
51nod
2020-11-18
0
577
51nod 1658 01交替子序列
先遍历一遍找一遍,如果s[i]和s[i+1]不同的个数是n-1个说明字符串是长度为n的交替子序列如果是n-2个则说明里面有一个11或者00 78 01010101010101010101010101010110101010101010101010101010101010101010101010101...
51nod
2020-11-18
0
443
51nod 1128 正整数分组 V2
二分答案。。因为是单调函数,如果k越大,x就越小。 #include<bits/stdc++.h> #define fp(i,a,b) for(int i=a;i<=b;i++) typedef long long ll; typedef double dl; using name...
51nod
2020-11-18
0
522
首页
上一页
1
2
3
下一页
末页