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的顺序输出,当某个字符用完时,剩下的 ...
随机推荐
- webapp框架—学习AngularUI2(demo改造)
目的:把AngularUI的模板应用到“桂电在线”上 步骤如下: 按功能表修改demo界面 学习angularUI如何加载全部页面,为了设置自定义加载模板,在demo/demo.js中找到这一段 // ...
- PyQt5创建第一个窗体(正规套路)
一.Pyqt5 创建第一个窗体 很多人写窗体程序都是直接敲代码,不使用设计器,我个人不是很赞成这种做法.使用设计器的好处是直观.维护方便,尤其开发复杂窗体的效率高. 但是每次修改ui文件后,需要重新生 ...
- 关于Kingfisher--备用
序言--感谢好心大神分享 Kingfisher 是由 @onevcat 编写的用于下载和缓存网络图片的轻量级Swift工具库,其中涉及到了包括GCD.Swift高级语法.缓存.硬盘读写.网络编程.图像 ...
- 64位Win7下编译Python3的计算机视觉库:OpenCV
注:本文全原创,作者:Noah Zhang (http://www.cnblogs.com/noahzn/) OpenCV目前最新版是3.0.0 rc1,官方给出了编译好的Python2可以直接使用 ...
- Hadoop 2.6.0编译on mac
花了一个晚上的时间弄了下hadoop的编译环境,碰到些错误,这里保存下. 需要编译Hadoop,不但需要安装Maven,还需要安装protobuf 安装Maven 下载:apache-maven-3. ...
- jQuery.Deferred对象
一.前言 jQuery1.5之前,如果需要多次Ajax操作,我们一般会使用下面的两种方式: 1).串行调用Ajax $.ajax({ success: function() { $.ajax({ su ...
- onethink
http://document.onethink.cn/manual_1_0.html#onethink_usehelp_index
- Keil 代码折叠功能的使用
使用keil时将某段{......}内的代码折叠起来的方法:
- lc面试准备:Implement Stack using Queues
1 题目 Implement the following operations of a stack using queues. push(x) -- Push element x onto stac ...
- swiper去除滑动设置
有时候使用swiper并不想让它滑动,怎么设置呢? 1.noSwiping设为true 2.在slide上(或其他元素)增加类名'swiper-no-swiping',使该slide无法拖动. 案例: ...