18.06.27 16年期末11:张三丰的传人
描述
张三丰凭借太极拳成为一代宗师;然而岁月不饶人,他希望找到传人,在有生之年将太极拳传于弟子发扬光大。然而,张三丰的太极拳有一个特点,学的时间越长,忘记的越多。一个弟子学习时间为T,那么他只可以学习到总功力的1/T。假设张三丰计划用S的时间,他可以培养N个弟子,虽然可能每个弟子都无法完全学会,但是只要这N个弟子的总功力之和为1,张三丰就可以将S的时间,分配给这N个弟子,来完成自己的心愿;如果给定S之后,对于任何的N,都无法找到一种有效的分配方案,张三丰只能含恨而终。在这里,S,N和T均必须为正整数。
你的任务是:给定整数S,帮助张三丰找出一个整数N,以及一个分配方案。例如:S为10时,你帮助张三丰找到3个弟子,传授他们武功的时间分别为{2,4,4};S为2时,你无论如何无法找到这样一个方案,张三丰只能含恨而终。
输入
第一行是一个正整数m,表示测试数据的组数。
每组测试数据只有一行,一个正整数S( 1<=s<65536),表示张三丰计划传授太极拳的总时间。
输出
对每组测试数据:如果你可以帮助张三丰找到这样一组方案,首先输出正整数N,然后输出N个数分别代表分配给这N个弟子各自的时间,数据之间用空格隔开;如果你无法找到这样的分配方案,输出-1.
样例输入
3 1 2 10
样例输出
1 1 -1 3 2 4 4
提示注意:这样的方案可能有多组,你只需要输出任何一组;另外,本题目中浮点数的精度控制在1e-6.
1 #include <cstdio> 2 #include <string> 3 #include <memory.h> 4 #include <algorithm> 5 #include <stdlib.h> 6 #include <math.h> 7 #include <iostream> 8 #include<queue> 9 #include <vector> 10 using namespace std; 11 12 const double eps = 1e-6; 13 int s,time0; 14 vector<int> solution; 15 bool flag=false; 16 17 bool is_equal(double a) { 18 if (a <= 1 + eps && a >= 1 - eps) 19 return true; 20 return false; 21 } 22 23 void dfs(double sum,int now,int left) { 24 if (flag) 25 return; 26 if (sum + 1 / (double)left > 1 + eps) 27 return; 28 if (is_equal(sum + 1 / (double)left)) { 29 flag = 1; 30 solution.push_back(left); 31 return; 32 } 33 for (int i = now; i < left-1; i++) { 34 solution.push_back(i); 35 dfs(sum + 1 / (double)i, i, left - i); 36 if (flag) 37 return; 38 solution.pop_back(); 39 } 40 } 41 42 43 int main() 44 { 45 int t; 46 scanf("%d", &t); 47 while (t--) { 48 flag = false; 49 solution.clear(); 50 scanf("%d", &time0); 51 dfs(0, 1, time0); 52 vector<int>::iterator i1 = solution.begin(),i2=solution.end(); 53 if (flag) 54 { 55 printf("%d", solution.size()); 56 for (; i1 != i2; i1++) 57 printf(" %d", *i1); 58 printf("\n"); 59 } 60 else 61 printf("-1\n"); 62 } 63 return 0; 64 }
View Code
两处剪枝:1.当当前情况肯定超过1时
2.只递增尝试
转载于:https://www.cnblogs.com/yalphait/p/9232114.html
18.06.27 16年期末11:张三丰的传人相关推荐
- 18.06.27 POJ1054 The Troublesome Frog
描述 In Korea, the naughtiness of the cheonggaeguri, a small frog, is legendary. This is a well-deserv ...
- 18.06.27 POJ百练 4124海贼王之伟大航路
描述 "我是要成为海贼王的男人!",路飞一边喊着这样的口号,一边和他的伙伴们一起踏上了伟大航路的艰险历程. 路飞他们伟大航路行程的起点是罗格镇,终点是拉夫德鲁(那里藏匿着" ...
- 在Ubuntu 18.04系统上安装Java 11的方法
本文将介绍在Ubuntu 18.04/Ubuntu 16.04/Debian 9系统上安装Java 11的方法,可以通过openjdk-11.0.1_linux-x64_bin.tar.gz.jdk- ...
- BUAA(2021春)查家谱(士谔书院16级期末)——找最近公共祖先(已上传测试数据和代码)
BUAA数据结构期末模拟题--查家谱 看前须知 考试回顾 题目内容 问题描述 输入形式 输出形式 样例 样例说明 题解 思考和详解 参考代码 测试数据 看前须知 要点介绍和简要声明. 考试回顾 格式控 ...
- Ubuntu 18.04(16.04)搭建tftp服务器
Ubuntu 18.04(16.04)搭建tftp服务器 文章目录 Ubuntu 18.04(16.04)搭建tftp服务器 前言 一.安装tftp server服务器 二.配置/etc/xinetd ...
- MIT 18.06 Gilbert Strang《线性代数》L1. 方程组的几何解释
这里是 MIT 18.06 Gilbert Strang<线性代数>笔记汇总. 从求解线性方程组来开始这门课,教授从"行图像"与"列图像"的角度解方 ...
- 2018年06月16日广州珠海长隆海洋世界之旅
2018年06月16日,端午节假期第一天,从首都机场T1航站楼坐海南航空前往广州.下午3点半到达广州白云机场后先处理了点工作上的事情,然后坐地铁到沙面景区所在的黄沙站.在飞猪上搜了个旅馆然后托行李前往 ...
- AI英特尔杯公开课:2019.06.27在线直播《研究生人工智能创新大赛—AI赋能,创新引领》课堂笔记和感悟(二)
AI英特尔杯公开课:2019.06.27在线直播<研究生人工智能创新大赛-AI赋能,创新引领>课堂笔记和感悟(二) 导读 讲解总体不错,知识点比较基础,适合入门,各种主流框架都有 ...
- AI英特尔杯公开课:2019.06.27在线直播《研究生人工智能创新大赛—AI赋能,创新引领》课堂笔记和感悟(一)
AI英特尔杯公开课:2019.06.27在线直播<研究生人工智能创新大赛-AI赋能,创新引领>课堂笔记和感悟(一) 导读 讲解总体不错,知识点比较基础,适合入门,各种主流框架都有 ...
- linux zip 开源工程,7-Zip 18.06 发布,开源数据压缩程序
7-Zip 18.06 已经发布,7-Zip是一个开源数据压缩程序,主要用于Microsoft Windows操作系统,类似Unix的操作系统如Linux和FreeBSD 7-zip移植版本的p7zi ...
最新文章
- 网站推广期间要学会筛选关键词,有利于提升网站推广转化率
- python:SyntaxError: invalid syntax报错
- 方法调用(车票练习)
- .NET Core使用IO合并技巧轻松实现千万级消息推送
- leetcode56. 合并区间
- node-webkit学习(4)Native UI API 之window
- 无法从外部连接MySQL_无法从外部VPC连接到RDS实例(ERROR 2003(HY000)无法连接到MySQL服务器)...
- 2017 Multi-University Training Contest - Team 6—HDU6098HDU6106HDU6103
- Flutter的Align组件
- 达梦和oracle数据库对比学习
- SocksCap64全局代理工具使用+Clash使用命令行
- 全国地址json android,全国城市+四级城市地址+邮编+区号+经纬度json版
- 矩阵基础概念之行列式与秩
- 【React】状态管理仓库 原生\封装\第三方
- Processing摸索前行(8)-弹珠游戏
- 利用matlab求系统的单位阶跃响应,基于Matlab6_5的归一化二阶系统单位阶跃响应的模拟演示...
- 事件冒泡 vs 事件捕获 vs 事件委托 的区别
- 快速理解论文主旨框架:论文十问法
- 自动计数报警器c语言,基于51单片机的光电式计数报警器
- 银行业务学习之道:信用卡的具体功能
热门文章
- 计算机技术与软件专业技术资格哪个好考,计算机技术与软件专业技术资格好考吗?考试时间?...
- 倪静(201550919)第一次作业
- c语言else的用法,else的用法
- 全国哀悼日,我们也把博客灰一下吧
- Nat. Med. :婴儿生命早期肠道病毒组和细菌组的动态
- 浅析微信支付:公众平台卡券功能开通、HTML5线上发券(JS-SDK接口)、查看卡券详情
- 黑芝麻A1000 设置临时IP连接激光雷达(十)
- 基于8086方波锯齿波三角波发生器仿真、基于8086的LCD1602显示仿真设计、基于8086的LED点阵汉字流水显示设计、基于8086的LED中文显示屏显示设计-仿真设计资料【转发】
- 一个人的行动力,取决于他的底层信念。
- ad中按钮开关的符号_收藏:电路图形符号大全!!!