自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 java集合研究 与 随机访问和顺序访问

java集合:java集合框架图:List(有序、可重复):数组:数组在Java中是一个对象,数组实例同样是使用new操作符创建的数组存储在Java堆的连续内存空间。数组一个固定长度 的数据结构,一旦声明,你不能改变数组的长度ArrayList(查询速度快,增删速度慢):ArrayList 是一个数组队列,相当于 动态数组。ArrayList内部存储数据的是数组Object[] elementData。当容量不足以容纳全部元素时,ArrayList会重新设置容量:新的容量=“(原始

2021-02-19 15:41:48 1169

转载 android之回调函数的意义

1.class A实现接口CallBack callback——背景1 2.class A中包含一个class B的引用b ——背景23. class B有一个参数为callback的方法f(CallBack callback) ——背景3 A的对象a调用B的方法 f(CallBack callback) ——A类调用B类的某个方法 C

2016-03-03 10:28:49 588

转载 Android 4.0后,自定义Title报错 You cannot combine custom titles with other title feature

运行项目时,有时LogCat报错: AndroidRuntimeException: You cannot combine custom titles with other title feature网上说,去掉AndroidManifest.xml中Activity的android:theme="@android:style/Theme.NoTitleBar.Fullscreen

2015-08-20 09:52:21 473

转载 LinearLayout和RelativeLayout

**LinearLayout和RelativeLayout 共有属性: java代码中通过btn1关联次控件 android:id=”@+id/btn1” 控件宽度 android:layout_width=”80px” //”80dip”或”80dp” android:layout_width =“wrap_content” android:layout_width =“mat

2015-08-13 10:34:24 426

转载 Android工程的编译过程

Android工程的编译过程现在很多人想对Android工程的编译和打包进行自动化,比如建立每日构建系统、自动生成发布文件等等。这些都需要我们对Android工程的编译和打包有一个深入的理解,至少要知道它的每一步都做了什么,需要什么环境和工具,输入和输出是什么。那么我们就来挖掘一下Android的编译过程中的细节。首先,我们假定你的系统(什么系统都行,不限于Linux还是W

2015-08-12 16:31:29 326

转载 Android中this、super的区别

在Java中,this通常指当前对象,super则指父类的。当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象的某个成员,你便可以利用this来实现这个目的,当然,this的另一个用途是调用当前对象的另一个构造函数,这些马上就要讨论。如果你想引用父类的某种东西,则非 super莫属。由于this与super有如此相似的一些特性和与生俱来的某种关系,所以我们在这一块儿来讨论,希望能帮

2015-08-12 13:35:13 364

转载 (转载)Nim游戏博弈(收集完全版)

Nim游戏的概述:还记得这个游戏吗?给出n列珍珠,两人轮流取珍珠,每次在某一列中取至少1颗珍珠,但不能在两列中取。最后拿光珍珠的人输。后来,在一份资料上看到,这种游戏称为“拈(Nim)”。据说,它源自中国,经由被贩卖到美洲的奴工们外传。辛苦的工人们,在工作闲暇之余,用石头玩游戏以排遣寂寞。后来流传到高级人士,则用便士(Pennies),在酒吧柜台上玩。最有名的玩法,是把十二枚便士放

2015-07-01 17:31:14 371

原创 hiho 1182 : 欧拉路·三

1182 : 欧拉路·三这时题目中给的提示:小Ho:是这样的,每次转动一个区域不是相当于原来数字去掉最左边一位,并在最后加上1或者0么。于是我考虑对于"XYYY",它转动之后可以变成"YYY0"或者"YYY1"。我就将所有的数字0~2^N-1看作2^N个点,连接所有的("XYYY","YYY0"),("XYYY","YYY1")。比如当N=3时,我得到了这样一个图:

2015-06-30 13:51:17 639

原创 hiho拓扑排序专题 ——第四十八、四十七周

拓扑排序·一分析: 此题就是求一个有向图中是否存在环。 如存在环则输出”Wrong”, 若不存在环, 说明课程安排的合理,输出”Correct”。 题中的提示说的已经十分清楚了。总的来说就是: ① 找出入度为0的点(说明该点没有前驱),把该点放入集合T中。 把所有从该点出发的边都删除;② 遍历剩余的点, 找出入度为0 的点, 重复①操作。 ③直到不存在入度为0的点。 结束。如果此时集合T中

2015-06-18 14:06:42 502

原创 hiho欧拉路·二 ----- Fleury算法求欧拉路径

hiho欧拉路·二分析:小Ho:这种简单的谜题就交给我吧!小Hi:真的没问题么?<10分钟过去>小Ho:啊啊啊啊啊!搞不定啊!!!骨牌数量一多就乱了。小Hi:哎,我就知道你会遇到问题。小Ho:小Hi快来帮帮我!小Hi:好了,好了。让我们一起来解决这个问题。<小Hi思考了一下>小Hi:原来是这样。。。小Ho你仔细观察这个例子: 因为相连的两个数字总是相同的,不妨我们只写一次,那么这个例子可以写成:3

2015-06-17 19:31:07 758

原创 hdoj1423 最长上升公共子序列

hdoj1423这里写链接内容题目分析: 两个数组a[n1] , b[n2], 求最长上升公共子序列。 我们可用一维存储 f[i] 表示 b 数组以 j 结尾, 与 a[] 数组构成的最长公共上升子序列。 对数组 d 的任意 j 位, 都枚举 a[1 ~n1]。 当a[i] == b[j] 时 , 在1 ~ j - 1中 找出 b[k] 小于 a[ i ] 并且 d[k] 的值最大。 当

2015-06-15 22:29:31 480

原创 hdoj1584 蜘蛛牌 区间型DP

题目链接分析: f[i][j] 表示 把牌 i 到 j 摞为一串时花费最少的步数。 d[i][j] 表示把牌 i 挪到牌 j 上时需要走的步数(最初给的状态)。 以一串牌 3~8 为例, 我们需要把牌 3 放到牌 4 上 , 而在最优的移动方案下, 牌 4 的位置不确定, 所以我们枚举牌 4 所在的位置(因为一共10张牌, 枚举是可以的) , 这样得出状态转移方程: f[3][8] = mi

2015-06-09 21:47:37 491

原创 poj2594 (最小路径覆盖 + floyd)

题目链接题目大意: 一个有向图中, 有若干条连接的路线, 问最少放多少个机器人,可以将整个图上的点都走过。 最小路径覆盖问题。分析: 这时最小路径覆盖问题, 最小路径覆盖 = |V| - 最大匹配数。 (有关最小路径覆盖,最大匹配问题,相关概念不懂得点这里) 当然做这道题还有一个坑!! 如果有向图的边有相交的情况,那么就不能简单的对原图求二分匹配了 详细讲解看这#include<iost

2015-06-02 21:31:14 1661

原创 最大匹配、最小顶点覆盖、最大独立集、最小路径覆盖(转)

在讲述这两个算法之前,首先有几个概念需要明白:二分图: 二分图又称二部图,是图论中的一种特殊模型。设G=(V,E)是一个无向图,如果顶点V可以分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A, j in B), 则称图G是二分图。 匹配: 给定一个二分图,在G的一个子图G’中,如果G’的边集中的任意两条边都不依附于同一

2015-06-02 20:42:03 1745

原创 poj3660 Cow Contest(Floyd-Warshall方法求有向图的传递闭包)

题目链接题意: 有n头牛, 给你m对关系(a, b)表示牛a能打败牛b, 求在给出的这些关系下, 能确定多少牛的排名。分析: 在这呢先说一下关系闭包: 关系闭包有三种: 自反闭包(r), 对称闭包(s), 传递闭包(t)。 先画出 R 的关系图,再画出 r(R), s(R), t(R) 的关系图。

2015-06-01 22:17:09 765

转载 Floyd-Warshall算法详解(转)

Floyd-Warshall算法,简称Floyd算法,用于求解任意两点间的最短距离,时间复杂度为O(n^3)。我们平时所见的Floyd算法的一般形式如下:1 void Floyd(){2 int i,j,k;3 for(k=1;k<=n;k++)4 for(i=1;i<=n;i++)5 for(j=1;j<=n;j++)6

2015-05-29 21:32:10 13537

原创 nyoj42 一笔画问题

题目链接 分析: 若图G中存在这样一条路径,使得它恰通过G中每条边一次,则称该路径为欧拉路径。若该路径是一个圈,则称为欧拉(Euler)回路。 具有欧拉回路的图称为欧拉图(简称E图)。具有欧拉路径但不具有欧拉回路的图称为半欧拉图。先说一下欧拉路径、欧拉回路的充要条件: 1.无向连通图G是欧拉图,当且仅当G不含奇数度结点(G的所有结点度数为偶数); 2.无向连通图G含有欧拉通路,当且仅当G有零

2015-05-29 19:54:51 756

原创 poj1274 匈牙利算法 二分图最大匹配

poj1274题意: 有n个奶牛, m个畜舍, 每个畜舍最多装1头牛,每只奶牛只有在自己喜欢的畜舍里才能产奶。 求最大产奶量。 分析: 其实题意很明显, 二分图的最大匹配, 匈牙利算法。#include<iostream>#include<cstdio>#include<string.h>#include<cstring>using namespace std;int n, m, sum,

2015-05-27 22:09:10 517

转载 用匈牙利算法求二分图的最大匹配

什么是二分图,什么是二分图的最大匹配,这些定义我就不讲了,网上随便都找得到。二分图的最大匹配有两种求法,第一种是最大流(我在此假设读者已有网络流的知识);第二种就是我现在要讲的匈牙利算法。这个算法说白了就是最大流的算法,但是它跟据二分图匹配这个问题的特点,把最大流算法做了简化,提高了效率。匈牙利算法其实很简单,但是网上搜不到什么说得清楚的文章。所以我决定要写一下。 最大流算法的核心问题就是找增广路

2015-05-27 19:17:22 476

原创 hdoj1285 拓扑排序

确定比赛名次 分析: 很明显,一看就是拓扑排序。 看似简单, 暗藏武器啊。 第一次做的时候一边拓扑排序一边标记他们的深度, 例如题中给的例子 {1 2;2 3;4 3 }。1的深度为1。 2、4的深度为2; 3的深度为3。 然后按深度的逆序输出深度相同的先输出小的。 其实不然啊!! 举个例子6个点, 边为{5, 3; 5,1; 5,4; 5,2; 3,1; 3,2; 6,4; 6,2;

2015-05-21 20:24:23 552

原创 hdoj1874 (优先队列+Dijkstra)

[题目链接](http://acm.hdu.edu.cn/showproblem.php?pid=1874)分析:一看题目, 就是求最短路, 这道题用的是Dijkstra+优先队列。先说一下Dijkstra算法:伪代码:将所有节点状态初始化(标记为未计算)设起始点s, d[s] = 0; 其他节点d[i] = MAX;循环n次{ 在所有未标记的节点中, 选出d值最小的节点x; 标记节点x;

2015-05-19 22:41:22 473

原创 hdoj1325 Is It A Tree?

hdoj1325 题目链接题意: 多组测试数据, 每组数据有多个数对, 表示一条有向边(即第一个数是第二个数的父节点), 以 0,0 为一组测试数据结束标志。当输入-1,-1时测试结束。 从那些给出的信息中判断是否是一棵树。 分析: 1、只可以有一个根节点, 也可以是一个点都没有的空树; 2、除了根节点, 每个点只有一个父节点。 3、因为只可以有一个父节点, 所以我们可以把一个合法的关系对

2015-05-19 20:19:33 561

原创 poj2299

poj2299题目链接 题意: 一个含有n个数的数组, 每次只能交换相邻的两个数, 求最少操作多少次可以使该数组变成一个有序数组(从小到大)。 分析: 先说一下归并排序吧。 二分的思想, 就是将一元素集合分割成两个或更多个子集合,对每一个子集合分别排序,然后将排好序的子集合归并为一个集合。看图理解会好一点! 归并排序核心操作:将一维数组中前后相邻的两个有序序列归并为一个有序序列。那看一下我

2015-05-11 21:41:41 729

原创 nyoj汉诺塔(二)

汉诺塔(二)题目链接 汉诺塔问题的经典结论:把i个盘子从一个柱子整体移到另一个柱子最少需要步数是 2的i次方减一。那我们这个给定一个初始局面,求他到目标局面(全部移到第三个柱子上)需要的最少步数。怎么办呢!!分析: 1、总的来说一定是先把最大的盘子移到第三个柱子上, 然后再把第二大的移到柱子3上, 然后再把第三大的盘子移到柱子3上………直到把最小的盘子(1号盘子)移到柱子3上,才算结束。 2、

2015-05-08 23:35:32 580

转载 nyoj914Yougth的最大化(二分搜索 + 贪心)

Yougth的最大化 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 Yougth现在有n个物品的重量和价值分别是Wi和Vi,你能帮他从中选出k个物品使得单位重量的价值最大吗?输入 有多组测试数据 每组测试数据第一行有两个数n和k,接下来一行有n个数Wi和Vi。 (1<=k=n<=10000) (1<=Wi,Vi<=1000000) 输出 输出使得单位

2015-05-05 21:49:02 519

原创 nyoj832 合并游戏(状态压缩DP)

合并游戏 题目链接 题意 : n个石子, 给你一个n*n矩阵, A[i][j]表示第i个和第j个合并蹦出的金币值, 合并完石子j消失。求合并所有石子后,所得的最大金币数。 分析 : 1、 题中给的数据范围 n(1<=n<=10) 也就是说最多10个石子, 那么我们不妨用一个二进制串来表示合并的状态,1表示没被合并,0表示合并后消失了,例如(1001)四个石子第2、3个被合并了。 2、

2015-05-04 22:45:24 507

原创 zoj2432 hdoj1423 最长公共上升子序列(LCIS)

zoj2432题目链接 hdoj题目链接题意: 一看题目题意就很明显了, 两个数组a,b,求出两个数组公共的最长的上升子序列(可以不是连续的子序列)。 分析: 如果做过最长公共子序列应该更容易明白点。 定义状态d[i][j]表示以a数组的前i个元素,b数组的前j个元素并且以b[j]为结尾的LCIS的长度。 首先:a[i] != b[j]时, d[i][j] = d[i-1][j]; 因

2015-05-01 11:37:18 514

原创 并查集 poj1308 hd1272

poj1308 题目链接题目大意:输入若干组测试数据,输入 (-1 -1) 时输入结束。每组测试数据以输入(0 0)为结束标志。然后根据所给的所有(父亲, 孩子)数据对判断 是否能构成一棵树。分析:  都以了解树只有一个根节点,那么我们就判断是不是有多个树;又知道每个节点只有一个父亲节点,那么我们就判断他是不是构成环, 成环则不是树。注意: ①可以是空树; ②所给的节点构成森林(多个树)是不可以

2015-04-24 22:12:29 456

原创 nyoj349 poj1094 Sorting It All Out(拓扑排序)

题目大意输入n,m。 一共有n个字母(从A开始), m行语句每个语句“x﹤y”,说明x,y之间的偏序关系。让你判断是否可以通过这些关系得到一个唯一的升序序列,若能则输出这个序列并指出通过前多少条语句得出的,如果n个字母间存在矛盾,输出相应语句并指出那条语句开始出现矛盾的。如果没有唯

2015-04-23 22:38:51 506

原创 zoj3326 An Awful Problem

题目大意:求规定时间范围内,月和日(例如:2月3号)都为素数的日期一共有多少, 考虑边界。 这就一模拟,考虑的细一点应该就可以。 只要一出大意了就会无限wrong!! 也没什么算法,直接上代码吧.#include<iostream>#include<cstdio>#include<algorithm>#include<string.h>#include<cstring>#includ

2015-04-19 22:48:47 340

原创 2015编程之美资格赛 回文子序列个数

描述: 给定一个字符串, 求它回文子序列的个数。回文子序列字符反转顺序后与原序列相同。 如字符串”aba“(长度<100), 它的回文子序列包括”a”, “a”, “aa”, “b”, “aba”,共5个(不要求连续)。内容相同位置不同的子序列算不同的子序列。 输入 第一行一个整数T(1 ≤ T ≤ 30),表示数据组数。之后是T组数据,每组数据为一行字符串。 输出 对于每组数据输出一行,

2015-04-18 22:49:42 1536

原创 双程动态规划 nyoj61

题目大意: 在矩阵m*n中,从(1,1)点到(m,n)点,再从(m,n)点到(1,1)点,所走路线经过的同学最大好心值, 要求每个点只能走一遍。 分析: ①我们可以把它只看成两个人同时从(1,1)点, 走到(m,n)点。 ②因为只可以往两个方向走所以无论什么了路线,从(1,1)到(m,n)所走的步数一定相同。开四维数组存状态的话f[x1][y1][x2][y2]](表示当前一个人走在(x1,

2015-04-14 22:53:40 530

原创 背包问题——nyoj860 又见01背包

好吧, 如果想得到了用d[i]来存储价值一定时,物品所占重量最小状态。那么应该没什么难的啦!

2015-04-14 22:14:20 428

原创 nyoj737 石子合并 详细

好吧, 也别着急,动态规划本来就是很难理解的, 你们也做了一些动态规划的提了。 也了解DP本来就很难想, 我开始做的时候也很慢, 也是自己理解了好久, 开始都这样。 我讲的也有点快, 那块没理解, 欢迎随时来问。 我那讲的不好理解, 就指出来, 我改进。大家相互学习。 DP一般最难想的就是状态转移方程。 区间型DP一般(也有例外)都是从小的区间开始求最优解,然后不断扩大所求的区间,而求大区

2015-04-13 21:36:18 1039

转载 网络流题集

【HDU】1532Drainage Ditches(基础) [最大流] 3549 Flow Problem(基础) [最大流] 3572 Task Schedule [最大流]任务分配,判断满流 2732 Leapin’ Lizards(难) [最大流] 3338 Kakuro Extension [最大流][数和]神奇最大流行进列出 2883 kebab

2015-04-13 12:46:35 451

原创 poj1417 true liars(并查集 + DP)详解

这个题做了两天了。首先用并查集分类是明白的, 不过判断是否情况唯一刚开始用的是搜索。总是超时。 后来看别人的结题报告, 才恍然大悟判断唯一得用DP.题目分析:题中会给我们一些信息, 告诉我们那些是同一类, 哪些是不同类。 当然刚开始的时候我们无法判断那一类是好人、坏人。 那么我们不妨把有关系的点(yes, no)全归为一类, 他们有一个相同的父节点。然后用一个数组(relation[]

2015-04-13 11:45:18 879

原创 nyoj304 节能 动态规划

这个题自己琢磨了好久,也没想出状态转移方程,一经提醒才大悟啊! 这是个区间型DP,先开门见山看一下怎样存状态的吧:d[i][j][0] 所存的状态是在i到j这个区间所有灯关闭,并且机器人位于i点时所消耗的最小功率。 d[i][j][1]所代表就是 i到j区间所有灯关闭,位于j点时 所消耗的最小功率。 d[i][j][0] 区间(i, j)的灯都关闭了,机器人正位于i点 , 上一步可能是从j点

2015-04-04 23:00:06 742

原创 nyoj712 双程动态规划

探寻宝藏这里写链接内容 题意很清晰啦,一个机器人从(1,1)点出发到(m,n)点,再从(m,n)点回到最初点。我们可以把它看成在(1,1)点同时有两个机器人出发到(m,n)点。我开始做的是四维的。f[i][j][x][y]表示 : 机器人一在(i,j),机器人2在(x,y)时所收集的宝藏最多是多少。机器人1从上面(i-1 , j)或者左面(i , j-1)走到(i, j),机器人2从上面(x-1

2015-04-02 20:12:33 590

原创 poj2337

poj2337 题目链接(欧拉路径) 这道题昨天晚上开始做,今天才A。但是问题想透了, 发现其实没那么难题目大意: 给你一些单词,如果一个单词的末尾字符与另一个单词首字符相同,则两个的单词可以连接。问是否可以把所有单词连接起来,并且每个单词只能用一次。 分析: 可以把每个单词看成是一条边,单词的首尾字符看做是两个相连的点。我们可以把它看成有向图的欧拉路径问题(欧拉路径,欧拉回路不太明白的自

2015-03-31 22:23:54 454

原创 poj2492 poj1182种类并查集

这两道题感觉有点难,自己琢磨了好一阵子也没什么结果最后还得大神的思维啊!!  poj 1182分析:这个题大意说的非常清楚了,就是求出假话的个数,题目中给的假话要求有三个 ① 当前的话与前面的某些真的话冲               突,是假话; ②当前的话中X或Y比N大,是假话;③当前的话表示X吃X,是假话。  ②和③很好判断了,最难的就是假话条                  件

2015-02-16 22:38:02 514

空空如也

空空如也

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

TA关注的人

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