STL
Wuliwuliii
谁无暴风劲雨时,守得云开见日明!
展开
-
PowerOJ2546: fork【C++ STL __gnu_cxx::rope】
题目链接我们可以这样定义一个可持久化数组rope<int> rp;push_back(x):在末尾添加x (x是int)erase(pos, x): 从pos开始删除x个at(x)/[x]:访问第x个元素用以上这些操作可以解决这道题了,但是rope还有其他的操作:如果将rope用来维护char类型,那么:rope<char> rp;push_back(x):在末尾添加x (x是char)insert(pos,x):在pos插入x (x是字符串,原创 2020-10-16 20:47:16 · 270 阅读 · 0 评论 -
[USACO18FEB]Snow Boots G【set】
题目链接 P4269 [USACO18FEB]Snow Boots G 我们可以按照离线的方式,先进行离散化,然后再看当每个高度的最少需要的距离由此判断答案的可行性,于是可以用两个set(其中一个得是multi)来进行维护。 一个维护点坐标,这样当一个点插入的时候,就可以缩短两端的距离了。 另一个存储最远距离,存储答案。#include <iostream>#include <cstdio>#include <cmath>#include &...原创 2020-05-28 20:49:12 · 250 阅读 · 0 评论 -
Calculator Conundrum【模拟+循环节】
题目链接 uva - 11549 题意:给出位数上限N,当前数初值K,每次我们可以使得K变成K*K,然后呢,如果新的K超过了位数,取前N位,问最大的K是多少? 思路:很明显的,这最后会产生循环节,因为它取的方式是有迹可循的,所以用一个办法存一下循环节就可以了。#include <iostream>#include <cstdio>#include <cmath>#include <string>#include <cstring..原创 2020-05-10 13:44:10 · 241 阅读 · 0 评论 -
Facer帮父亲
题目链接 如果只有一个人买票的话,那么收益为; 如果两个人买票的话,那么总收益为; 以此类推,如果有x个人买票的话,总收益为; 那么,第x个人买票的额外收益额为 这道题的K比较的小,只有1e5,所以我们可以用堆维护这个的最大值,表示第x人去买票,当然,如果收益额小于等于0了,就没必要卖票了。#include <iostream>#include &...原创 2020-04-15 10:23:13 · 134 阅读 · 0 评论 -
c++四舍五入函数,向上取整,向下取整函数
对含有小数点的数进行四舍五入是比较普遍的一种需求。在C++中也有类似的取整函数。在C++的头文件中有floor()和ceil()函数。在STL中还有round()函数。向下取整 floor()向上取整ceil()四舍五入取整round()...原创 2020-03-31 16:28:25 · 891 阅读 · 0 评论 -
Cut the Sequence 【单调队列(栈)+堆优化DP】
题目链接 POJ - 3017 超级好的一道题目,从早上先写一个诡异的线段树(当然是错的),逐步推到了单调栈和单调队列,历时很久很久——题记。 将我的解题思路慢慢的展开: 首先,为什么会想到线段树呢,因为这很容易化简成为一个区间dp的形式,就是 这个dp还是比较容易想到的,然后呢,看到这里有一个区间最小值,然后再来就是一个单点更新,以及一个不断放进去的很容易想到用线段树...原创 2020-03-04 21:19:57 · 395 阅读 · 0 评论 -
Explosion 【HDU - 5036】【bitset优化矩阵乘法】
题目链接 有两个大小为N *N的矩阵,我们现在想知道它们的乘积是多少。 首先,因为要对答案去取模,并且这个模数极其特殊,大致就知道如果直接暴力矩阵乘法()是一定会TLE的(试过了…… ) 然后,就是优化了,我们现在看一下0、1、2两两相乘有什么特殊的情况:const short int dir[3][3] ={ 0, 0, 0, 0, 1, 2, ...原创 2020-01-06 10:12:25 · 437 阅读 · 0 评论 -
Set Operation 【POJ - 2443】【bitset初探】
题目链接 给你N个集合,第i个集合S[i]有C[i]个元素(注意此处集合并非C++的set,而是允许存在两个相同元素)。每个元素为1到10000之间的整数。接着给你几个问题。对于每个问题给出的元素i,j,你要判断它们是否同时属于一个集合。换句话说,是否存在k(1<=k<=N)可以使i和j均存在与S[k]中。 因为这里的N不是很大,所以,我们可以枚举每个值所在的位置,也就是储...原创 2020-01-06 09:19:05 · 589 阅读 · 0 评论 -
unordered_map的哈希HASH重载——举例unordered_map与pair联合使用
有些时候,为了图省力,我们没准会这样的调用一个函数unordered_map< pair<int, int>, int > mp;但是很显然的是,这样的写法是会报错的,因为pair还没有HASH键值。error: call to implicitly-deleted default constructor of 'std::__1::hash<std:...原创 2019-12-18 15:36:46 · 4017 阅读 · 3 评论 -
Codeforces Round #571 (Div. 2)
contest链接A. Vus the Cossack and a Contesttime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputVus theCossackholds a programming co...原创 2019-07-05 11:44:44 · 239 阅读 · 0 评论 -
Codeforces Round #565 (Div. 3)
A. Divide it! 直接暴力求解,看看能不能用上面的这几种方法使得给出的数变成1?#include <iostream>#include <cstdio>#include <cmath>#include <string>#include <cstring>#include <algorithm>...原创 2019-06-10 18:22:21 · 300 阅读 · 0 评论 -
Double Queue 【POJ - 3481】【SET】
题目链接 知道这道题可以用splay tree去做,但是先想到的肯定会是set的解法,然后再去考虑splay的做法,那么就先放上set的做法了。#include <iostream>#include <cstdio>#include <cmath>#include <string>#include <cstring>...原创 2019-05-07 23:12:50 · 226 阅读 · 0 评论 -
Word Amalgamation 【HDU - 1113】【题意+map】
题目链接 题意:我们先给出一系列基础字符串,之后用“XXXXXX”隔开,我们将列写查询字符串,假如查询字符串换一种排列可以得出上面的字符串,那么,我们就输出上面的字符串,不然输出:“ NOT A VALID WORD ”。这就是一道关于STL中map的应用题。 完整代码:#include <iostream>#include <cstdio>#i...原创 2018-10-16 19:54:58 · 181 阅读 · 0 评论 -
Mines【HDU - 4400】【离散化+BFS+STL】
题目链接 思路爆炸!!!这道题简直了,我写这片文章给自己理清思路,也给读者一个清晰的写法。 思路: 很明显的离散化,点少、值大,所以用了离散化,怎么离散化呢??我的想法就是对于x我们进行离散化,然后只需要去找符合条件的y即可确定爆炸与否(题目还是人性化的给的是曼哈顿距离,不然真的是得有KD-Tree还真不会),我们在输入的时候把x存入x_hash[]的数组中去,存完后对x_ha...原创 2018-09-25 17:39:41 · 254 阅读 · 0 评论