自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

荒野孤鹰

广阔天地大有作为

  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

原创 uva--437The Tower of Babylon+dp

题意:      给定一些立方体,对于两个立方体,只有其中一个底面两个边都严格小于另一个才可以放在其上面。求可以得到的最大高度。思路:    一个立方体可以转成6个底面不同的具有不同权值(高度)的矩形,然后就是这些矩形的嵌套问题了。以前是将这个问题转成了DAG图上的最长路做的;这一次直接将这些矩形按照底面积由小到大的排序,然后问题就变成求最长上升子序列了。代码如下:

2014-12-31 13:33:31 765

原创 csuoj--1347Last Digit+数学问题

题意:   定义一个函数f(n,k) = 1k + 2k + 3k +...+nk,输入n,k求f(n,k)的最后一位数字。思路:  本来相用快速幂做的,后面想了一下因为它只关心最后一位数字,所以其实该函数是一个周期为10的周期函数(我们只关心n的最后一位数字);然后对于0--9的幂又是有周期的(自己稍微在纸上写一下就知道了),所以可以利用周期性解决了:对于每一次输入,我们先计

2014-12-26 23:39:26 620

原创 uva--10285Longest Run on a Snowboard+dp

经典的滑雪问题。代码如下:#include#include#includeusing namespace std;int m[110][110],d[110][110],r,c;int dx[]={1,-1,0,0},dy[]={0,0,1,-1};int dp(int i,int j){ if(d[i][j]>0) return d[i]

2014-12-25 23:05:53 556

原创 uva--10464Homer Simpson +dp

背包问题的变种。保证费时尽量多的情况下,数目尽可能多。但是不能反过来进行。代码如下:#include#include#includeusing namespace std;int main(){ int w[5],v; while(scanf("%d%d%d",&w[0],&w[1],&v)!=EOF) { int dp1

2014-12-25 22:12:00 418

原创 uva--531Compromise+dp

其实就是一个最长公共子序列的问题,不过要打印路径。对于路径打印,可以采取0-1背包问题的方法,第一可以利用一个二维数组记录每个状态的指向最后再由最后一个状态回推,第二可以直接由最后一个状态结合前面的状态转移进行路径打印;下面的代码采用了第二种方法。代码如下:#include#include#includeusing namespace std;int main

2014-12-24 23:25:21 634

原创 uva--10130SuperSale +dp

0-1背包问题。其实对于每个人都是一次0-1背包问题,但是我们可以利用背包问题子问题的性质,一次处理出所有重量下的最大价值。代码如下:#include#include#includeusing namespace std;int main(){ int t; scanf("%d",&t); while(t--) {

2014-12-24 14:17:12 587

原创 uva--624Word Amalgamation+dp

其实就是0 1背包问题,不过还要输出路径。对于路径输出,我们可以记录在装容量为v的背包时,物品i有没有使用。然后最后从最大容量和最大物品编号往回推即可。代码如下:#include#include#includeusing namespace std;int dp[10010],g[50][10100];int main(){ int V; w

2014-12-19 12:36:27 585

原创 uva--562Dividing coins +dp

题意:    给定一堆硬币,然后将他们分成两部分,使得两部分的差值最小;输出这个最小的差值。思路:   想了好久都没想到一个合适的状态转移方程。后面看了别人的题解后,才知道可以转成背包问题求解。我们将所有的硬币和的一半作为背包容量,然后将硬币的代价看成其本身的面值。然后背包中能装的最大容量就是其中一个人分得硬币数。代码如下:#include#inclu

2014-12-17 22:44:51 678

原创 uva--147Dollars +dp

背包类统计最优解个数问题代码如下:#include#include#includeusing namespace std; long long sum[50000];int main(){ double d; int w[]={0,5,10,20,50,100,200,500,1000,2000,5000,10000},i,j; me

2014-12-17 14:07:48 706

原创 java面向对象学习(3)

