HDU 5308 规律+模拟
给出N个数字N,要把全部数字用完。使用+-*/最后变为24。中间运算能够有有浮点数
对于1-14直接打表
15以上的能够通过13个同样数字得到24。然后使后面的数所有运算为0相加就可以
贴一发官方题解
#include "stdio.h"
#include "string.h" int now;
void pri(int l,int r)
{
int i;
printf("%d - %d\n",l,l+1);
now++;
for (i=l+2;i<=r;i++)
{
printf("%d * %d\n",now,i);
now++;
}
} void make(int l, int r)
{
printf("1 + 2\n"); // now+1
printf("4 + 5\n"); // now+2
printf("7 + 8\n"); // now+3
printf("10 + 11\n"); // now+4
printf("%d + 12\n",now+4); // now+5
printf("%d / 3\n",now+1); // now+6
printf("%d * %d\n",now+6,now+2); // now+7
printf("%d / 6\n",now+7); // now+8
printf("%d * %d\n",now+8,now+3); // now+9
printf("%d / 9\n",now+9); //now+10;
printf("%d * %d\n",now+10,now+5); // now+11;
printf("%d / 13\n",now+11); // now+12;
now+=12;
}
int main()
{
int n;
while (scanf("%d",&n)!=EOF)
{
if (n<=3) printf("-1\n");
if (n==4)
{
printf("1 * 2\n");
printf("5 + 3\n");
printf("6 + 4\n");
}
if (n==5)
{
printf("1 / 2\n");
printf("6 / 3\n");
printf("4 - 7\n");
printf("5 * 8\n");
}
if (n==6)
{
printf("1 + 2\n");
printf("7 + 3\n");
printf("8 + 4\n");
printf("9 + 5\n");
printf("10 - 6\n");
}
if (n==7)
{
printf("1 / 2\n");
printf("3 * 4\n");
printf("9 - 8\n");
printf("5 + 6\n");
printf("10 / 11\n");
printf("12 * 7\n");
}
if (n==8)
{
printf("1 - 2\n");
printf("9 * 3\n");
printf("10 * 4\n");
printf("11 * 5\n");
printf("12 + 6\n");
printf("13 + 7\n");
printf("14 + 8\n");
}
if (n==9)
{
printf("4 / 5\n");
printf("6 / 7\n");
printf("8 / 9\n");
printf("1 + 2\n");
printf("13 + 3\n");
printf("14 - 10\n");
printf("15 - 11\n");
printf("16 - 12\n");
}
if (n==10)
{
printf("1 / 2\n");
printf("3 / 4\n");
printf("5 / 6\n");
printf("7 / 8\n");
printf("9 + 10\n");
printf("11 + 12\n");
printf("16 + 13\n");
printf("17 + 14\n");
printf("18 + 15\n");
}
if (n==11)
{
printf("1 + 2\n");
printf("3 / 4\n");
printf("5 / 6\n");
printf("12 + 13\n");
printf("15 + 14\n");
printf("7 - 8\n");
printf("17 * 9\n");
printf("18 * 10\n");
printf("19 * 11\n");
printf("20 + 16\n");
}
if (n==12)
{
printf("1 + 2\n");
printf("13 / 3\n");
printf("14 * 4\n");
now=15;
pri(5,12);
printf("15 + %d\n",now);
}
if (n==14)
{
printf("1 / 2\n");
printf("3 / 4\n");
printf("5 - 15\n");
printf("17 - 16\n");
printf("6 + 7\n");
printf("19 / 8\n");
printf("20 * 18\n");
now=21;
pri(9,14);
printf("21 + %d\n",now);
}
if (n==13 || n>=15)
{
now=n;
make(1,13);
if (n==13) continue;
else
if (n==15)
{
printf("14 / 15\n");
printf("%d * %d\n",now,now+1);
}
else
{
int mark;
mark=now;
pri(14,n);
printf("%d + %d\n",mark,now);
}
}
}
return 0;
}
HDU 5308 规律+模拟的更多相关文章
- HDU 2582 规律 素因子
定义$Gcd(n)=gcd(\binom{n}{1},\binom{n}{2}...\binom{n}{n-1})$,$f(n)=\sum_{i=3}^{n}{Gcd(i)}$,其中$(3<=n ...
- hdu 1998 奇数阶魔方(找规律+模拟)
应该不算太水吧. 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 ...
- hdu 5308 (2015多校第二场第9题)脑洞模拟题,无语
题目链接:http://acm.hdu.edu.cn/listproblem.php?vol=44 题意:给你n个n,如果能在n-1次运算之后(加减乘除)结果为24的输出n-1次运算的过程,如果不能输 ...
- HDU 6121 Build a tree(找规律+模拟)
Build a tree Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others)To ...
- 洛谷 P1014 Cantor表【蛇皮矩阵/找规律/模拟】
题目描述 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … ...
- HDU 4121 Xiangqi 模拟题
Xiangqi Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=4121 ...
- hdu 5071 Chat(模拟)
题目链接:hdu 5071 Chat 题目大意:模拟题. .. 注意最后说bye的时候仅仅要和讲过话的妹子说再见. 解题思路:用一个map记录每一个等级的妹子讲过多少话以及是否有这个等级的妹子.数组A ...
- hdu 4740【模拟+深搜】.cpp
题意: 给出老虎的起始点.方向和驴的起始点.方向.. 规定老虎和驴都不会走自己走过的方格,并且当没路走的时候,驴会右转,老虎会左转.. 当转了一次还没路走就会停下来.. 问他们有没有可能在某一格相遇. ...
- HDU 2568[前进]模拟
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2568 关键思想:傻傻地模拟 代码如下: #include<iostream> using ...
随机推荐
- 今天做一个winform,想直接把窗体改成输出类库,其他地方直接调结果总提示不能注册组件,回来调度,可以,总结,windows还是直接用新建的类型项目,改容易出错
如题, 对于winform程序,还是新建一个类库,这样,在类库里面可以添加窗体.这样可以提供其他程序集来调用里面的窗体
- mlock家族:锁定物理内存【转】
转自:http://blog.csdn.net/fjt19900921/article/details/8074541 锁住内存是为了防止这段内存被操作系统swap掉.并且由于此操作风险高,仅超级用户 ...
- (七)insmod/rmmod
insmod: insmod命令用于将给定的模块加载到内核中.Linux有许多功能是通过模块的方式,在需要时才载入kernel.如此可使kernel较为精简,进而提高效率,以及保有较大的弹性.这类可载 ...
- java实现MQ消息收发两种方式
定义: 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们.简单理解:蓝牙配对 jar包依赖: <!-- ...
- 在OpenResty中使用淘宝的concat进行css和js合并,同时支持GZIP静态压缩
=======================================================================================cd /usr/local ...
- unittest (python标准库-开发工具-单元测试框架)
unittest官方文档摘录 翻译 reffer to: https://docs.python.org/3/library/unittest.html#unittest.TextTestRunner ...
- App Class Loader
Java本身是一种设计的非常简单,非常精巧的语言,所以Java背后的原理也很简单,归结起来就是两点: 1.JVM的内存管理 理解了这一点,所有和对象相关的问题统统都能解决 2.JVM Class Lo ...
- [BZOJ 1567] Blue Mary的战役地图
Link: BZOJ 1567 传送门 Solution: 矩阵Hash/二维$Hash$模板题 涉及到需要快速查询.匹配的题目,考虑直接上$Hash$ 矩阵$Hash$其实就是每行先各$Hash$一 ...
- 用swift开发自己的MacOS锁屏软件(二)
上一篇中尝试写了hello world,这一篇中,开始尝试锁屏功能 1.尝试查找swift有没有相关的函数,可以控制系统锁屏之类的,结果并没有找到 2.尝试查找cocoa有没有相关的接口,结果仍然没有 ...
- IOS8设备连接XCODE6真机调试报错"Could not inspect the application package"
每次真机调试都要运行2次才行,解决办法:把product name改成英文就行了.