【BZOJ】【P2793】【Poi2012】【Vouchers】【题解】【乱搞】

传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2793

听说这是一道傻逼题傻逼我就来写了

一看还真是一道傻逼题

然后就傻逼了

MLE3次,原因还是不说了吧

题解见代码

Code:

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+4;
int n,m;
int p[maxn];
bitset<maxn>vis,lucky;
vector<long long>anss;
int getint(){
	int res=0;char c=getchar();
	while(!isdigit(c))c=getchar();
	while(isdigit(c))res=res*10+c-'0',c=getchar();
	return res;
}
long long cur;
int main(){
	n=getint();
	for(int i=1;i<maxn;i++)p[i]=i;
	for(int i=1;i<=n;i++)lucky[getint()]=1;
	m=getint();
	while(m--){
		int x=getint();
		for(int i=1;i<=x;i++){
			int &now=p[x];
			while(now<maxn&&vis[now])now+=x;
			if(now>=maxn)break;vis[now]=1;
			if(lucky[now])anss.push_back(cur+i);
		}cur+=x;
	}printf("%d\n",anss.size());
	for(int i=0;i<anss.size();i++)printf("%lld\n",anss[i]);
	return 0;
}



你可能感兴趣的:(bzoj)