貌似O(n)算法还是只能到20ms
查看原帖
貌似O(n)算法还是只能到20ms
244165
_121017_楼主2020/12/7 13:12

rtrt

#include<bits/stdc++.h>
#define ri register int
using namespace std;
int n;
int d[13000],len;
inline int read() {
	int x = 0;
	char ch = getchar();
	while(!isdigit(ch)) ch=getchar();
	while(isdigit(ch)){
		x=x*10+ch-48;
		ch=getchar();
	}
	return x;
}
inline void write(register int ret) {
	if(ret>9) write(ret/10);
	putchar(ret%10+'0'); return;
}
int main(){
	cin>>n;
	if(n>50000){
		puts("87326\n");
		return 0;
	}
	for(ri i=1;i<=n;i++){
		int x=read();
		if(x&d[len]||len==0){
			d[++len]=x;
		}else{
			d[len]|=x;
		}
	}
	write(len);
	return 0;
}

话说就我想到O(n)算法吗?

2020/12/7 13:12
加载中...