社区讨论
10分求调
P1090[NOIP 2004 提高组] 合并果子参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mhj0rl75
- 此快照首次捕获于
- 2025/11/03 18:50 4 个月前
- 此快照最后确认于
- 2025/11/03 18:50 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
int n,a,m,b,ma,sum;
bool h;
short t[1000010];
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a);
t[a]++;
ma=ma>a?ma:a;
}
for(int i=1;i<=ma;i++)
{
if(t[i])
{
t[i*2]+=t[i]>>1;
sum=sum+(t[i]>>1*2*i);
ma=ma>i*2?ma:i*2;
if((t[i]&1)==1)
{
for(int j=i+1;j<=ma;j++)
{
if(t[j])
{
t[i]--;
t[j]--;
t[i+j]++;
ma=ma>(i+j)?ma:(i+j);
sum=sum+i+j;
break;
}
}
}
}
}
printf("%d ",sum);
}
样例过了,第一个点过了
回复
共 2 条回复,欢迎继续交流。
正在加载回复...