一.Java7增强的包装类    为了解决Java中8中基本数据类型不能当成Object 类型变量使用的问题,java提供了包装类,为8中基本数据类型分别定义了相应的引用类型。    java1.5以后JDK提供了自动装箱和自动拆箱的功能,所以基本类型和包装类型可以直接装换。包装类可以实现基本类型和字符串类型的转换:   1.利用包装类的parseXxx(String s) 静态方法。

2014-12-15 11:01:38 729

原创 uva--10066The Twin Towers +dp

其实就是求两个序列的最长公共子序列代码如下:#include#include#includeusing namespace std;int main(){ int n1,n2,Case=0; while(scanf("%d%d",&n1,&n2)&&n1) { int a[110],b[110]; int dp

2014-12-15 10:28:50 617

原创 uva--10131Is Bigger Smarter? +dp

题意:  有人说大象越重就越聪明,为了推翻的它的结论,给你一组大象的体重和智商的数组,你需要找出一组最长的随着体重增加智商下降的序列。思路:  按照体重排一下序,然后就变成求一个智商最长下降子序列的问题了。代码如下:#include#include#include#includeusing namespace std;typedef struct{

2014-12-13 23:46:52 454

原创 java面向对象学习笔记(2)

一.构造器   1.构造器最大的用处就是在创建对象时执行初始化,每个java类必须包含一个或一个以上的构造器。一般系统会提供一个无参的构造器,但是如果我们自己定义了一个构造器后它就不会再起作用了。如果我们为一个类编写了有参构造器,那么最好还是为该类提供一个无参的构造器。   2.构造器的重载      同一个类中可以包含有多个构造器,多个构造器的形参列表不同,即被称为构造器的重载。系统

2014-12-05 15:08:09 691

原创 鸟哥的私房菜--第十一章:认识与学习bash

一.Bash Shell 的操作环境    1.路径和命令查找顺序      如果我们输入一个命令,并且再linux下有多个与其同名的命令,那么会执行哪一个命令?下面就是一些命令执行顺序的规则。      1).以相对/绝对路径执行命令,例如:“/bin/ls”或“./ls”      2).由alias找到该命令来执行      3).由bash内置的(bulitin)命令来

2014-12-04 17:37:58 754

原创 java面向对象学习笔记(1)

此笔记用于记录java面向对象部分学习的心得体会。

2014-12-03 15:35:36 840

原创 java程序--控制台五子棋

控制台五子棋,具体思路见代码注释。代码如下:package test;import java.io.IOException;import java.util.Scanner;//控制台简单五子棋public class GoBang { //二维数组作为棋盘 private static char[][] board=new char[16][16]; //已下

2014-12-02 19:04:47 3559

原创 uva--10405Longest Common Subsequence+dp

经典的最长公共子序列问题。要注意的是题目中的输入会包含空格的情况,所以要用gets实现输入。代码如下:#include#include#includeusing namespace std;int dp[1100][1100];int main(){ char str1[1100],str2[1100]; int i,j; whi

2014-12-02 18:58:09 679

原创 uva--103Stacking Boxes +dp

题意:    其实就是把矩形嵌套扩大到了n维,但是规定这个n维的几何体是可以任意扭曲的。思路:   就是按照矩形嵌套问题的思路,不过判定是否可以嵌套的时候,我们直接都排一下序就判断了(因为是可以任意扭曲的)。还有就是需要打印出整个序列,这里可以借用小白书上的思路,递归进行打印。代码如下:#include#include#include#includeus

2014-12-01 23:40:09 949

原创 uva--111History Grading +dp

题意:   其实就是求两个序列的最长公共子序列。思路:  这个题目的输入是很坑爹的,如果把输入理解清楚后,这个题目就不难了。题目的输入表示的是该位置上的数放在哪个位置上,比如说输入是1,3,2,4其对应的序列应该是1,3,2,4;  下面给出2份代码,一份是经典的解法,一份是今天我写的把问题转成DAG图上的最长路求解的代码。代码如下:#include#in

2014-12-01 23:26:50 704

深入浅出MyBatis

深入浅出mybatis这本书详细的描述了如何使用mybatis作为数据层半持久化框架

2018-06-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除