题意:
一共有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]));
}