第一讲、整数划分(分治实现之二)
来源:互联网 发布:宾馆软件破解版 编辑:程序博客网 时间:2024/06/05 06:49
package junior2015;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
public class Junior2015p5{
public static void fun(int[] str,int n,int m,int k,int k1) throws IOException
{
if(n>0)
{
for(int i=n;i>=1;i--)
{
if(m==0)
{System.out.println();k++;}
if(m==0||i<=str[m-1])
{
str[m]=i;
fun(str,n-i,m+1,k,k1);
}
}
}
else
{
int []result=new int[20];
int rn=0;
for(int i=0;i<=m-1;i++)
{
if(i==(m-1))
{
if (k==(m-1))
{
System.out.print(str[i]);
}
else
{
System.out.print(str[i]+",");
rn++;
}
}
else
{
rn++;
result[i]=str[i];
System.out.print(str[i]+" ");
}
}
}
}
public static int q(int n,int m)
{
if(n<1||m<1)return 0;
if(n==1||m==1)return 1;
if(n<m)return q(n,n);
if(n==m)return q(n,m-1)+1;
return q(n,m-1)+q(n-m,m);
}
public static void main(String[] args) throws IOException
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String str1=br.readLine();
String str2=br.readLine();
// Scanner scanner = new Scanner(System.in);
// System.out.print("请输入一个数: ");
// int n = scanner.nextInt();
//输入数
fun(new int[Integer.parseInt(str1)],Integer.parseInt(str1),0,-1,Integer.parseInt(str2));
System.out.println();
//得出结果
int result=q(Integer.parseInt(str1),Integer.parseInt(str1));
System.out.println();
System.out.println(result);
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
public class Junior2015p5{
public static void fun(int[] str,int n,int m,int k,int k1) throws IOException
{
if(n>0)
{
for(int i=n;i>=1;i--)
{
if(m==0)
{System.out.println();k++;}
if(m==0||i<=str[m-1])
{
str[m]=i;
fun(str,n-i,m+1,k,k1);
}
}
}
else
{
int []result=new int[20];
int rn=0;
for(int i=0;i<=m-1;i++)
{
if(i==(m-1))
{
if (k==(m-1))
{
System.out.print(str[i]);
}
else
{
System.out.print(str[i]+",");
rn++;
}
}
else
{
rn++;
result[i]=str[i];
System.out.print(str[i]+" ");
}
}
}
}
public static int q(int n,int m)
{
if(n<1||m<1)return 0;
if(n==1||m==1)return 1;
if(n<m)return q(n,n);
if(n==m)return q(n,m-1)+1;
return q(n,m-1)+q(n-m,m);
}
public static void main(String[] args) throws IOException
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String str1=br.readLine();
String str2=br.readLine();
// Scanner scanner = new Scanner(System.in);
// System.out.print("请输入一个数: ");
// int n = scanner.nextInt();
//输入数
fun(new int[Integer.parseInt(str1)],Integer.parseInt(str1),0,-1,Integer.parseInt(str2));
System.out.println();
//得出结果
int result=q(Integer.parseInt(str1),Integer.parseInt(str1));
System.out.println();
System.out.println(result);
}
}
0 0
- 第一讲、整数划分(分治实现之二)
- 第一讲,整数划分 JAVA 代码(分治实现之一)
- 第一讲、整数划分(回溯实现)
- 递归分治算法之整数划分问题(Java版本)
- 整数划分算法实现 分治策略
- 递归与分治之整数划分
- 整数划分(二)
- 整数划分(二)
- 整数划分(二)
- 整数划分 (递归、分治、动态规划)
- 【分治算法】整数划分
- NYOJ - 整数划分(二)
- 整数划分(二)+ nyoj176
- nyoj整数划分(二)
- nyoj整数划分(二)
- NYOJ 整数划分(二)
- 分治法求整数划分
- 11088 整数划分的扩展问题(递归,分治)
- JFinal+WebUploader实现图片的异步上传
- 第一讲、整数划分(回溯实现)
- 【JS】【笔记】JavaScript入门经典(第5版)第1章 概述
- [c++]TRACE 宏的利用
- 求一份 电力猫 QCA6410 原理图等
- 第一讲、整数划分(分治实现之二)
- 【JS】【笔记】JavaScript入门经典(第5版)第2章 简单的脚本
- 添加pch全局引用文件
- C++及模式设计系列
- 【JS】【笔记】JavaScript入门经典(第5版)第3章 函数
- 转载的一篇关于头文件和库文件路径的文章
- 【JS】【笔记】JavaScript入门经典(第5版)第4章 DOM对象和内置对象
- 神经网络及卷积神经网络的训练——反向传播算法
- Codeforces Round #316 (Div. 2) E. Pig and Palindromes、HDU 5617 Jam's maze(dp)