codeforces 659C Tanya and Toys
Posted Gssol
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了codeforces 659C Tanya and Toys相关的知识,希望对你有一定的参考价值。
题目链接:http://codeforces.com/problemset/problem/659/C
题意:
n是已经有的数字,m是可用的最大数字和
要求选自己没有的数字,且这些数字的数字和不能超过m
且要求可选的数字的数目越多越好
输出一种答案即可
解题思路:
刚开始想开一个bool型的1e9的数组,然后判断即可
可是交上去发现内存超限
后来把1e9的数组改成2*1e6的数组即可
具体原因应该从数学数字和方面考虑
具体代码如下:
#include<bits/stdc++.h> using namespace std; bool a[200006]; int main() { int n,m,t; scanf("%d %d",&n,&m); for(int i=0;i<n;i++) { cin>>t; if(t>200000) continue; a[t]=1; } int kind=0; int i; for(i=1;i<=200000;i++) { if(m<i) break; if(a[i]==0) { m-=i; kind++; } } printf("%d\n",kind); for(int j=1;j<i;j++) { if(!a[j]) printf("%d ",j); } printf("\n"); return 0; }
以上是关于codeforces 659C Tanya and Toys的主要内容,如果未能解决你的问题,请参考以下文章
codeforces 659C Tanya and Toys
Codeforces Round #346 (Div. 2) (659A,659B,659C,659D(几何叉乘),659E(并查集))
Codeforces-C. Tanya and Toys(水题)
Codeforces Round #540 Tanya and Candies 预处理