动态规划,求值并找具体位置

递归实现 动态规划 并找出一个最优解 从V中选一些数据,使之和与另一给定值j最接近,(不大于j)对于V中的某个元素,用选或不选进行分析,选用此数时放右子树 不选时放左子树,并进行递归 。 # -*- coding:utf-8-*- ###从V中选一些数,使之和与另一给定值j 最接近(不大于j)。 动态规划时,对于V中的某个元素,选或不选进行递归,选此数时放右子树,不选放左子树 ###利用二叉树递归处理,动态规划 v ,并把每个右子树的值保存在的r_list中。 v=[1...
2018-10-21 10:08 | 阅读 1343 次 | 评论 0 条

Graph

public class Node { private Object value; public Node(Object value) { this.value = value; } public String toString() { return value == null ? "" : value.toString(); } } /***************************************************/ public class Border { ...
2016-08-09 20:21 | 阅读 2567 次 | 评论 0 条

二叉树经典例文(c++及Jave)

http://cslibrary.stanford.edu/110/BinaryTrees.html public class BinTree { private Node root; public static class Node { private int data; private Node left; private Node right; public Node(int data) { this.data = data; } } public BinTree() { this....
2016-08-04 11:19 | 阅读 2688 次 | 评论 0 条

坦克风云中的华为题

最近接触到一款坦克风云的手游,其中有个军团争霸环节,涉及到军团排名,前三竞争很是激烈。有三个军 团A,B,C,战力分别排名1,2 ,3。每个军团由于级别不同,所容玩家成员个数也不一样。因A,C是盟军 团,且A+C的战力大于2倍B,觉得如果玩家组织好,让A,C军团的玩家进行适当的交换,就可以让第三名超 过第二名B。运用二数组交换数据,分别让二个数组之和尽可能接近思想(华为题好象二数组同长),可以利益最大化,当然操作 有很大难度,需要玩家相当信任且相当组织和服从。这里可以二个方案,1,可以以A,C中值为标准,找最 接近中值的数,2,让第...
2014-05-18 18:57 | 阅读 2301 次 | 评论 0 条

借鉴“皇后之美”

八皇后是经典之作,近再读,想起一老题(http://bbs.bccn.net/thread-382842-1-1.html),借用此法。与B 版有异曲同工之妙。 一个排序问题求解 全班同学排成 6 排, A 、 B 、 C 、 D 、 E 、 F 等 6 人分别站在第 1 排到第 6 排 • 用 6 个 int 变量表示 A — F 的位置 – A 不在第 1 排 à a != 1 A 与 B 前后相邻 (a == b + 1) || (a == b - 1) C 在 D 前面 c == d - 1 E 在 B 的前两排 e == b...
2013-08-24 11:03 | 阅读 2153 次 | 评论 0 条

收据金额小写转换大写

收据金额汉字大写表示,写法和读法是不一样的,如1001,读法为:壹仟零壹元整,写法为:壹仟零佰零拾壹元整。现以目前实际中的用法,试写,没考虑分角情况。 #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int len,i; char source[16],*cn[]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"}; printf("请输入一个不大于16位的整数(阿拉伯数字表示)\n"); gets(source);...
2013-08-01 22:06 | 阅读 4880 次 | 评论 0 条

从若干数中任取若干数使之和最接近另一数

开始学习编程时曾经练习过此类题,采用的是蛮力法,虽说找的数较全,但因指数级数据处理相当复杂且相当有限,现用动态规划处理,暂时没考虑标记所取的数。 #include <stdio.h> #include <math.h> double v[100]; double total(int i,double j) { double l,r,t; if(i==-1||j==0) return 0; l=total(i-1,j);r=total(i-1,j-v[i])+v[i]; t=fabs(l-j)<fabs(r-j) ? l:r; return ...
2013-06-22 21:53 | 阅读 2282 次 | 评论 0 条

01背包学习

01背包动态规划思维不同于常规思维,需要学习前人的研究成果,但只要认真,看下百度百科,掌握了方法及参数的内容,基本上就差不多了,动态转移方程的理解熟悉后其实就能直接理解。 通过实例学习, 序號(i) 單個物重量w(i) 單個物品價值v(i) 1 22 15 2 18 18 3 9 10 4 24 13 5 15 20 包能承最大重35 求total(5,35)...
2013-06-20 20:41 | 阅读 2097 次 | 评论 0 条

大数乘法

#include<stdio.h> #include <string.h> void bigintmul(char a[],char b[]) { int tempa[100]={0},tempb[100]={0},temp[200]={0},carry=0,i,j,m,n,num,k; m=strlen(a); n=strlen(b); num=n+m; for(i=m-1;i>=0;i--) tempa[m-1-i]=a[i]-&#39;0&#39;;//a数组的个位保存在temp[0],... for(i=n-1;i>=0;i--) tempb[n-1-i]=b...
2013-05-27 19:17 | 阅读 2433 次 | 评论 0 条

大数加法(个位数保存在数组[0]中

#include<stdio.h> #include <string.h> void add(char a[],char b[]) { int temp[101]={0},carry=0,i,m,n,num; m=strlen(a); n=strlen(b); num=n>m?n:m; for(i=m-1;i>=0;i--) temp[m-1-i]=a[i]-'0';//a数组的个位保存在temp[0],... for(i=n-1;i>=0;i--) temp[n-1-i]+=b[i]-'0'; for(i=0;i<=num...
2013-05-25 22:35 | 阅读 1964 次 | 评论 0 条
浏览233102次
最新评论