- 博客(43)
- 收藏
- 关注
原创 uva 1025 A Spy in the Metro (DP)
/*题意: 给出车站数N,时刻T,t[i]: i->i+1车站需时间,从1->N方向的m1辆车的发车时间,N->1方向的发车时间, 求从1->N最短时间。分析: 求最短时间,最终状态是T时刻到达N,dp[T][N]; 由于要递推出答案,设dp[i][j]为i时刻,位于车站j到达车站N还需的时间, 每个状态则有三种转移方向: dp[i][j]=dp
2015-01-30 16:53:04
311
转载 C++ 关于const的一些细节
转自:点击打开链接 感觉这个讲的比较清楚: 如果const在*左边 ,const 修饰值 int const *pi 如果const在*右边 ,const 修饰指针 int *const pi; 其实这种问题你可以这样看,const后面
2014-12-22 00:13:12
427
转载 C++细节(关于类中的 static,const,const static,static const)
转载自博客:点击打开链接 const定义的常量在超出其作用域之后其空间会被释放,而static定义的静态常量在函数执行后不会释放其存储空间。 static表示的是静态的。类的静态成员函数、静态成员变量是和类相关的,而不是和类的具体对象相关的。即使没有具体对象,也能调用类的静态成员函数和成员变量。一般类的静态函数几乎就是一个全局函数,只不过它的作用域限于包含它的文件中。
2014-12-21 20:03:36
533
原创 ural 1152. False Mirrors
#include #include #include #include #include #include #include #include #include using namespace std;typedef long long ll;const int maxn=10000000;int num[30],dp[1int main()
2014-11-24 00:15:15
375
原创 堆排序
敲着练习一下#include #include #include using namespace std;const int maxn =100;int a[maxn],n,length;void max_heapify(int a[],int i){ int l=i*2,r=i*2+1,largest; if(la[i]) largest=l;
2014-11-06 19:51:30
234
原创 组合数计算(快速幂)
用快速幂更高效。。。#include #include #include #include #include #include #include #include #include using namespace std;typedef long long ll;const ll mod=1000000009;const ll maxn=100;ll c[12345
2014-11-06 19:47:17
1736
原创 ural 1012. K-based Numbers. Version 2(大数dp)
题意:分析:#include #include #include #include #include #include #include #include #include using namespace std;typedef long long ll;#define MAXN 9999#define MAXSIZE 1010#define DLEN 4
2014-11-01 17:31:16
350
原创 HDOJ 4869 Turn the pokers
题意: 有m张扑克,开始时全部正面朝下,你可以翻n次牌, 每次可以翻xi张,翻拍规则就是正面朝下变背面朝下, 反之亦然,问经过n次翻牌后牌的朝向有多少种情况。 题目要求的是n次翻牌后可能出现的情况总数,不是 翻每t张牌后的情况总数,此外,每次翻n张牌是指不 同的n张牌。 分析: 每张牌翻奇数次必然是正面朝上,翻偶数次则还是正
2014-10-28 16:38:25
259
原创 ural 1073. Square Country(dp)
/*题意: 买一块边长为 a(为整数) 的正方形地需要的钱数是 a^2, 现在输入N为钱数, 为了交税方便,求最少购买地的块数。分析: 输入n就代表可购买面积为n的地 dp[i]为购买面积为i的地最少的土地块数,则 遍历j:1~n,表示当前选边长为j的土地,情况有二:选或是不选 不选:dp[i]=dp[i-1]+1; 选
2014-10-16 23:17:15
243
原创 ural 1260. Nudnik Photographer(dp)
题意: 给出一个数n,将1,2,3。。。n.排成一排,第一个数必须是1, 且相邻的两个数差的绝对值 分析: 开始我想用二维dp来做,dp[i][j]表示第i个位置放j这个数, 转移方程是dp[i][j]=dp[i-1][j-1]+dp[i-1][j-2]+dp[i-1][j+1]+dp[i-1][j+2]-之前摆放了j的数目。。。后来。。发现不对
2014-10-15 18:45:13
261
原创 ural 1353. Milliard Vasya's Function(dp)
题意: 给一个数s,求1~10亿这10亿个数中,各个位上的数之和为s的数的个数分析: dp[i][j]表示前i位,各个位上的数之和为j的个数 最后答案即为dp[9][j],还有一个例外需要考虑,当s==1时,要多加一个; 由于10亿是10位,先算出9位上的符合条件的dp[9][s],然后再单独考虑10位的情况 即:当s==1时,答案为dp[9]
2014-10-14 23:53:29
303
原创 ural 1203. Scientific Conference(贪心or dp)
#include #include #include #include #include #include #include #include #include using namespace std;typedef long long ll;struct node{ int x,y;}a[100004];bool cmp(node a,node b){
2014-10-14 09:37:15
423
原创 ural 1146. Maximum Sum(dp)
题意: 给一个数n和n*n个数,形成一个n*n的矩阵计算矩阵的最大子矩阵,即求一个子矩阵使矩阵中的数之和为最大分析: 联想到了,最大连续子序列的问题:hdu转换成最大连续子序列的方法:为了变成一维的首先要把数据压缩一下,便于计算,可以对数据预处理一下,计算出第i行1~j的和a[i][j],可以遍历第i列和第j列之间哪两行之间的数和最大,这时就转化成了求最
2014-10-12 21:44:03
325
原创 ural 1009. K-based Numbers(dp)
1a题意: 给你一个n和k,k代表进制,n是n位数,求出符合要求的n位数有多少个,要求:数中不能有连续的2个0,前导不能是0dp[i][0]表示第i位上的数字为非0时的种类数目,dp[i][1]表示第i位上的数字为0时的种类数。易知dp[i][0]=dp[i-1][1],dp[i][1]=(dp[i-1][0]+dp[i-1][1])*(k-1);dp水题#inc
2014-10-09 10:51:41
301
原创 HDOJ 4864 Task
题目大意:有n台机器,m个任务,每个机器和任务都有有xi和yi 2个属性,要求机器的xi,yi均大于等于任务的xi和yi才能执行任务。每台机器一天只能执行一个任务。要求完成的任务数尽量多,并且说金额尽量大,给出n,m,和机器,任务的相关属性,输出,任务个数和金钱 分析:完成每个任务的金额为xi*500+yi*2,又因为xi(0。就算是yi最大的时候也不能让xi*500所以,优先选择
2014-10-07 22:38:01
495
原创 HDOJ 1394 Minimum Inversion Number
题意 有0~n-1数字组成的序列,然后进行这样的操作,每次将最前面一个元素 放到最后面去会得到一个序列,每得到一个序列都可得出该序列的逆序数 (如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数, 那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数) 要求求出最小的逆序数。题解:(线段树) 1、对于某一序列,其
2014-10-07 22:28:19
232
原创 HDOJ 1312 Red and Black
题意: n*m的方阵有红格或是黑格,1 man只能走黑格 每次只能走上下左右四个紧邻方向的格子,求 这个man最后能走多少个黑格子。 分析: dfs水题。从第一个黑格子开始递归的搜索, 每次搜索一个黑格子后为了以后不再重复走 这个黑格子,就把当前搜索的这个黑格子换 成红格子,然后继续dfs。。。#include #in
2014-10-07 22:25:42
305
原创 HDOJ 1242 Rescue
题意: n*m的方格中,'#/是墙不可过,'.'是路可过,a代表要救出的 公主,r是出发的friend,x代表守卫,每走一步都需要一单位 的时间,遇到守卫需要额外再消耗一单位的时间,求从r走到a 最短需多少的时间。 分析: 1,要注意从a开始搜索,因为r可能含有多个。开始我是从r搜索到a, 后来wa了很多次。。。最后发现题目中说的是
2014-10-07 22:23:09
313
原创 HDOJ 1241 Oil Deposits
题意:(dfs水题) 一个n*m的矩阵,每个@点周围的8个相邻的点也是@ 就说明他们是连在一起的水洼,求一共有多少水洼。分析: dfs从前到后遍历的搜索,搜到一个就将其改为*以防重复计数 然后在遍历的过程中记录一下水洼的数目即可。
2014-10-07 22:20:25
309
原创 HDOJ 1022 Train Problem I
题意: 给你一个数n代表车辆个数,然后n个数,代表依次进站的 车号,最后是n个数代表最终符合要求的出站顺序(按照车号排) 分析: 进站问题就想到了stl中的queue,由于输入的一串数是没有间隔的 所以用string类型来保存一串车号比较方便,由于最后还要输出 每次是进站还是出站,所以可以用bool类型的vector来保存答案。
2014-10-07 22:15:45
195
原创 HDOJ 1072 Nightmare
题意:给你一幅nXm的地图,其中‘0’是不能走的,‘1’是可以走的,‘2’是起点,‘3’是终点,‘4’是可以重置时间的点,每次可以朝上下左右四个方向走,但不能超出地图范围,走一步需要1秒的时间。若能在炸弹爆炸前走出去,则输出最少的时间,否则输出-1。最初炸弹的时间是6,倒计时6秒就会爆炸,炸弹的时间可在在地图上的‘4’处重置为6秒,重置炸弹不需要时间。若到‘4’时的时间
2014-10-06 20:21:29
323
原创 HDOJ 1022 Train Problem I
题意: 给你一个数n代表车辆个数,然后n个数,代表依次进站的 车号,最后是n个数代表最终符合要求的出站顺序(按照车号排) 分析: 进站问题就想到了stl中的queue,由于输入的一串数是没有间隔的 所以用string类型来保存一串车号比较方便,由于最后还要输出 每次是进站还是出站,所以可以用bool类型的vector来保存答案。
2014-10-06 20:17:11
267
转载 HDOJ 1026 Ignatius and the Princess I
当时做的时候wa了很多次。。。orz题意: 要求从(0,0)走到(n-1,m-1)所花费的最短时间; ‘.’是可以走的,消耗一个单位的时间, ‘x’是不可以走的, ‘n’代表此处需要消耗n个单位的时间,分析: bfs结合优先队列求最短问题。,,,注意细节即可
2014-10-06 20:17:11
277
原创 HDOJ 1016 Prime Ring Problem
当时题意: 给你一个数n,将一串数1~n摆成一个环,使环中每两个数的和 都是素数,并且要求圈第一个数是1.分析: 数据很弱n (0 所以可以暴力法。 用一个bool类型的rec[n](初始值为FALSE) 记录1~n是否已经加入圈中,遍历i是否 还没有加入圈中,rec[i]=true;判断是否和上一个数的和是素数, 如果
2014-10-06 20:14:13
240
转载 HDOJ 1015 Safecracker
题意: 给你一堆字符和一个数target。要你根据题目的 要求找出符合条件的5个字符v, w, x,y,和z, 要求满足 v - w^2+ x^3 - y^4 + z^5 = target。 分析: 暴力搜索一下,就可以找到了。只是要注意细节。 dfs的构造上,参数中要有当前已经找到的字符串, 已经找了第几个字母了,即搜到的深度de
2014-10-06 20:04:44
310
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人