洛谷题目P1094纪念品分组
题目来源:https://www.luogu.com.cn/problem/P1094
贪心的水题,但是注意双指针相遇时的边界处理,本来我打算在h==q(相遇)时加一个
if(h==q){res+=1}来表示相遇的时候自己独立放一个格子,但是后来意识到不要这个也行,然后进入后面的判断里不管哪个也都能自己跟自己放。
PS:如果题目要记录每个格子里有谁的话就必须额外加上面那个判断了。
`
int res = 0;
int p[30010];
int main() {
int w;cin >> w;
int n;cin >> n;
for (int i = 1;i <= n;i++) {
cin >> p[i];
}
sort(p + 1, p + 1 + n);
int q = 1;
for (int h = n;h >= q;h--) {
if (p[h] + p[q] <= w) {
res += 1;
q++;
}
else {
res += 1;
}
}
cout << res;
return 0;
}`

浙公网安备 33010602011771号