利用MAP存数据,防止超时,一开始用了两个for 循环CodeForces - 702B

Posted wangzhelin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用MAP存数据,防止超时,一开始用了两个for 循环CodeForces - 702B相关的知识,希望对你有一定的参考价值。

#include<bits/stdc++.h>

using namespace std;

map <int,int> M;

long long ans;

int main()
{
	int n,a;
	cin>>n;
	while(n--)
	{
		cin>>a;
		for(int i=0;i<=31;i++)
		    ans+=M[(1LL<<i)-a];
		M[a]++;
	}
	cout<<ans;
}

以上是关于利用MAP存数据,防止超时,一开始用了两个for 循环CodeForces - 702B的主要内容,如果未能解决你的问题,请参考以下文章

HDU 1015 Safecracker(第一次用了搜索去遍历超时,第二次用for循环能够了,思路一样的)

Java复习 之容器

PAT甲题题解-1063. Set Similarity (25)-set的使用

HDU 1043 八数码问题的多种解法

CSP 202006-2 稀疏向量

从零开始学Java-Day16