题解 CF441A 【Valera and Antique Items】
发布于 2020-03-05
RE了好久,结果发现是system("pause");
的错误。
首先,看到这道题目,可能很多萌新和我一样是一脸茫然的。“这不是背包/动规吗?怎么成入门题了呢?”
先别急,仔细看题目后,我们可以把题目概括成这样:
有n组数,第i个组数有ki个数字。只要你的数字高于第i个数,这一组数字就属于你了。问你能得到几组数字?分别是第几组?
这样就简单很多了吧......
只要这个数组的数有一个小于你的数,就可以把ai标记为1。最后输出ans即可。
上代码:
#include<bits/stdc++.h>
using namespace std;
int n,an,x,nx,ans;
int a[51];
int main()
{
cin>>n>>an;
for(int i=1;i<=n;i++)
{
cin>>nx;//输入个数
for(int j=1;j<=nx;j++)
{
cin>>x;
if(x<an) a[i]=1;//桶排序
}
if(a[i]==1) ans++;//如果有的话,ans++
}
cout<<ans<<endl;
for(int i=1;i<=n;i++) if(a[i]==1) cout<<i<<" ";
//system("pause");
return 0;
}
值得一提的是:ans是你得到的数组数量,而不是你能得到的数字的数量。