STL
Bahuia
软件工程博士
展开
-
CF - 733D STL
题意:有n个长方体,长宽高分别是ai,bi,ci,现在要选择其中一个或者两个长方体,如果选择两个长方体要拼成一个,必须要有一面完全一样,求这样选择的长方体的最大内切球体积为多少?思路:利用map 代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;const int MAXN = 1e5 + 10;map < p原创 2016-11-06 20:10:20 · 334 阅读 · 0 评论 -
51Nod - 1024 对数+暴力
题意:一个m*n的矩阵。该矩阵的第一列是a^b,(a+1)^b,.....(a + n - 1)^b第二列是a^(b+1),(a+1)^(b+1),.....(a + n - 1)^(b+1).......第m列是a^(b + m - 1),(a+1)^(b + m - 1),.....(a + n - 1)^(b + m - 1)(原创 2016-12-21 11:51:25 · 758 阅读 · 0 评论 -
51Nod - 1094 暴力 + map
题意:一整数数列a1, a2, ... , an(有正有负),以及另一个整数k,求一个区间[i, j],(1 <= i <= j <= n),使得a[i] + ... + a[j] = k。Input第1行:2个数N,K。N为数列的长度。K为需要求的和。(2 <= N <= 10000,-10^9 <= K <= 10^9)第2 - N + 1行:原创 2017-01-01 21:55:57 · 443 阅读 · 0 评论 -
51Nod - 1090
题意:给出一个长度为N的无序数组,数组中的元素为整数,有正有负包括0,并互不相等。从中找出所有和 = 0的3个数的组合。如果没有这样的组合,输出No Solution。如果有多个,按照3个数中最小的数从小到大排序,如果最小的数相等则按照第二小的数排序。思路:利用map存储每个数的下标,枚举其中两个数,然后O(logn)时间查询第三个数,并且用一个long long数字保存三个数下标原创 2016-12-18 21:38:03 · 574 阅读 · 0 评论 -
51Nod - 1521 STL +二分
题意:爱丽丝和鲍博喜欢玩一维战舰的游戏。他们在一行有n个方格的纸上玩这个游戏(也就是1×n的表格)。在游戏开始的时候,爱丽丝放k个战舰在这个表格中,并不把具体位置告诉鲍博。每一只战舰的形状是 1×a 的长方形(也就是说,战舰会占据a个连续的方格)。这些战舰不能相互重叠,也不能相接触。然后鲍博会做一系列的点名。当他点到某个格子的时候,爱丽丝会告诉他那个格子是否被某只战舰占原创 2016-12-21 09:55:44 · 552 阅读 · 0 评论 -
EOJ-3218 思维 + STL
题意:题目链接:http://acm.ecnu.edu.cn/problem/3218/思路:map维护信息,key表示长度为len的连续空位,value为这样的空位的数目。代码:#include <bits/stdc++.h>using namespace std;typedef long long LL;const int MAXN = 1e5 + 10;map <LL, LL> ::原创 2017-05-18 17:23:57 · 366 阅读 · 0 评论 -
hihocoder 1534 微软探星夏令营笔试A题 (STL)
题意:题目链接:http://hihocoder.com/problemset/problem/1534 一串长度为n的序列,分成三段,要求三段数字总和两两之间差的绝对值不超过1,问一共有多少种不同的分割方案。思路:只需要分成三段,那么枚举第一刀的位置,然后再查询之后有哪些位置分割之后,三段和可以满足条件即可,利用map维护前缀和的数目就行了。代码:#include <cstdio>#inclu原创 2017-07-20 11:19:37 · 704 阅读 · 0 评论 -
HDU 5036 期望+传递闭包+bitset优化
题意:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5036 给出n个门,每个门之后有一些钥匙,每个钥匙对应一扇门,可以用钥匙打开门或者用炸弹炸开门,问在任意情况下,打开所有门所使用炸弹次数的期望是多少?思路:对于一个门来说,如果可以求出有k个门打开后,就可以到达他,那么只炸一次,就能打开这个门的概率为k/n,因为这里考虑的是任意选择门,也就有可能包原创 2017-08-09 18:11:25 · 580 阅读 · 2 评论 -
HDU 6085 暴力bitset
题意:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6085 给出两个序列a和b,问有多少对(i,j)满足ai%bj==k。思路:假设当前枚举的余数是x,就要求出满足(a[i]-x)%b[j]==0的个数 将数组a中地每个数用bitset中的一位来表示,那么(a>>x)就是数组a中每个元素都减去x后的出现情况。我们只要知道此时出现过的数a[i]中是原创 2017-08-31 14:53:07 · 468 阅读 · 0 评论