12年长春区域赛-C题(一)

2012-12-10 12:47:35 · 作者: · 浏览: 817

    题意:

    一共有5座山,有人拿5个篮子去采蘑菇,现在他已经采了几座山上的蘑菇,之后几座山的蘑菇数量你可以自己确定.但是他要交出3个篮子,且它们的和必须是1024的倍数.否则,剩余两个篮子也要交出.之后,如果剩余数量大于1024要减去1024直到不大于.问最后剩余的最大值.

    解题思路:

    水题,WA了5次,我还以为是题意理解错了..原来有坑..交3个篮子的时候,它们的和可以是0..

    贴个简化后的代码.

    [cpp]

    #include <stdio.h>

    #include <algorithm>

    using namespace std;

    int n,a ,sum,ans;

    bool mult(int x)

    {

    return x%1024==0;

    }

    int calc(int x)

    {

    while(x > 1024)

    x -= 1024;

    return x;

    }

    void solve()

    {

    for(int i=0;i<n;i++)

    for(int j=i+1;j<n;j++)

    if(n==4  || mult(sum-a[i]-a[j]))

    ans = max(ans,calc(a[i]+a[j]));

    }