/*
数字不重复
将一个正整数分解成若干的整数的和 数字不重复 且数字不相同
保证不重复的话 贪心策略是从2开始分 然后把最后剩下的数均匀分到后面
证明嘛 这里写的可能不是很严谨
对于一个n 如果我们先分解成了两个a1 a2
我们设 x为a2-a1 若x>=3显然我们把x拿出来 即变成 x a1 a2-x 这样会更优
然后我们要保证不重复 从2开始拆 每次+1 把剩下的给后面的每个+1 这样一定不会重复
而且满足我们刚才的最优策略 然后写个高精乘单精
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#define maxn 2600
using namespace std;
int n,ans[maxn],l,p[maxn];
void Mul(int x)
{for(int i=1;i<=l;i++)ans[i]=ans[i]*x;for(int i=1;i<=l;i++)if(ans[i]>9){ans[i+1]+=ans[i]/10;ans[i]=ans[i]%10;}while(ans[l+1]){l++;ans[l+1]+=ans[l]/10;ans[l]=ans[l]%10;}
}
int main()
{scanf("%d",&n);int i,k,s=0;for(i=2;i;i++){if(n-i<0)break;n=n-i;p[++s]=i;}k=n;while(k)for(int i=s;i>=1;i--)if(k){p[i]++;k--;}ans[1]=1;l=1;for(int i=1;i<=s;i++)Mul(p[i]);for(int i=l;i>=1;i--)printf("%d",ans[i]);return 0;
}

转载于:https://www.cnblogs.com/yanlifneg/p/5551249.html

codevs 2612 最有分解方案 (贪心)相关推荐

  1. 不浪费原料的汉堡制作方案--贪心算法

    LeetCode 不浪费原料的汉堡制作方案 圣诞活动预热开始啦,汉堡店推出了全新的汉堡套餐.为了避免浪费原料,请你帮他们制定合适的制作计划. 给你两个整数 tomatoSlices 和 cheeseS ...

  2. 正整数 n 分解成若干个互不相同的自然数的和,且使这些自然数的乘积最大

    题目描述 一个正整数一般可以分为几个互不相同的自然数的和,如 3=1+2,4=1+3 4=1+3,5=1+4=2+3,6=1+5=2+4. 现在你的任务是将指定的正整数 n 分解成若干个互不相同的自然 ...

  3. 算法小课堂(五)贪心算法

    一.概述 贪心算法是一种常见的算法思想,用于解决优化问题.其基本思想是在每一步选择中都采取当前状态下最优的选择,从而希望能够获得全局最优解. 具体来说,贪心算法通常分为以下步骤: 定义问题的最优解,通 ...

  4. VJ 1033 整数分解(版本2)

    描述 整数分解(版本2) 一个正整数可以分解成若干个自然数之和.请你编一个程序,对于给出的一个正整数n(1<=n<=1500),求出满足要求的分解方案,并使这些自然数的乘积m达到最大. 例 ...

  5. 2017\National _C_C++_C\1.哥德巴赫分解

    标题:哥德巴赫分解 哥德巴赫猜想认为:不小于4的偶数都可以表示为两个素数的和. 你不需要去证明这个定理,但可以通过计算机对有限数量的偶数进行分解,验证是否可行. 实际上,一般一个偶数会有多种不同的分解 ...

  6. 2017年第八届蓝桥杯C/C++ C组国赛 —— 第一题:哥德巴赫分解

    标题:哥德巴赫分解 哥德巴赫猜想认为:不小于4的偶数都可以表示为两个素数的和. 你不需要去证明这个定理,但可以通过计算机对有限数量的偶数进行分解,验证是否可行. 实际上,一般一个偶数会有多种不同的分解 ...

  7. 最大乘积|贪心算法|FOJ1698|TYVJ3024

    [题目链接]TYVJ3024 最大乘积 [问题描述] 一个正整数一般可以分为几个互不相同的自然数的和,如3=1+2,4=1+3,5=1+4=2+3,6=1+5=2+4,-.现在你的任务是将指定的正整数 ...

  8. 图像融合亮度一致_重磅干货低光图像处理方案

    点击上方"AIWalker",选择加"星标"或"置顶"    重磅干货,第一时间送达 Tips:一点点提示,因内容较多建议先关注,再置顶,最 ...

  9. 信息学奥赛一本通 1200:分解因数 | OpenJudge 2.2 1751:分解因数

    [题目链接] ybt 1200:分解因数 OpenJudge 2.2 1751:分解因数 [题目考点] 1. 递归 2. 深搜 [解题思路] 解法1:递归 由于要求得到的因数分解序列必须是升序的,那么 ...

最新文章

  1. tril--下三角矩阵的抽取
  2. 方差分析的MATLAB实现(单因子)
  3. C# 解决串口接收数据不完整
  4. Github 王炸功能!Copilot 替代打工人编程?
  5. linux 无线网卡驱动桥转发,引用和完美转发
  6. 解决由于没有办理权限导致的403,权限不足
  7. php设计的意义,PHP设计模式
  8. VC++ CString互转double
  9. Django报错NameError: name ‘ListView‘ is not defined
  10. mpvue 调起子组件的方法_牢记 | 智鹏五金机电设备这些方法的使用更安全!
  11. Ford-Fulkerson Edmonds-Karp算法
  12. 微信小程序开发--【Hello World 及代码结构】(二)
  13. 使用sourcetree 的git flow
  14. UVA - 10635 —— Prince and Princess
  15. 路由重发布Route Redistribution
  16. paip.android 读取docx总结
  17. 管理linux文件的pe软件,诺达佳U盘启动盘制作工具v5.51(UD+EFI三分区linuxPE+winPE版)...
  18. html是什么文件 可以删除吗,perflogs是什么文件夹?perflogs可以删除吗?
  19. 一线外包员工的生活经历
  20. Excel 输入内容自动生成条形码

热门文章

  1. Android中ActivityManagerService与应用程序(客户端)通信模型分析
  2. js的BOM对象完全解析
  3. 活动图与流程图的区别
  4. 重构-改善既有代码的设计:重新组织数据的16种方法(六)
  5. golang中的json
  6. golang中的strings.TrimSpace
  7. 动态规划算法--矩形最小路径和
  8. muduo之channel
  9. sendto成功返回
  10. springboot: ajax异步提交表单