题目:

pid=5308" target="_blank">http://acm.hdu.edu.cn/showproblem.php?

pid=5308

题意:给定N个N,求出将这N个N构造成24的方法。

分析:要是想到用尽量少的N构造出24点((N+N)/N * (N+N)/N * (N+N)/N
* (N*N+N)/N)。然后把多的N构造成0就好办了((N-N)*N*.....)。

代码:

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std; void _15(int n)
{
printf("1 + 2\n");//n+1
printf("4 + 5\n");//n+2
printf("7 + 8\n");//n+3
printf("10 + 11\n");//n+4
printf("%d + 12\n",n+4);//n+5
printf("%d / 3\n",n+1); // n+6 2
printf("%d / 6\n",n+2);//n+7 2
printf("%d / 9\n",n+3);//n+8 2
printf("%d / 13\n",n+5);//n+9 3
printf("14 - 15\n");//n+10 0
int c=n+10;
for(int i=16;i<=n;i++)
{
printf("%d * %d\n",c,i);
c++;
}
printf("%d * %d\n",n+6,n+7); //c+1
printf("%d * %d\n",n+8,c+1); //c+1
printf("%d * %d\n",c+2,n+9);
printf("%d + %d\n",c+3,c);
}
void _14()
{
int s1[100]={1,15,16,17,18,7,9,11,20,21,22,25,26};
int s2[100]={2,3,4,5,6,8,10,12,13,14,19,23,24};
char op[100]="-****+++//+--";
for(int i=0;op[i];i++)
printf("%d %c %d\n",s1[i],op[i],s2[i]);
}
void _13()
{
int s1[100]={1,4,7,10,17,14,15,16,18,19,21,23};
int s2[100]={2,5,8,11,12,3,6,9,13,20,22,24};
char op[100]="+++++////***";
for(int i=0;op[i];i++)
printf("%d %c %d\n",s1[i],op[i],s2[i]);
} void _12()
{
int s1[100]={1,3,5,7,9,11,13,15,17,19,21};
int s2[100]={2,4,6,8,10,12,14,16,18,20,22};
char op[100]="-----++++++";
for(int i=0;op[i];i++)
printf("%d %c %d\n",s1[i],op[i],s2[i]);
}
void _11()
{
int s1[100]={1,12,13,14,15,7,17,9,18,19};
int s2[100]={2,3,4,5,6,8,16,10,11,20};
char op[100]="-****+++/+";
for(int i=0;op[i];i++)
printf("%d %c %d\n",s1[i],op[i],s2[i]);
} void _10()
{
int s1[100]={1,11,4,6,8,13,14,15,17};
int s2[100]={2,3,5,7,9,10,12,16,18};
char op[100]="-++++//++";
for(int i=0;op[i];i++)
printf("%d %c %d\n",s1[i],op[i],s2[i]);
}
void _9()
{
int s1[100]={1,3,4,11,6,8,15,13};
int s2[100]={2,10,5,12,7,14,9,16};
char op[100]="++-+++/-";
for(int i=0;op[i];i++)
printf("%d %c %d\n",s1[i],op[i],s2[i]);
}
void _8()
{
int s1[100]={1,9,10,11,12,13,14};
int s2[100]={2,3,4,5,6,7,8};
char op[100]="-***+++";
for(int i=0;op[i];i++)
printf("%d %c %d\n",s1[i],op[i],s2[i]);
}
void _7()
{
int s1[100]={1,3,4,6,11,12};
int s2[100]={2,8,5,10,7,9};
char op[100]="++++/+";
for(int i=0;op[i];i++)
printf("%d %c %d\n",s1[i],op[i],s2[i]);
}
void _6()
{
int s1[100]={1,3,7,5,9};
int s2[100]={2,4,8,6,10};
char op[100]="+++-+";
for(int i=0;op[i];i++)
printf("%d %c %d\n",s1[i],op[i],s2[i]);
}
void _5()
{
printf("1 * 2\n");
printf("6 * 3\n");
printf("7 - 4\n");
printf("8 / 5\n");
}
void _4()
{
printf("1 * 2\n");
printf("5 + 3\n");
printf("6 + 4\n");
} int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
if(n>=15)
_15(n);
else if(n==14)
_14();
else if(n==13)
_13();
else if(n==12)
_12();
else if(n==11)
_11();
else if(n==10)
_10();
else if(n==9)
_9();
else if(n==8)
_8();
else if(n==7)
_7();
else if(n==6)
_6();
else if(n==5)
_5();
else if(n==4)
_4();
else
printf("-1\n");
}
return 0;
}

