社区讨论
CCF 神机 这写法有80pts
P14635[NOIP2025] 糖果店参与者 18已保存回复 20
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 19 条
- 当前快照
- 1 份
- 快照标识符
- @miswiep4
- 此快照首次捕获于
- 2025/12/05 21:29 2 个月前
- 此快照最后确认于
- 2025/12/09 02:39 2 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
long long n,m,ans;
struct node{
long long x,y,sum;
}a[N];
bool cmp(node a,node b){
if(a.sum!=b.sum)return a.sum<b.sum;
else return a.x<a.y;
}
bool cmp2(node a,node b){
if(a.x!=b.x)return a.x<b.x;
else return a.y<b.y;
}
int main(){
// freopen("candy.in","r",stdin);
// freopen("candy.out","w",stdout);
ios::sync_with_stdio(false);
cin.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i].x>>a[i].y;
a[i].sum=a[i].x+a[i].y;
}
sort(a+1,a+n+1,cmp);
long long v=0;
for(int i=1;i<=n;i++){
if(v+a[1].sum<=m){
v+=a[1].sum;
ans+=2;
}
}
//cout<<a[1].sum<<"\n";
if(v==m){
// cout<<ans;
// return 0;
}
long long cnt1=0,cnt2=0,cnt3=0,cnt4=0,cnt5=0,cnt6=0,cnt7=0,cnt8=0,cnt9=0,cnt10=0,cnt11=0,cnt12=0,cnt13=0,cnt14=0;
long long v2=a[1].sum*(ans/2-1); //??????? ????С??
long long v3=a[1].sum*(ans/2-1-1);
long long v4=a[1].sum*(ans/2-1-1-1);
long long v5=a[1].sum*(ans/2-1-1-1-1);
long long v6=a[1].sum*(ans/2-1-1-1-1-1);
long long v7=a[1].sum*(ans/2-1-1-1-1-1-1);
long long v8=a[1].sum*(ans/2-1-1-1-1-1-1-1);
long long v9=a[1].sum*(ans/2-1-1-1-1-1-1-1-1);
long long v10=a[1].sum*(ans/2-1-1-1-1-1-1-1-1-1);
long long v11=a[1].sum*(ans/2-1-1-1-1-1-1-1-1-1-1);
long long v12=a[1].sum*(ans/2-1-1-1-1-1-1-1-1-1-1-1);
long long v13=a[1].sum*(ans/2-1-1-1-1-1-1-1-1-1-1-1-1);
long long v14=a[1].sum*(ans/2-1-1-1-1-1-1-1-1-1-1-1-1-1);
long long ans2=ans-2;
long long ans3=ans-2-2;
long long ans4=ans-2-2-2;
long long ans5=ans-2-2-2-2;
long long ans6=ans-2-2-2-2-2;
long long ans7=ans-2-2-2-2-2-2;
long long ans8=ans-2-2-2-2-2-2-2;
long long ans9=ans-2-2-2-2-2-2-2-2;
long long ans10=ans-2-2-2-2-2-2-2-2-2;
long long ans11=ans-2-2-2-2-2-2-2-2-2-2;
long long ans12=ans-2-2-2-2-2-2-2-2-2-2-2;
long long ans13=ans-2-2-2-2-2-2-2-2-2-2-2-2;
long long ans14=ans-2-2-2-2-2-2-2-2-2-2-2-2-2;
sort(a+1,a+n+1,cmp2);
// cout<<'\n';
for(int i=1;i<=n;i++){
if(v+a[i].x<=m){
v+=a[i].x;
cnt1++;
}
}
for(int i=1;i<=n;i++){
if(v2+a[i].x<=m){
v2+=a[i].x;
cnt2++;
}
}
for(int i=1;i<=n;i++){
if(v3+a[i].x<=m){
v3+=a[i].x;
cnt3++;
}
}
for(int i=1;i<=n;i++){
if(v4+a[i].x<=m){
v4+=a[i].x;
cnt4++;
}
}
for(int i=1;i<=n;i++){
if(v5+a[i].x<=m){
v5+=a[i].x;
cnt5++;
}
}
for(int i=1;i<=n;i++){
if(v6+a[i].x<=m){
v6+=a[i].x;
cnt6++;
}
}
for(int i=1;i<=n;i++){
if(v7+a[i].x<=m){
v7+=a[i].x;
cnt7++;
}
}
for(int i=1;i<=n;i++){
if(v8+a[i].x<=m){
v8+=a[i].x;
cnt8++;
}
}
for(int i=1;i<=n;i++){
if(v9+a[i].x<=m){
v9+=a[i].x;
cnt9++;
}
}
for(int i=1;i<=n;i++){
if(v10+a[i].x<=m){
v10+=a[i].x;
cnt10++;
}
}
for(int i=1;i<=n;i++){
if(v11+a[i].x<=m){
v11+=a[i].x;
cnt11++;
}
}
for(int i=1;i<=n;i++){
if(v12+a[i].x<=m){
v12+=a[i].x;
cnt12++;
}
}
for(int i=1;i<=n;i++){
if(v13+a[i].x<=m){
v13+=a[i].x;
cnt13++;
}
}
for(int i=1;i<=n;i++){
if(v14+a[i].x<=m){
v14+=a[i].x;
cnt14++;
}
}
// cout<<cnt3<<' ';
// cout<<ans+cnt1<<" "<<ans2+cnt2<<" "<<ans3+cnt3<<"\n";
cout<<max(max(max(max(max(max(max(max(max(max(max(max(max(ans+cnt1,ans2+cnt2),ans3+cnt3),ans4+cnt4),cnt5+ans5),cnt6+ans6),ans7+cnt7),ans8+cnt8),cnt9+ans9),cnt10+ans10),cnt11+ans11),cnt12+ans12),cnt13+ans13),cnt14+ans14);
return 0;
}
回复
共 20 条回复,欢迎继续交流。
正在加载回复...