zoj 3657 策略题 easy
http://acm.zju.edu.cn/onlinejudge/showProblem.do?
problemId=4880
由于是要去牡丹江。是浙大出题,所以找了份浙大的题,第一道水题做的就不顺啊。题看不明确。然后枚举3个数的组合。循环条件竟然写错,二逼啊,这到现场肯定悲剧啊
题意:
一共同拥有5座山。有人拿5个篮子去採蘑菇。如今他已经採了几座山上的蘑菇。之后几座山的蘑菇数量你能够自己确定。
可是他要交出3个篮子,且它们的和必须是1024的倍数。
否则,剩余两个篮子也要交出。
之后。假设剩余数量大于1024要减去1024直到不大于。问最后剩余的最大值。
做法 分类讨论:
1、n<=3 必定1024
2、n==4 看3个篮子是从已有的4个里面出来的还是2+没採蘑菇的山
3、n==5 分能不能找到2个篮子 weight%1024==0
注意枚举3个数的组合的循环代码: 開始时,循环的開始竟然写错,。,
for(int i=0;i<n-2;i++)
for(int j=i+1;j<n-1;j++)
for(int k=j+1;k<n;k++)
{
int tmp=a[i]+a[j]+a[k];
if(tmp%1024 == 0)
{
flag=1;
tmp=sum-tmp;
while(tmp>1024)tmp-=1024;
ans=max(ans,tmp);
}
}
AC代码
//#pragma comment(linker, "/STACK:102400000,102400000")
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <string>
#include <iostream>
#include <iomanip>
#include <cmath>
#include <map>
#include <set>
#include <queue>
using namespace std; #define ls(rt) rt*2
#define rs(rt) rt*2+1
#define ll long long
#define ull unsigned long long
#define rep(i,s,e) for(int i=s;i<e;i++)
#define repe(i,s,e) for(int i=s;i<=e;i++)
#define CL(a,b) memset(a,b,sizeof(a))
#define IN(s) freopen(s,"r",stdin)
#define OUT(s) freopen(s,"w",stdout)
const ll ll_INF = ((ull)(-1))>>1;
const double EPS = 1e-8;
const double pi = acos(-1.0);
const int INF = 100000000;
const int MAXN = 10;
int n;
int a[MAXN];
int sum;
int ans=0; void solve4()
{
int flag=0;
for(int i=0;i<n-2;i++)
for(int j=i+1;j<n-1;j++)
for(int k=j+1;k<n;k++)
{
int tmp=a[i]+a[j]+a[k];
if(tmp%1024 == 0)
{
flag=1;
tmp=sum-tmp;
while(tmp>1024)tmp-=1024;
ans=max(ans,tmp);
}
}
if(flag)puts("1024");
else
{
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
{
int tmp=a[i]+a[j];
while(tmp>1024)tmp-=1024;
ans=max(ans,tmp);
}
printf("%d\n",ans);
}
} void solve5()
{
int flag=0;
for(int i=0;i<n-2;i++)
for(int j=i+1;j<n-1;j++)
for(int k=j+1;k<n;k++)
{
int tmp=a[i]+a[j]+a[k];
if(tmp%1024 == 0)
{
flag=1;
tmp=sum-tmp;
while(tmp>1024)tmp-=1024;
ans=max(ans,tmp);
}
}
if(flag)printf("%d\n",ans);
else puts("0");
} int main()
{
//IN("zoj3657.txt");
while(~scanf("%d",&n))
{
sum=0;
for(int i=0;i<n;i++)
scanf("%d",&a[i]),sum+=a[i];
ans=0;
if(n<=3){puts("1024");continue;}
if(n == 4)solve4();
if(n == 5)solve5();
}
return 0;
}
zoj 3657 策略题 easy的更多相关文章
- BZOJ 2751: [HAOI2012]容易题(easy) 数学
2751: [HAOI2012]容易题(easy) 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=2751 Description 为了使 ...
- BZOJ2751: [HAOI2012]容易题(easy)
2751: [HAOI2012]容易题(easy) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 872 Solved: 377[Submit][S ...
- BZOJ 2751: [HAOI2012]容易题(easy)( )
有限制的最多就K个, 所以我们处理一下这K个就行了. 其他可以任选, 贡献都是∑i (1≤i≤N), 用快速幂. ------------------------------------------- ...
- 2751: [HAOI2012]容易题(easy)
2751: [HAOI2012]容易题(easy) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1087 Solved: 477[Submit][ ...
- 【bzoj2751】[HAOI2012]容易题(easy) 数论-快速幂
[bzoj2751][HAOI2012]容易题(easy) 先考虑k=0的情况 那么第一个元素可能为[1,n] 如果序列长度为m-1时的答案是ans[m-1] 那么合并得 然后同理答案就是 k很小 而 ...
- BZOJ 2751 容易题(easy) 快速幂+快速乘
2751: [HAOI2012]容易题(easy) Description 为了使得大家高兴,小Q特意出个自认为的简单题(easy)来满足大家,这道简单题是描述如下:有一个数列A已知对于所有的A[i] ...
- 树状数组例题-数星星,简单题easy,校门外的树2,清点人数
[例1]数星星 天空中有一些星星,这些星星都在不同的位置,每个星星都有个坐标,如果一个星星的左下方(包括正左和正下)有k颗星星,就说这颗星星是k级的. 比如,上图中,星星5是3级的(1,2,4在其左下 ...
- zoj 3647 智商题
此题就是求格点中三角形的个数. 就是找出三点不共线的个数. n*m的矩形中有(n+1)*(m+1)个格点. 选出三个点的总个数为:C((n+1)*(m+1),3). 减掉共线的情况就是答案了. 首先是 ...
- 九度OJ 1032:ZOJ (基础题)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4569 解决:2561 题目描述: 读入一个字符串,字符串中包含ZOJ三个字符,个数不一定相等,按ZOJ的顺序输出,当某个字符用完时,剩下的 ...
随机推荐
- 怎样让老浏览器兼容html5新标签
CSS样式设置默认样式: <style> article, aside, canvas, details, figcaption, figure, footer, header, hgro ...
- Z-BLOG模板结构图
(转自ZB官方论坛,作者:未寒)
- Object之魔术函数__toString() 直接输出对象引用时自动调用
__toString()是快速获取对象的字符串信息的便捷方式 在直接输出对象引用时自动调用的方法. __toString()的作用 当我们调试程序时,需要知道是否得出正确的数据.比如打印一个对象时,看 ...
- #Leet Code# Root to leaf
语言:Python 描述:使用递归实现 def getList(self, node): if node is None: return [] if node.left is None and nod ...
- Python on Android
Python on Android Posted on April 29, 2015 by Alexander Taylor There are an increasing number of r ...
- android的原理,为什么不需要手动关闭程序
转自android的原理,为什么不需要手动关闭程序 不用在意剩余内存的大小,其实很多人都是把使用其他系统的习惯带过来来了. Andoird大多应用没有退出的设计其实是有道理的,这和系统对进程的调度机制 ...
- AStyle代码格式工具在source insight中的使用
一.AStyle下载路径 Astyle为开源项目,支持C/C++和java的代码格式化 Home Page: http://astyle.sourceforge.net/ Project Page: ...
- SQL server 触发器、视图
一.触发器 1.触发器为特殊类型的存储过程,可在执行语言事件时自动生效.SQL Server 包括三种常规类型的触发器:DML 触发器.DDL 触发器和登录触发器. 主要讲述DML触发器,DML触发器 ...
- struts2表单验证里field-validator type值一共可以取哪些?都什么含义?
int 整数: double 实数: date 日期: expression 两数的关系比较: email Email地址: url visitor conversion regex 正则表达式验证: ...
- bzoj2597
非常好的网络流题目 首先这里用到了求补集的思想,我们可以先求不满足的三元对的情况 设A-->B代表A赢B 由于最后所有胜负关系都确定,一定是一个完全图,所以任意一个不合法的三元对,单独取出来一定 ...