Codeforces 525C:Ilya and Sticks

本文探讨了一道使用贪心算法解决的排序问题。通过将数组从大到小排序并扫描,作者发现数组初始化大小错误导致超时,而非运行错误。文章详细解释了解决方案及遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一道很简单的贪心的题目

排序然后将数组从大到小扫描一遍

注意求的是总和

然后很奇怪的一点就是一开始我数组开小了

结果过Test 8 的时候不断超时

为啥不是RE?

搞的我以为是方法问题

卡了一个小时

很是纳闷。。。


#include<stdio.h>
#include<string.h>
#include<algorithm>
#define maxn 111111
using namespace std;

//int check(int x,int y)
//{
//        if(x==y||x-y==1)
//                return 1;
//        return 0;
//}

int main()
{
        int n,i;
        long long j;
        int l[maxn];
        long long ab[maxn];
        long long s;
        while(scanf("%d",&n)!=EOF)
        {
                memset(ab,0,sizeof(ab));
                memset(l,0,sizeof(l));
                for(i=0;i<n;i++)
                        scanf("%d",&l[i]);

                sort(l,l+n);
                j=1;s=0;
                for(i=n-1;i>0;i--)
                {
                        if(l[i]==l[i-1]||l[i]-l[i-1]==1)
                                //ab[j]=l[i];--i;
                        {
                                ab[j]=l[i-1];

                        if(j%2==0)
                                s+=ab[j-1]*ab[j];

                        j++;


                                --i;

                        }


                }

                printf("%I64u\n",s);
        }
        return 0;
}











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值