hdu5308 I Wanna Become A 24-Point Master(构造)的更多相关文章

  1. Kubeadm搭建高可用(k8s)Kubernetes v1.24.0集群

    文章转载自:https://i4t.com/5451.html 背景 Kubernetes 1.24新特性 从kubelet中移除dockershim,自1.20版本被弃用之后,dockershim组 ...

  2. Codeforces Round #268 (Div. 1) A. 24 Game 构造

    A. 24 Game Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/468/problem/A D ...

  3. Puppet自动化部署-前期环境准备(2)

    在安装Puppet环境之前需要配置好机器的基本配置,如规范网络地址IP.hostname,certname认证名称,ntp时间同步等配置完毕,完善的搭建自动化环境. 1.环境介绍 此处实现部署的环境是 ...

  4. MySQL MMM高可用方案

    200 ? "200px" : this.width)!important;} --> 介绍 本篇文章主要介绍搭建MMM方案以及MMM架构的原理.这里不介绍主从.主主的搭建方 ...

  5. MySQL 第一篇

    一.MySQL介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司.MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数 ...

  6. NIS域配置详解

    一.前期准备1.1 NIS 简介NIS,英文的全称是network information service,也叫yellow pages.在Linux中,NIS是一个基于RPC的client/serv ...

  7. salt-master 的配置文件详解

    绑定的地址: interface: 0.0.0.0 master和minion通信端口: publish_port: 4505 可以使用的文件描述符:(每个minion连接master至少需要一个文件 ...

  8. dns 服务器配置

    1.安装 named 2.配置如下文件: /etc/named.conf // 2 // named.conf 3 // 4 // Provided by Red Hat bind package t ...

  9. C#_MySql 主从复制

    一.业务发展驱动数据发展 随着网站业务的不断发展,用户量的不断增加,数据量成倍地增长,数据库的访问量也呈线性地增长.特别是在用户访问高峰期间,并发访问量突然增大,数据库的负载压力也会增大,如果架构方案 ...

随机推荐

  1. 紫书 例题 10-16 UVa 12230(数学期望)

    感觉数学期望的和化学里面求元素的相对原子质量的算法是一样的 就是同位素的含量乘上质量然后求和得出 这道题因为等待时机是0到2*l/v均匀分配的,所以平均时间就是l/v 再加上过河的l/v, 最后加上步 ...

  2. malloc()和free()的原理及实现

    在C语言中只能通过malloc()和其派生的函数进行动态的申请内存,而实现的根本是通过系统调用实现的(在linux下是通过sbrk()系统调用实现). malloc()到底从哪里得到了内存空间?答案是 ...

  3. Spring Cloud分布式Session共享实践

    通常情况下,Tomcat.Jetty等Servlet容器,会默认将Session保存在内存中.如果是单个服务器实例的应用,将Session保存在服务器内存中是一个非常好的方案.但是这种方案有一个缺点, ...

  4. HDOJ 5411 CRB and Puzzle 矩阵高速幂

    直接构造矩阵,最上面一行加一排1.高速幂计算矩阵的m次方,统计第一行的和 CRB and Puzzle Time Limit: 2000/1000 MS (Java/Others)    Memory ...

  5. shrio 身份认证流程-Realm

    身份认证流程 流程如下: 1.首先调用Subject.login(token)进行登录,其会自动委托给Security Manager,调用之前必须通过SecurityUtils. setSecuri ...

  6. 利用css3的多背景图属性实现幻灯片切换效果

    css3里关于背景的属性增加了可以添加多背景图的特性,例如: .box{background: url(img/1.png),url(img/2.png),url(img/3.png);} 这段css ...

  7. android文本排布

    首先看一幅图,是简书App的一篇文章的截图,如下: 图1,图2 上面两个图片都是文本的显示,但是由于有多种格式,所以较为复杂,例如其中有普通文本,还有加粗的文本,还有图文混排的显示等等. 一.解析HT ...

  8. nvm安装node流程及报错解决

    第一步:下载NVM下载nvm并解压 nvm-window 下载地址:https://github.com/coreybutler/nvm-windows/releases 下载文件,然后解压得到nvm ...

  9. tensorflow学习之路---简单的代码

    import numpyimport tensorflow as tf #自己创建的数据x_data = numpy.random.rand(100).astype(numpy.float32)#创建 ...

  10. 【Codeforces Round #459 (Div. 2) B】 Radio Station

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 用map模拟一下映射就好了. [代码] #include <bits/stdc++.h> using namespace ...