社区讨论
查询做法正确性
P14635[NOIP2025] 糖果店参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mil0y0fe
- 此快照首次捕获于
- 2025/11/30 09:11 3 个月前
- 此快照最后确认于
- 2025/12/01 22:55 3 个月前
赛时1/6h想到的
按总和排序,尽可能的选总和最小的,这是偶数,然后还要看奇数是否可行。
然后按第一个大小排序(因为只会选1个),证明不正了
每次看能否退出一个,即丢掉一开始选的一部分
然后我是一次次丢的,就要特判两次一起丢的情况。
核心代码:
CPP按总和排序,尽可能的选总和最小的,这是偶数,然后还要看奇数是否可行。
然后按第一个大小排序(因为只会选1个),证明不正了
每次看能否退出一个,即丢掉一开始选的一部分
然后我是一次次丢的,就要特判两次一起丢的情况。
核心代码:
if(a[i].id==mi)continue;
if(m>=a[i].x)m-=a[i].x,s++;
else if(k<1)break;
else if(k%2&&mx>=a[i].x)m+=mx-a[i].x,k--;
else if(k%2==0&&my-mx>=a[i].x)m+=my-mx-a[i].x,k--;
else if(k>1&&my>=a[i].x+a[i+1].x)m+=my-a[i].x,k-=2,s--;
else break;
回复
共 0 条回复,欢迎继续交流。
正在加载回复...