首页 > 其他分享 >CodeForces-1005#C

CodeForces-1005#C

时间:2022-11-12 18:45:45浏览次数:76  
标签:false leftarrow CodeForces gg num 1005 unordered

正文

将原式 \(a_i+a_j=2^p\) 转化为 \(a_j=2^p-a_i\),对于,每个 \(a_i\),枚举 \(p\),可以有效地降低时间复杂度。

设 \(num\leftarrow 0\),若 \(2^p-a_i\) 存在相等的 \(a_j\),则 \(num\leftarrow num+1\),最后输出 \(n-num\),可以通过 unordered_map 实现匹配。

代码:

#include<iostream>
#include<unordered_map>
#define gg long long
using namespace std;
const gg INF=2e9+5;
gg n,a[120005],ans;
unordered_map<gg,gg> s;
int main(){
	ios::sync_with_stdio(false),cin.tie(0);
	cin>>n;
	for(gg i=1;i<=n;i++)	cin>>a[i],s[a[i]]++;
	for(gg i=1;i<=n;i++){
		s[a[i]]--;
		gg p=1;
		bool flag=true;
		while(p<=INF){
			if(s[p-a[i]]>0)	flag=false;
			p<<=1;
		}
		if(flag)	ans++;
		s[a[i]]++;
	}
	cout<<ans;
}

提交记录

后附

日志

v1.0 on 2022.11.11: 发布

标签:false,leftarrow,CodeForces,gg,num,1005,unordered
From: https://www.cnblogs.com/wanguan/p/16884387.html

相关文章

  • CodeForces - 1092F Tree with Maximum Cost
    题意:给出一棵树,每个结点有一个权值。定义一棵树以ai为根节点的价值为 剩下每个结点到根节点的距离乘权值 之和。求这棵树的最大价值。解:随便选一个结点为根,从下到上统......
  • Codeforces 1738 / Codeforces Global Round 22
    目录ContestLinkProblemAGloryAddictsProblemBPrefixSumAddictsProblemCEvenNumberAddictsProblemDPermutationAddictsProblemEBalanceAddictsProblemF......
  • 「题解」Codeforces 1342F Make It Ascending
    只会\(\mathcal{O}(3^nn^2)\),打开题解一看怎么还真是这个玩意/jy首先集合之间形成一个sum和pos的二维偏序,那么思路就是对一维扫描线,然后另一维搞个什么东西。具体到......
  • 塔防(cover)Atcoder/Codeforces的某道题
    题目背景在某个塔防游戏中,有一种防御塔,可以攻击到上下左右四个方向以及自身位置的敌人。题目描述塔防游戏的⼀个关卡地图可以看作⼀个的矩阵,也就是⾏,列的矩阵。其......
  • Codeforces Round #172 (Div. 1) C. Game on Tree(期望的线性性质)
    题意是给出一棵有根树,每次等概率删除一个点以及以其为根的子树,问删完整棵树的期望步数。暴力枚举方案显然不可,考虑期望的线性性质,将问题转化为删除每个点的期望步数再求和......
  • Educational Codeforces Round 109 (Rated for Div. 2) E. Assimilation IV(期望的线性
    题意是有n个城市和m个点,已知每个城市到每个点的距离为\(a_{ij}\),每秒进行一次操作,每次随机选一个没选过的城市建一个碑,其影响的范围每秒加一,求n秒后被影响的点数的期......
  • Codeforces Round #688 (Div. 2) D
    D.Checkpoints对于单独的一个1我们知道他的贡献为211呢贡献值为4101贡献值为81001贡献值为16然后二进制拼凑就可以了对于有奇数的显然-1voidsolve(){int......
  • Codeforces Round #695 (Div. 2) C
    C.ThreeBags我们发现这个题无非就是找一个最小的吸收了其他两组的数再回报过去但是自己组的只有两种选择要吗直接负汇报过去要吗就又要牺牲另一组的最小的一个数吸......
  • CodeForces - 1156D 0-1-Tree
    题意:给出一棵树,树的边权只有0和1。求有多少有序点对,其最短路径上每条权值为0的边不紧跟在权值为1的边后面。解:合法路径如下所示:000000 111111 000111 随便找个结点为......
  • Codeforces Round #697 (Div. 3) F
    F.UnusualMatrix这种题两种操作就相当于那种差分后再总体减的那种我们考虑先只进行一种操作比如说是行我们对于每一行应该只有可能经过0/1次变换都变成一摸一样的......