- 博客(82)
- 资源 (1)
- 收藏
- 关注
原创 android之Animation的基本使用
1.Tweened Animation 渐变动画该类提供了 旋转,移动,淡入淡出,缩放2.Frame-by-Frame Animation和放电影一样 通过一系列的图片 按照我们制定的动作 显示出来 Tweened Animation:1.Alpha:淡入淡出效果2.Scale:缩放效果3.Rotate:旋转效果4.Translate:移动效果
2014-05-16 18:33:32
9194
原创 Catch That Cow
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2717题目大意:一个农夫和一头牛的故事。两者在同一坐标轴上,农夫(位置为x)的移动方式有两种,一种是x+1或x-1,一种是2*x。现在问你农夫最少走几步才能够和奶牛的坐标相同(追上奶牛)题目思路:简单的搜索。农夫有三个方向进行广搜。代码:#include#includeusing
2013-03-30 20:43:08
819
原创 HDU3951
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3951 题目大意:给你n个硬币,把它围成一个圆圈。现在有两个人玩这样的一个翻转游戏,每次翻转1--k个硬币,最后一个翻转硬币者胜。 思路:博弈1) 若k=1,则一次只能去翻一枚,奇数先手赢,偶数后手赢。2)若k>1:a: 先手一次翻完,先手赢;b: 先手不能翻完,第
2013-03-19 20:16:25
958
原创 最大公约数和最小公倍数
1.如果q和r是a除以b的商和余数,即a=b*q+r.则有gcd(a,b)=gcd(b,r).当r=0时,其最大公约数就是b了。用辗转相除法求最大公约数int Gcd(int a,int b){ int gcd; if(b==0) return a; else gcd=Gcd(b,a%b);}利用最大公约数求出最小公倍数Lcm(a,b)=a*b/(Gcd(a,
2013-03-07 20:21:28
690
原创 求自然数n的自然排列
/*输出前n个自然数的所有排列*/#includeusing namespace std;void swap(int &x,int &y){ int temp=x; x=y; y=temp;}int n;int data[100];void solve(int t){ if(t==n) { for(int i=1;i<=n;i++) { cout<<da
2013-03-07 20:19:09
946
原创 K尾相等数
输入一个自然数K(K>1),若存在自然数M和N(M>N),使得K^M和K^N均大于或等于1000,且它们的末尾三位数相等,则称M和N是一对“K尾相等数”。现在请编程求出M+N值最小的K尾相等数。---问题分析对于一个数,它的幂是无穷无尽的,但是我们可以注意到末尾三位数只有1000个,也就是表明一定会有重复的末尾三位数,当一个数的末尾三位数一定时,它的下一次幂的末尾三位数也一定了。也就是
2013-03-07 20:17:26
2621
原创 3n+1数链问题
问题如下:1.输入一个正整数N;2.把N显示出来;3.如果N=1时则结束一切操作;4.如果N是奇数则N变为3*N+1,否则N变为N/2;5.转入步骤2.问题分析:这道题目比较简单,我们只需要按照题目的要求一步步的做下去就可以找到结果。参考代码:#includeusing namespace std;int max,M;void
2013-03-07 20:13:26
1579
原创 哈夫曼编码
#includeconst int MAX=20;//哈夫曼树输入数据的结构struct huffinit{ char data; int weight;};//哈夫曼树结点的结构struct huffnode{ int weight; int lchild,rchild,parent;};//哈夫曼树编码的结构s
2012-12-04 20:00:22
1236
原创 二叉树中路径的求解
问题:求二叉树中根结点到P结点的路径void path(char ch) { int top=-1; int tag[100]; BiNode *A[100];//模拟栈 BiNode *T=root; while(T!=NULL||top!=-1) { while(T!=NULL)//扫描左子树 { top++;
2012-12-04 19:58:16
746
原创 二叉树转化为完全二叉树
题意就是将普通的二叉树转化为完全二叉树。该二叉树用链接存储,完全二叉树用顺序存储。想法就是把空结点分配空间并其数据域赋为‘#’;指针域为空。层序遍历该二叉树参考代码:#includeusing namespace std;struct BiNode{ char data; BiNode *lchild,*rchild;};char a[200];int fl
2012-11-28 22:10:46
4395
原创 顺序存储和链接存储的相互转化
顺序存储转化为链接存储:BTreeNode *create(char* str, int pose, int size) //下标从0开始{ char ch; BTreeNode * t; char* p=str; ch = p[pose]; if(ch=='#'|| pose>=size) return NULL; // 表示空结点 else
2012-11-24 13:44:46
1274
原创 二叉树的遍历
一:递归遍历void Order(Binode* bt){ if(bt==NULL) return; else { coutdata;//前序遍历 Order(bt->lchild); coutdata;//中序遍历 Order(bt->rchild); coutdata;//后序遍历 }}二:非递归遍历前序遍历v
2012-11-17 15:20:11
600
原创 二叉树的建立
一:根据扩展二叉树的前序遍历序列建立该二叉树Binode* Creat(Binode* bt){ char ch; cin>>ch; if(ch=='#') bt=NULL; else { bt=new Binode; bt->data=ch; bt->lchild=Creat(bt->lchild); bt->rchild=Creat(b
2012-11-17 14:48:47
955
原创 二叉树相似
所谓的二叉树相似是指要么它们都为空或都只有一个根结点,要么它们的左右树均相似。参考代码:#includeusing namespace std;struct Binode{ char data; Binode* lchild; Binode* rchild;};class Bitree{private: Binode* root1; Binode*
2012-11-16 21:26:02
3288
原创 二叉树的顺序存储转化为链接存储
题意明确 代码:#includeusing namespace std;struct Binode{ char data; Binode* lchild; Binode* rchild;};class Bitree{private: Binode *root; void Release(Binode *bt) { if(bt!=NULL
2012-11-16 21:21:26
1490
原创 Havel-Hakimi定理(判断一个序列是否可图)
1,Havel-Hakimi定理主要用来判定一个给定的度序列是否是可图的。2,首先介绍一下度序列:若把图 G 所有顶点的度数排成一个序列 S,则称 S 为图 G 的度序列。3,一个非负整数组成的有限序列如果是某个无向图的序列,则称该序列是可图的。4,判定过程:(1)对当前数列排序,使其呈递减。(2)从S【2】开始对其后S【1】个数字-1。(3)一直循环直到当前序列出现负数(
2012-11-14 20:53:30
801
原创 死锁 并查集
题目链接:http://acm.fzu.edu.cn/problem.php?pid=1924解法之一就是用并查集把点集构成树,如果构成的不是树而有一些点形成环路,那就是说明存在死锁了题目代码:#include#includeusing namespace std;int parent[1000];void UFset(int n){ for(int i=0;i
2012-11-13 21:30:33
642
原创 HDU3448 Bag Problem 01思想+搜索
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3448题目大意:Problem Description0/1 bag problem should sound familiar to everybody. Every earth man knows it well. Here is a mutant: given the capacity
2012-11-13 20:33:02
978
原创 poj1679 判断MST是否是唯一的
题目链接:http://poj.org/problem?id=1679题目大意:就是给你一个图,然后让你判断该图的MST是否是唯一的大概思路:就是用Kruskal或者prim第一次求出MST,并且标记第一次MST中有权值一样的边。如果发现该图没有相同的权值的边,那该图的MST是唯一的。否则依次删除MST中有被标记的权值相同的边并进行另一次MST,如果这次求的的MST的总权值和第一次是一样的
2012-11-07 21:38:33
1132
原创 表达式求值
一:中缀表达式求值中缀表达式是指双目运算符在两个运算对象之间,设运算符有+,-,*,/,#其中#为中缀表达式的界定符。中缀表达式的求值过程需要两个栈,运算对象栈OPND和运算符栈OPTR。求值过程的伪代码描述为:1.将OPND初始化为空,将栈OPTR初始化为表达式的界定符#2.从左到右扫描表达式的每一个字执行下面操作,直至遇到界定符#2.1若当前字符为运算对象,则入栈O
2012-11-07 19:20:23
747
原创 poj3984迷宫问题 广搜+最短路径+模拟队列
Description定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上
2012-11-04 20:23:22
3860
原创 HDU1598 find the most comfortable road (最小生成树,并查集的应用)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1598题目大意:就是说有一个很奇葩的星球,假设有n个城市和m条路,每条路有自己的最大速度。现在给你起点和终点,要你求出一条路线是的你从起点可以到达终点并且这条路线中的速度的最大值和最小值是最小的。题目思路:该题用到最小生成树的算法,,使用克鲁斯卡尔。。先将道路权值自小到大排序,再依次枚举权值下限
2012-10-26 22:36:56
858
原创 poj1014 hdu1059 Dividing
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1059题目大意:就是说有两个人收集了一些漂亮的大理石,现在他们要分了它们,并且要每个人拿到的大理石的价值是一样的。现在有价值为1---6的大理石,并且价值为i的大理石有amount[i]个;现在要问你在不把大理石破坏的前提下是否能把这些大理石分成价值一样的两堆。 本例可以用到DFS搜索来解决
2012-09-18 21:08:24
635
原创 图论之搜索部分解题思路
HDU1728:http://acm.hdu.edu.cn/showproblem.php?pid=1728该题不难,简单的BFS,其复杂的地方就是要找出其最小的转弯次数#include#includeusing namespace std;int Sx,Sy,Ex,Ey,T;int visit[101][101];int n,m;char Map[101][101
2012-09-04 21:03:32
628
原创 最大匹配与二分图建图概述
一:关于二分图最大匹配的两个定理:1:最大匹配数 + 最大独立集 = n + m(n,m为二部图两部分的个数)2:二分图的最小覆盖数 = 最大匹配数3:最小路径覆盖 = 最大独立集最大独立集是指求一个二分图中最大的一个点集,该点集内的点互不相连。最小顶点覆盖是指 在二分图中,用最少的点,让所有的边至少和一个点有关联。最小路径覆盖是指一个不
2012-08-27 12:26:19
1881
原创 HDU 图论之最短路部分解题思路
HDU1385:http://acm.hdu.edu.cn/showproblem.php?pid=1385 该题就是让你求出最少的费用,比较坑爹的就是它不单单是边权值的最短路,而是边权值+顶点权值的最短路问题,其实也就是加点步骤步骤而已,这里关键的是记录路径,因为题目要求让你按字典序输出,比如路径1--3--4--5和路径1-2--3--4,如果这两条的路径相同,那就要输出后者。因
2012-08-26 10:06:46
778
原创 HDU1527 取石子游戏 威佐夫博弈
有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。 输入包含若干行,表示若干种石子的初始情况,其中每一行包含两个非负整数a和b,表示两堆石子
2012-08-24 22:03:09
906
原创 HDU2177 取(2堆)石子游戏 威佐夫博弈
Problem Description有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。如果你胜,你第1次怎样取子? Input 输
2012-08-24 21:58:40
967
原创 威佐夫博弈
从网上给自己总结下神奇的威佐夫博弈: 威佐夫博奕(Wythoff Game):有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。 这种情况下是颇为复杂的。我们用(ak,bk)(ak ≤ bk ,k=0,1,2,...,n)表示两堆物品的数量并称其为局势,如果甲面对(0,0),那么甲已经输了,这种局势我们称为奇异
2012-08-24 16:38:24
1485
原创 HDU2147 巴什博弈
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2147 题目大意:就是有一个游戏,在一个n*m的矩阵中起始位置是(1,m),走到终止位置(n,1);游戏规则是只能向左,向下,左下方向走,想走到终点的为获胜者。 这一题就是巴什博弈,自学的孩子苦啊,网上找的资料还是有些不懂,先存着: 只要把PN状态图描绘出来就行了:P点:就是
2012-08-23 16:49:16
3368
原创 HDU2546 01背包
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2546 解题思路:要使得买饭后卡上的余额达到最小,但由于有限制条件就是卡上的必须剩下不小于5元才能买饭,这样的情况用01背包是肯定错误的得不到最优的解,我们知道要使得卡上余额最小那就是要让最贵的菜最后买,所以剩下来的n-1种菜就可以用01背包求解了 #includeusing nam
2012-08-22 20:08:27
695
原创 HDU1599 find the mincost route 无向图最小环
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1599 题目大意:就是说8600要去旅行,给你若干个景区,8600想要找到一条路线,比如从A出发最终回到A,并且除了出发点外其余的景区不会不会重复走一遍,如V1>V2>V3>....>Vn,并且景区数不少于3.现在要求你找出一条花费最少的路径。其中数据N,M为景区数,道路数。a,b,c表示从a到
2012-08-22 18:57:36
1970
原创 HDU1548 A strange lift 广搜和最短路
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1548 题目大意:就是说有一个很奇怪的升降机,它有两个按钮UP和DOWN,给你一些数i表示层数,并且每层对应的Ki,如果按UP按钮,会从第i层升到第i+Ki层;如果按了DOWN则会从第i层降到第i-Ki层;并规定能到的层数为1到N,根据常识也知道。现在的要求就是给你N,A,B和一串数K1到Kn,
2012-08-22 15:47:46
1788
原创 HDU2059
Problem Description据说在很久很久以前,可怜的兔子经历了人生中最大的打击——赛跑输给乌龟后,心中郁闷,发誓要报仇雪恨,于是躲进了杭州下沙某农业园卧薪尝胆潜心修炼,终于练成了绝技,能够毫不休息得以恒定的速度(VR m/s)一直跑。兔子一直想找机会好好得教训一下乌龟,以雪前耻。最近正值HDU举办50周年校庆,社会各大名流齐聚下沙,兔子也趁此机会向乌龟发起挑战。虽然乌龟深知
2012-08-21 20:18:00
4031
原创 活动安排问题
作为新一代的好青年肯定会喜欢许多的电视节目,比如说新闻联播,焦点访谈,又如招聘类的节目有非你莫属,职来职往,娱乐节目如快乐大本营。现在给你每个节目的开始时间和结束时间,要求你求出看尽可能多的完整节目。 每个电视节目i都有一个起始时间si和一个结束时间fi,且si 对于活动安排问题可以用贪心算法解决,我们把节目的结束时间按非减序排列,所以算法greedySele
2012-08-20 20:17:58
1756
原创 HDU1532 Drainage Ditches Dinic算法
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1532 题目大意: 就是由于下大雨的时候约翰的农场就会被雨水给淹没,无奈下约翰不得不修建水沟,而且是网络水沟,并且聪明的约翰还控制了水的流速,本题就是让你求出最大流速,无疑要运用到求最大流了。题中N为水沟数,M为水沟的顶点,接下来Si,Ei,Ci分别是水沟的起点,终点以及其容量。求
2012-08-20 16:25:10
3262
原创 扩展欧几里得算法
欧几里德算法欧几里德算法概述: 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理: gcd函数就是用来求(a,b)的最大公约数的。 gcd函数的基本性质: gcd(a,b)=gcd(b,a)=gcd(-a,b)=gcd(|a|,|b|) 欧几里得算法的公式表述 gcd(a,b)=gcd(b,a mod b
2012-08-20 12:50:05
575
原创 HDU1532 Drainage Ditches 最大流
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1532 题目大意: 就是由于下大雨的时候约翰的农场就会被雨水给淹没,无奈下约翰不得不修建水沟,而且是网络水沟,并且聪明的约翰还控制了水的流速,本题就是让你求出最大流速,无疑要运用到求最大流了。题中m为水沟数,n为水沟的顶点,接下来Si,Ei,Ci分别是水沟的起点,终点以及其容量。求
2012-08-19 19:41:11
1138
原创 I love sneakers! 分组背包(每组至少选一件)
Problem Description After months of hard working, Iserlohn finally wins awesome amount of scholarship. As a great zealot of sneakers, he decides to spend all his money on them in a sneaker store
2012-08-18 16:55:32
1210
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人