
栈和队列
大 聪 明
Big Smart
展开
-
次佛锅(map)
链接 分析:记录子字符串出现的次数,首选map<string,int>,所以必须用c++语句 AC代码: #include<bits/stdc++.h> using namespace std; int main() { string s; int m,n; map<string,int>m1; while(1) { cin>>s; if(s[0]=='0') { return 0; } if(s[0]<'0'||原创 2022-03-28 19:52:43 · 276 阅读 · 0 评论 -
POJ - 3190 Stall Reservations(结构体优先队列)
链接 这里有N只 (1 <= N <= 50,000) 挑剔的奶牛! 他们如此挑剔以致于必须在[A,B ]的时间内产奶(1 <= A <= B <= 1,000,000)当然, FJ必须为他们创造一个决定挤奶时间的系统.当然,没有牛想与其他奶牛分享这一时光 帮助FJ做以下事: 使每只牛都有专属时间的最小牛棚数 每只牛在哪个牛棚 也许有很多可行解。输出一种即可,采用SPJ Input 第一行一个数字 N 第 2…N+1行: 第 i+1行 描述了i号奶牛挤奶的起止时间 Output原创 2022-03-25 20:28:13 · 496 阅读 · 0 评论 -
CodeForces - 1526C2 Potions (Hard Version)(优先队列 贪心)
LINK 题意:给出n个药水,初始生命为0,问在生命值为非负数的情况下最多可以喝多少瓶药水 分析:药水按顺序喝,如果为整数就加到当前生命值中,如果为负数就放入优先队列,当生命值为负的时候,加上优先队列中第一个的绝对值,数量-1 相当于反悔了,每次都反悔喝过之前的负数最大的 AC代码: #include<bits/stdc++.h> #include<queue> using namespace std; typedef long long ll; int a[200010]; int原创 2022-03-17 20:26:56 · 387 阅读 · 0 评论 -
计蒜客 - A1638合并数字(栈队列维护降低复杂度)
LINK 蒜头君得到了 n 个数,他想对这些数进行下面这样的操作,选出最左边的相邻的差的绝对值为 1 的两个数,只保留较小的数,删去较大的数,直到没有两个相邻的差的绝对值为 1的数,问最多可以进行多少次这样的操作? 输入格式 输入第一行为一个整数 n(1≤n≤10^5) ,表示数字的总数第二行为 n 个整数 x1,x2,…,xn(0≤xi≤10^9), ,表示这些数。 输出格式 输出一行,为一个整数,表示蒜头君最多可以进行多少次这样的操作。 Sample Input 4 1 2 0 1 Sample Out原创 2021-07-09 11:26:54 · 132 阅读 · 0 评论