stl
文章平均质量分 56
ijbuhv
这个作者很懒,什么都没留下…
展开
-
poj2796Feel Good 单调栈
//一个长度为n的序列,对于一个区间中的value为这个区间的最小值乘上这个区间的所有数的和 //这就是找每一个点,找以其为最小值的区间 //显然直接暴力法找必然超时 //可以开一个单调递增栈,对于每一个新元素a[i] //当前值小于等于栈顶元素,表示以栈顶元素为最小值的区间的右端是i //栈顶元素a[j]出栈 , 由于是单调递增栈,新的栈顶元素a[k]必然小于a[j],故需要更新新的栈原创 2015-05-26 20:53:42 · 4589 阅读 · 0 评论 -
hdu5361In Touch set
//在一条线上,有n(<=2e5)个点,每个点只能到与其距离 //在l[i],r[i]之间,且需要花费c[i] , 问从1点到所有点的 //最小花费 //可以知道从一点到在距离其为l[i],r[i]的所有点的距离是最小的 //所以这些点到第一点的距离是相等的 //然后就可以用set维护一下就行 #include #include #include #include using namespace原创 2015-11-06 14:19:26 · 294 阅读 · 0 评论 -
hdu4268Alice and Bob 贪心+multiset
//a,b个有n张卡片,每张卡片都有高度和宽度 //问a最多能盖住多少张b的卡片 //一张卡片要盖住另一张的条件是高度h和宽度w都要大于另一张 //很明显的贪心 //对于b在a中h大于它的宽度找刚好大于等于它的 //用multiset维护 #include #include #include #include #include using namespace std ; const int max原创 2015-10-07 20:24:17 · 318 阅读 · 0 评论 -
hdu5131Song Jiang's rank list 水题
//给出每一个人的杀的人数 //对其按照杀的人数从大到小排序 //如果人数相同 , 则按照名字的字典序排序 //问每个人的在杀的人数相同的人数的名次和 //在整个名次减去和其杀的人数相同,但名次在其之前的所有人后的名次 #include #include #include #include #include using namespace std ; const int maxn = 310 ;原创 2015-09-17 20:05:58 · 326 阅读 · 0 评论 -
hdu5437Alisha’s Party set模拟
//一个人邀请n个人做客 //先开m次门, 第i次开门 , //是当第ti个人到了,放pi个人回来 //放的pi个人是在门外的人以礼物的价格排序 //如果礼物一样 , 先到的先进 //当所有人都到了后 , 开门将所有人放进来 //最后给出询问 //问第qi次到达的是谁 //直接set模拟就行 #include #include #include #include #include using n原创 2015-09-15 20:44:20 · 436 阅读 · 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 · 435 阅读 · 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 · 527 阅读 · 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 · 866 阅读 · 0 评论 -
Codeforces Round #172 (Div. 1) BMaximum Xor Secondary 单调栈
//给一个长度为N的个不相同的序列,找出所有区间中最大值和第二大数的异或值最大的值 //对于所有区间只需要找其最大值和第二大数,所以对于很多区间的结果是重复的 //对于每一个数,它起作用的区间只有在其前面最多只有一个数是大于它的 //可以用一个单调递减栈来做,对于每一个新的数a[i],在它前面第一个大于它的数a[j] //和第二个大于它的数之间的数到a[i]的区间的数的最大值和第二大数为a原创 2015-05-26 19:12:26 · 1132 阅读 · 0 评论 -
hdu5596GTW likes gt stl set
#include #include #include #include using 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 · 476 阅读 · 0 评论