/*题意:将两个砝码中的其中一个分成两块,三块组合最多有几种情况(可以只有一块,或者两块)。 
组合情况 i j m 三块砝码
(i+j)-m=m-(i+j) i+j i-j=j-i  i j m
(i+m)-j=j-(i+m) i+m i-m=m-i   i+j+m
(j+m)-i=i-(j+m) j+m j-m=m-j
*/
#include<string.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int he[];/*砝码组合质量之和作为序号,来判断改质量是否已经访问过(防止有相同的质量再次使用)*/
int solove(int n,int m);
int main(int argc, char* argv[])
{
int t,n,m,h,max; scanf("%d",&t);
while(t--)
{ scanf("%d%d",&n,&m); max=solove(n,m);/*当分n的时候,得到最大情况数量*/
h=solove(m,n);/*当分m的时候,得到最大情况数量*/
if(max<h)
max=h;
printf("%d\n",max); }
return ;
}
int solove(int n,int m)
{
int i,j,max,count,t;
max=count=;
for(i=;i<=(n+)/;i++)/*因为1-n最后会有一半左右重复*/
{
memset(he,,sizeof(he));/*每一次砝码新的分法,这个数组需重新初始化*/
count=;
j=n-i; t=i+j+m;
if(he[t]==)
{he[t]=;count++;}/*如果这个质量没有访问过组合数就加1,然后设置访问过*/ t=abs(i+j-m);
if(he[t]==)
{he[t]=;count++;} t=abs(j+m-i);
if(he[t]==)
{he[t]=;count++;} t=abs(m+i-j);
if(he[t]==)
{he[t]=;count++;} t=i+m;
if(he[t]==)
{he[t]=;count++;} t=i+j;
if(he[t]==)
{he[t]=;count++;} t=j+m;
if(he[t]==)
{he[t]=;count++;} t=abs(i-j);
if(he[t]==)
{he[t]=;count++;} t=abs(i-m);
if(he[t]==)
{he[t]=;count++;} t=abs(j-m);
if(he[t]==)
{he[t]=;count++;} t=i;
if(he[t]==)
{he[t]=;count++;} t=j;
if(he[t]==)
{he[t]=;count++;} t=m;
if(he[t]==)
{he[t]=;count++;} if(he[]==)/*如果有组合的结果是0,就不算在内*/
count--; if(max<count)
max=count;
}
return max;
}

zoj 3706 Break Standard Weight的更多相关文章

  1. zoj 3706 Break Standard Weight(dp)

    Break Standard Weight Time Limit: 2 Seconds                                     Memory Limit: 65536 ...

  2. [ACM_水题] ZOJ 3706 [Break Standard Weight 砝码拆分,可称质量种类,暴力]

    The balance was the first mass measuring instrument invented. In its traditional form, it consists o ...

  3. ZOJ 3706 Break Standard Weight 解题报告

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5009 题目意思:给出两个mass:x 和 y,问如何将其中一个 ma ...

  4. [ZOJ 3076] Break Standard Weight

    题目连接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5009 题意:给你两个数字,可以把其中一个拆成两个数字,计算这三个数字 ...

  5. Break Standard Weight (ZOJ 3706)

    Problem The balance was the first mass measuring instrument invented. In its traditional form, it co ...

  6. HZNU Training 2 for Zhejiang Provincial Collegiate Programming Contest 2019

    赛后总结: T:今天下午参加了答辩比赛,没有给予队友很大的帮助.远程做题的时候发现队友在H上遇到了挫折,然后我就和她们说我看H吧,她们就开始做了另外两道题.今天一人一道题.最后我们在研究一道dp的时候 ...

  7. The 10th Zhejiang Provincial Collegiate Programming Contest

    Applications http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5008 string set 专场 #include& ...

  8. 2012-2014 三年浙江 acm 省赛 题目 分类

    The 9th Zhejiang Provincial Collegiate Programming Contest A    Taxi Fare    25.57% (166/649)     (水 ...

  9. ZCMU训练赛-B(dp/暴力)

    B - Break Standard Weight The balance was the first mass measuring instrument invented. In its tradi ...

随机推荐

  1. Oracle EBS-SQL (BOM-6):检查物料失效但BOM中未失效的数据.sql

    select msi.segment1                   装配件编码 , msi.description                  装配件描述 , msi.item_type ...

  2. SSH Session Recorder

    If you want to record your root ssh session  create a file .bash_profile  . and copy below line by l ...

  3. poj2017简单题

    #include <stdio.h> #include <stdlib.h> int main() { int n,i; while(scanf("%d", ...

  4. collection系列用法-deque双向队列

    deque双向队列 Deque可以从两端添加和删除元素.常用的结构,是它的简化版本. Deque支持序列的常用操作,现在举一个简单例子,你会发现其实跟平成的list没啥区别: import colle ...

  5. iOS获取手机当前的网络状态

    获取iOS网络状态,目前有两个办法. 1.通过监听手机状态栏的信息. 2.通过使用官方提供的类Reachability. 一.通过手机监听手机状态栏的信息 好处: 1.可以通过苹果的审核上架AppSt ...

  6. iOS深入学习 (Block全面分析)

    本文翻译自苹果的文档,有删减,也有添加自己的理解部分. 如果有Block语法不懂的,可以参考fuckingblocksyntax,里面对于Block 为了方便对比,下面的代码我假设是写在ViewCon ...

  7. 【Java并发编程】并发编程大合集-值得收藏

    http://blog.csdn.net/ns_code/article/details/17539599这个博主的关于java并发编程系列很不错,值得收藏. 为了方便各位网友学习以及方便自己复习之用 ...

  8. vsvim _vsvimrc 设置(转)

    c_joewang的专栏 (转) vsvim安装到vs2010后可以使用绝大部分原生vim的编辑功能,包括宏录制,也可以通过配置设置键盘映射,关于支持的编辑功能等可以参考上面链接去查看相关文档. Vi ...

  9. CreateEvent,OpenEvent成功后 是否需要::CloseHandle(xxx); 避免句柄泄漏

    bool bExist = false; HANDLE hHandle = ::CreateEvent(NULL,  FALSE,  FALSE,  L"Global\\xxxxx_name ...

  10. 论try/catch的重要性,我们经常遇到代码出现无法调试的错误,程序退出的时候崩溃。这跟我们代码日常保护的习惯息息相关。

    每当构造函数或析构函数中出现溢出,会导致调试非常困难,而使用try/catch来处理构造中的初始化就非常重要了. 如上图,在构造函数中,我们的很多初始化动作会放在这里,但是却忽视了,一旦初始化出错了, ...