stl
ijbuhv
这个作者很懒,什么都没留下…
展开
-
poj2796Feel Good 单调栈
//一个长度为n的序列,对于一个区间中的value为这个区间的最小值乘上这个区间的所有数的和//这就是找每一个点,找以其为最小值的区间//显然直接暴力法找必然超时//可以开一个单调递增栈,对于每一个新元素a[i]//当前值小于等于栈顶元素,表示以栈顶元素为最小值的区间的右端是i//栈顶元素a[j]出栈 , 由于是单调递增栈,新的栈顶元素a[k]必然小于a[j],故需要更新新的栈原创 2015-05-26 20:53:42 · 4585 阅读 · 0 评论 -
hdu5361In Touch set
//在一条线上,有n(<=2e5)个点,每个点只能到与其距离//在l[i],r[i]之间,且需要花费c[i] , 问从1点到所有点的//最小花费//可以知道从一点到在距离其为l[i],r[i]的所有点的距离是最小的//所以这些点到第一点的距离是相等的//然后就可以用set维护一下就行#include#include#include#includeusing namespace原创 2015-11-06 14:19:26 · 288 阅读 · 0 评论 -
hdu4268Alice and Bob 贪心+multiset
//a,b个有n张卡片,每张卡片都有高度和宽度//问a最多能盖住多少张b的卡片//一张卡片要盖住另一张的条件是高度h和宽度w都要大于另一张//很明显的贪心//对于b在a中h大于它的宽度找刚好大于等于它的//用multiset维护#include#include#include#include#includeusing namespace std ;const int max原创 2015-10-07 20:24:17 · 313 阅读 · 0 评论 -
hdu5131Song Jiang's rank list 水题
//给出每一个人的杀的人数//对其按照杀的人数从大到小排序//如果人数相同 , 则按照名字的字典序排序//问每个人的在杀的人数相同的人数的名次和//在整个名次减去和其杀的人数相同,但名次在其之前的所有人后的名次#include#include#include#include#includeusing namespace std ;const int maxn = 310 ;原创 2015-09-17 20:05:58 · 321 阅读 · 0 评论 -
hdu5437Alisha’s Party set模拟
//一个人邀请n个人做客//先开m次门, 第i次开门 ,//是当第ti个人到了,放pi个人回来//放的pi个人是在门外的人以礼物的价格排序//如果礼物一样 , 先到的先进//当所有人都到了后 , 开门将所有人放进来//最后给出询问 //问第qi次到达的是谁//直接set模拟就行#include#include#include#include#includeusing n原创 2015-09-15 20:44:20 · 432 阅读 · 0 评论 -
hdu4923Room and Moor
//序列A为01序列//找一个序列b使得(b[i] <= b[i+1] , 0 <= b[i] <= 1)//且使得segma((a[i] -b[i])^2) (1<=i<=n)最小 , 求这个最小值//对于开头的0和结尾的1 ,直接为0//将这些序列分为1111000 前面都是1,后面都是0的子序列//对于这些子序列的每一个子序列都是相等的,因为要其尽可能的小//那么对于前面的全1串原创 2015-09-01 22:30:43 · 430 阅读 · 0 评论 -
hdu5344MZL's simple problem stl set
// 1 x 在set中加x//2 删除集合中的最小元素//3 输出集合的最大元素#include<cstdio>#include<cstring>#include<iostream>#include<set>using namespace std ;const int maxn = 1e6+10 ;multiset<int> ms ;int main(){ int n原创 2015-08-04 18:33:44 · 520 阅读 · 0 评论 -
hdu4277USACO ORZ dfs暴力枚举+map
//给N个 问rails用着N个rails能构成几个不同的三角形//dfs暴力枚举+(map)#include<cstdio>#include<cstring>#include<map>#include<iostream>using namespace std ;int ans ;int a[20] ;int n ;int sum = 0 ;struct node{原创 2015-07-27 13:27:09 · 861 阅读 · 0 评论 -
Codeforces Round #172 (Div. 1) BMaximum Xor Secondary 单调栈
//给一个长度为N的个不相同的序列,找出所有区间中最大值和第二大数的异或值最大的值//对于所有区间只需要找其最大值和第二大数,所以对于很多区间的结果是重复的//对于每一个数,它起作用的区间只有在其前面最多只有一个数是大于它的//可以用一个单调递减栈来做,对于每一个新的数a[i],在它前面第一个大于它的数a[j]//和第二个大于它的数之间的数到a[i]的区间的数的最大值和第二大数为a原创 2015-05-26 19:12:26 · 1124 阅读 · 0 评论 -
hdu5596GTW likes gt stl set
#include#include#include#includeusing namespace std ;const int maxn = 50000+10 ;multiset se[2] ;int id[maxn] ;int b[maxn] ;int c[maxn] ;int main(){ int t ; scanf("%d" , &t) ; wh原创 2015-12-12 21:26:53 · 469 阅读 · 0 评论