zoj 3706 Break Standard Weight
/*题意:将两个砝码中的其中一个分成两块,三块组合最多有几种情况(可以只有一块,或者两块)。
组合情况 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的更多相关文章
- zoj 3706 Break Standard Weight(dp)
Break Standard Weight Time Limit: 2 Seconds Memory Limit: 65536 ...
- [ACM_水题] ZOJ 3706 [Break Standard Weight 砝码拆分,可称质量种类,暴力]
The balance was the first mass measuring instrument invented. In its traditional form, it consists o ...
- ZOJ 3706 Break Standard Weight 解题报告
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5009 题目意思:给出两个mass:x 和 y,问如何将其中一个 ma ...
- [ZOJ 3076] Break Standard Weight
题目连接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5009 题意:给你两个数字,可以把其中一个拆成两个数字,计算这三个数字 ...
- Break Standard Weight (ZOJ 3706)
Problem The balance was the first mass measuring instrument invented. In its traditional form, it co ...
- HZNU Training 2 for Zhejiang Provincial Collegiate Programming Contest 2019
赛后总结: T:今天下午参加了答辩比赛,没有给予队友很大的帮助.远程做题的时候发现队友在H上遇到了挫折,然后我就和她们说我看H吧,她们就开始做了另外两道题.今天一人一道题.最后我们在研究一道dp的时候 ...
- The 10th Zhejiang Provincial Collegiate Programming Contest
Applications http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5008 string set 专场 #include& ...
- 2012-2014 三年浙江 acm 省赛 题目 分类
The 9th Zhejiang Provincial Collegiate Programming Contest A Taxi Fare 25.57% (166/649) (水 ...
- ZCMU训练赛-B(dp/暴力)
B - Break Standard Weight The balance was the first mass measuring instrument invented. In its tradi ...
随机推荐
- MDX笔记
为啥要写这一篇博客:之前断断续续的学习过MDX,也大致学会了基本语法,理解了基本用法,但是用的机会不多,到了真正用的时候,无从下手,十分尴尬!故此,将语法和基本用法温故总结,结合实例将MDX做个阶段性 ...
- Linux下面如何运行.sh文件
Linux下面如何运行.sh文件 本文介绍Linux下面用命令如何运行.sh文件的方法,有两种方法: 一.直接./加上文件名.sh,如运行hello.sh为./hello.sh[hello.sh必 ...
- Delphi 对泛型TList的的改进(TSimpleList)
TList 有一个比较麻烦的问题是,到底由谁来释放List中的对象或指针. 本例将释放任务教给 TSimpleList ,方便使用. 如果 TList 为于管理对象,还可以实现 AddNewOne 功 ...
- 解析配置文件ConfigParser模块
一.ConfigParser简介 ConfigParser 是用来读取配置文件的包.配置文件的格式如下:中括号“[ ]”内包含的为section.section 下面为类似于key-value 的配置 ...
- 潜在语义分析Latent semantic analysis note(LSA)原理及代码
文章引用:http://blog.sina.com.cn/s/blog_62a9902f0101cjl3.html Latent Semantic Analysis (LSA)也被称为Latent S ...
- JDK1.7 安装加(一劳永逸的环境配置)
1.去oracl官网下载jdk http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html. ...
- IOS--当字符串返回的数据格式为xml/html时
今天一来办公室就接到客户返回的BUG,其中一个是因为后台返回的字符串中的数据为xml/html格式. 后来经过百度,发现了两种解决方法,第一种是使用webView,webView中专门为了这种情况准 ...
- GUI练习——列出指定目录内容
需求: 一个窗体里.在文本框输入路径后,摁回车键或者点击"转到"按钮后: 若路径合法,程序会自动在文本域里显示该路径下的文件目录:若路径非法,则弹出对话框,告之你路径非法.点击&q ...
- KNN算法[分类算法]
kNN(k-近邻)分类算法的实现 (1) 简介: (2)算法描述: (3) <?php /* *KNN K-近邻方法(分类算法的实现) */ /* *把.txt中的内容读到数组中保存,$file ...
- Highchart 改编风力风向图
基于highchart修改而成的风力风向图 1.替换highchart.js drawpoints方法,替换内容如下: drawPoints: function() { var a, b = this ...