自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (4)
  • 收藏
  • 关注

原创 hdu3047Zjnu Stadium 带权并查集

//n列个座位,排数为无穷//m个询问//a,b,x ,a在b前面x列//问这m个询问与其前面询问冲突的有多少个 //带权并查集存下每个点到这个集合中最前的距离#include<cstdio>#include<cstring>#include<iostream>using namespace std ;const int maxn = 50010 ;int F[maxn] ;i

2015-07-31 20:01:25 485

原创 hdu4003Find Metal Mineral 树形dp+分组背包

//k个机器人从一颗树的树根开始往下走,//走树的每条边都要消耗能量,问这k个人最少花多少能量能遍历所有点//dp[u][i] 表示以u点为根节点的子树用i个节点遍历最少需要多少能量//当i = 0时表示有一个点遍历了这颗子树又返回上一个节点#include<cstdio>#include<cstring>#include<iostream>#include<vector>using

2015-07-31 16:44:04 478

原创 hdu3499Consumer 依赖背包模板

//给n种箱子子//买下每种箱子后才能买需要这种箱子能装的物品//依赖背包#include<cstdio>#include<cstring>#include<iostream>using namespace std ;const int maxn = 100010 ;int dp[maxn] ;int tmp[maxn] ;int main(){ int n , m ;

2015-07-31 14:42:40 546

原创 hdu3450Counting Sequences 树状数组

//给一串序列,找出长度大于2,且相邻两个数的差值不大于d的数子序列的个数//dp[u] 表示以u为最后一个点满足条件的序列个数//dp[u] = segma(dp[v] + 1) a[u] - a[v] <= d ;//将用树状数组来找这个求和//不过由于没有给a[i] , 所以需要对每个数编号,然后用二分找其对应的编号#include<cstdio>#include<cstring>

2015-07-31 12:46:39 1082

原创 hdu4044GeoDefense 树形dp+分组背包

//在一颗树上每个点建炮台,//每个点都有不同价格和威力的炮台选择,每个点只能建一个炮台//敌人从树根1点出发,走出叶子节点玩家就输了,对于每一个节点,敌人走哪一个子节点不确定//问给m块钱,问最多能保证能确定挡住hp为多大的敌人//dp[u][i] 表示第u个节点及其子树分配i块能得到最大的杀伤力//那么从子节点往上更新时就是一个分组背包//处理完子节点后u点对于每一个选择也是一个分组

2015-07-31 09:50:22 424

原创 hdu1712ACboy needs your help 分组背包模板题

//a[i][j] 表示花j天做第i件事得到的收获//m天时间得到的最大收获#include<cstdio>#include<cstring>#include<iostream>using namespace std ;const int maxn = 110 ;int dp[maxn] ;int a[maxn][maxn] ;int main(){ int n , m

2015-07-30 20:57:30 511

原创 hdu2955Robberies 01背包水题

//给出每个银行的钱数和被抓的概率,//问在被抓概率小于p的情况下得到的钱数最多为多少//直接以钱数为容量,以(1-pi)为为价值01背包就行#include<cstdio>#include<cstring>#include<iostream>using namespace std ;const int maxn = 110 ;const int maxm = maxn*maxn ;

2015-07-30 10:54:03 626

原创 hdu3591The trouble of Xiaoqian 多重背包+完全背包

//给出Xiaoqian的钱币的价值和其身上有的每种钱的个数//商家的每种钱的个数是无穷,xiaoqian一次最多付20000//问怎样付钱交易中钱币的个数最少//Xiaoqian是多重背包//商家是完全背包#include<cstdio>#include<cstring>#include<iostream>using namespace std ;const int maxn =

2015-07-30 10:25:31 910

原创 poj1011Sticks 经典搜索

//给n个小木棒,拼成任意个长度相等的长木棒//求长木棒的最短长度#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std ;const int maxn = 110 ;int a[maxn] ;int vis[maxn] ;int num , len ,n

2015-07-29 19:22:51 572

原创 poj2676Sudoku 暴搜

//求数独//给出9*9的宫格,其中一些位置有1到9的数填住//让填出没有剩下数使得每一行,每一列,每一个3*3的子格的数都是1—9//直接爆搜,用r[i][j],c[i][j],s[i][j]记录第行,列,子格是否有第j个数#include<cstdio>#include<cstring>#include<iostream>using namespace std ;const in

2015-07-29 15:30:00 558

原创 hdu5323Solve this interesting problem 暴搜

//给一对数[l,r]//问找出最小的n使得线段树的根节点的左右范围是[0,n],且//该线段树中有左右范围为[l,r]的节点//由于l/(r-l+1)≤2015//可以直接暴力搜索以[l,r]为节点的其父亲节点的情况//然后比较其最小值#include<iostream>#include<cstring>#include<cstdio>using namespace std ;

2015-07-29 12:41:03 608

原创 hdu5317RGCDQ 打表

//F[x] 表示x的素数因子的大小//问在整数区间[l,r]的数gcd的最大值//由于F[x]的最大值为7//可以打表存下F[i][j] 表示前j个数中有i个素数因子的有几个//那么F[i][r] - F[i][l-1]表示的是[l,r]区间内有i个素数因子的数有几个#include<cstdio>#include<cstring>#include<iostream>using n

2015-07-29 09:22:41 535

原创 hdu5319Painter 模拟

//给一个图,可以红色'\'这样刷,蓝色'/'这样刷,一个有两种颜色就变成黄色//每次可以刷任意格子,给出最种状态,问最少需要刷几次#include<cstdio>#include<cstring>#include<iostream>using namespace std ;const int maxn = 110 ;char str[maxn][maxn] ;int main()

2015-07-28 21:51:33 846

原创 hdu3665Seaside 最短路水题

//给一个图,有些点近海,问从0点到近海点的最短路#include<cstdio>#include<cstring>#include<iostream>using namespace std ;const int maxn = 100 ;const int inf = 0x3f3f3f3f ;int map[maxn][maxn] ;int dis[maxn] ;int vis[m

2015-07-28 10:25:00 567

原创 hdu4738Caocao's Bridges tarjan求无向图的桥

//给一个双连通图,删除一条边能使得图不连通//问删除的桥的最小权值//只需要求其桥的最小权值就行#include<cstdio>#include<cstring>#include<iostream>using namespace std ;const int maxn = 1e6 + 10 ;const int inf = 0x7fffffff ;struct Edge{

2015-07-28 09:56:16 518

原创 hdu4737A Bit Fun 线段树

//给一串序列,问有多少对[i,j]使得//[i,j]区间的所有数的或的值小于m//可以知道'或'操作的加(a|b)>=max(a,b)//可以枚举区间的右边r,找左边第一个不满足的位置//然后在它们中间的r为由边界的区间都没满足//对于找第一个不满足的位置,可以用线段树做,#include<cstdio>#include<cstring>#include<iostream>usi

2015-07-27 21:48:56 667

原创 hdu3448Bag Problem 暴力枚举

//给k个数,问最多取n个,所取的数的和不大于m的最大的和//暴力枚举所有情况#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>using namespace std ;const int maxn = 110 ;typedef int ll;ll ans = 0 ;ll a[maxn] ;

2015-07-27 19:53:29 759

原创 hdu4770Lights Against Dudely 暴力搜索

//n*m grid//一个灯的照亮区域为(x,y),(x-1,y) ,(x,y+1)//问最少用多少个灯等可以将'.'区照亮而不会照到‘#’区//其中有一个灯可以的照亮区域可以旋转0,90,180,270度//由于题目已知'.'区的个数少于15,可以直接爆搜'.'区是否放灯//选好哪些区域放灯后枚举,是哪个灯可以旋转,旋转的角度#include<cstdio>#include<cst

2015-07-27 16:37:09 794

原创 hdu4277USACO ORZ dfs暴力枚举+map

//给N个 问rails用着N个rails能构成几个不同的三角形//dfs暴力枚举+(map)#include<cstdio>#include<cstring>#include<map>#include<iostream>using namespace std ;int ans ;int a[20] ;int n ;int sum = 0 ;struct node{

2015-07-27 13:27:09 857

原创 hdu4403A very hard Aoshu problem 线段树

//给一个长度为大于2小于15的字符串//在其中间加‘+’或‘=’使得其成为一个等式的方法的个数//枚举等号位置,暴力搜索加号加的位置#include<cstdio>#include<cstring>#include<iostream>using namespace std ;const int maxn = 20;typedef __int64 ll ;int ans;int

2015-07-27 09:51:24 720

原创 hdu4282A very hard mathematic problem 暴力枚举

//给出k//找x,y,z使得x^z+y^z+x*y*z = k//x,y,z都为正整数x<y,z>1问有多少种方法//当z = 2时,可以看到左边是一个完全平方//而当z>=3时,可以暴力枚举x,y//由于k<2^31所以x<2^(31/3)枚举复杂度可以过#include<cstdio>#include<cstring>#include<iostream>#include<cm

2015-07-26 21:36:06 737

原创 hdu3308LCIS 线段树

//U A B 将第A位置的元素改为B//Q A B询问[A , B]区间的最长的递增序列//维护ma_l , ma , ma_r 左边最长,区间最长,右边最长#include<cstdio>#include<cstring>#include<iostream>using namespace std ;const int maxn = 1e5 + 10 ;#define left v

2015-07-26 19:22:43 573

原创 hdu1540Tunnel Warfare 线段树

//Q pos 问包含pos的连续区间的长度//D pos 删除pos位置的元素//R 恢复上一个被删除的元素//用栈维护被删除的元素位置//用线段树维护左边连续区间,右边连续区间的长度#include<cstdio>#include<cstring>#include<iostream>#include<vector>using namespace std ;const int

2015-07-26 17:19:27 868

原创 hdu2464 A Pair of Graphs 线段树

//给两个顶点数相同的图//I_A , I_B, D_A , D_B ;分别为增加A图,B图的一个边,删除A图,B图的一个边的cost//问最少需要花费多少使得两幅图同构//由于n很小,可以暴力枚举A的每一个点对应B图的点对应关系,然后就是对应边如果一幅图有//另一幅图没有,就选删除有的或增加没有的小的cost#include<cstdio>#include<cstring>#incl

2015-07-26 16:41:21 726

原创 Sequence operation

//0 a b 将[a,b]区间的所有数变为0//1 a b 将[a,b]区间的所有数都变为1//2 a b 将[a,b]区间的所有数0变1,1变0//3 a b 问[a,b]区间的1的个数//4 a b 问[a,b]区间最长的连续1的子段长度//维护ma_l[2] , ma_r[2] , ma[2] ,sum[2]分别为区间左边,右边,最大的连续1和0,,区间1和0的个数//lazy

2015-07-26 13:25:45 609

原创 pojHotel 线段树

//空间分配//1 x 找连续的长度为x的空间//2  x d [x,x+d-1]空间的占用清除//维护ma_l , ma_r , ma分别为左边的空闲空间,右边的空闲空间和最大的空闲空间#include#include#includeusing namespace std ;const int maxn = 50010 ;#define left v#de

2015-07-25 16:53:39 600

原创 hdu4614Vases and Flowers 线段树

//给一个数组,两个操作//1 A F 以A为起点的F个空闲空间插花,输出起点和终点//2 L R 将[L , R]的所有的有花的花拔除,问清除了几朵花//用线段树维护剩余空间的个数//然后再在查询时找出空间#include#include#includeusing namespace std ;const int maxn = 50010 ;#define

2015-07-25 16:03:27 610

原创 hdu4553约会安排 线段树

//DS QT  找一段最靠前的长度为QT的空间//NS QT  找一段最靠前的长度为QT的空间,如果没找到可以将DS占据的空间当做空闲空间,找一段最靠前的空间//STUDY!! L R  清空L ,R的空间//用两个线段树,一个处理DS的情况,一个处理NS的情况//线段树维护,ma_l , ma_r , ma 区间[l,r]的左边的空闲区间,右边的以及最大的空闲区间#incl

2015-07-25 11:58:50 1226

原创 hdu4578Transformation 线段树

//长度为n的数组 四个操作//1 x y  c [x,y]区间的数都加c//2 x y c [x, y] 区间的数都乘以c//3 x y c [x ,y] 区间的数都变为c//4 x y p [x ,y] 求区间的数的p次方的和//用线段树维护里面的值都相等的区间 ,那么这个区间的所需答案为(r-l+1)*(tree[v].eq)^q//对于懒惰操作 mul , eq ,

2015-07-25 11:10:25 1082

原创 poj3468A Simple Problem with Integers 线段树

//两个操作,第一个区间[a , b]内的所有数加c//第二个询问区间[a , b]的值//很标准的线段数#include#include#includeusing namespace std ;const int maxn = 1e5+10 ;#define left v#define right vtypedef __int64 ll ;ll h[m

2015-07-24 18:03:23 532

原创 hdu4605Magic Ball Game 树状数组

//给一棵树,树的每一个节点的子节点个数是0或2//对于每一个节点都有一个权值w[i]//一个权值为x的球在每一个节点的情况有//x=w[i] 这个球在该点不向下掉//x//x>w[i] 这个球往左节点掉的概率为1/8 , 往右掉的概率为7/8//问对于每一个权值为x其掉到节点为v的概率//对于一颗树从一点到另一点的路径是确定的,只需要记录这条路径中//往左

2015-07-24 10:59:21 605

原创 hdu2795Billboard 线段树

//给一个h*w的广告板//在上面贴广告,每个广告的宽度为1,长度为wi//广告要求尽可能高,在高的前提下往左放//给n个广告的长度,问其高度位置//用线段树存入区间的最大的剩余区间//每次查询大于该广告的长度的最左值#include#include#includeusing namespace std ;const int maxn = 200010 ;

2015-07-23 19:25:36 550

原创 hdu5305Friends dfs

//给一个无向图 , 每条边可以是online边也可以是offline边,问//有多少种方法使得每个节点的online边和offline边一样多#include#include#includeusing namespace std;const int maxn = 110 ;int on[maxn] , off[maxn];int x[maxn] , y[maxn]

2015-07-23 17:56:15 1265

原创 hdu4599Dice 概率dp+扩展欧几里得

//给一个正常的骰子//F[n] 为这个骰子有一个数连续出现n次的期望//h[n] 我这个骰子连续出现n个1的期望//g[n] 为出现n个1的期望//求最小的m1使得G(m1)>=F[n] , 最小的m2使得G(m2) >= H(n)//f[i] 一个数连续掷了i次,其F[n]//很容易得到f[i] = 1 + 1/6*f[i+1] + 5/6*f[1]   f[n

2015-07-23 10:56:33 831

原创 hdu4711Weather 概率dp

//第i个城市到第j个城市的概率ma[i][j]//第i天的天气天气wet[i]//第i个城市天气为j的概率wet_m[i][j]//Hovey从0点开始,找出其概率最大的路线//dp[i][j] 表示在第i天Hovey在第j个城市在所有路线的最大概率//dp[i][j] = dp[i-1][k].p+ma[k][j]+wet_m[j][wet[i]]//但是由于精度问题,

2015-07-22 22:07:38 709

原创 hdu4050wolf5x 概率dp

//有N个格子//p0:不能到达该格子//p1:只能左脚到达该格子//p2:只能右脚到达该格子//p3:任意脚都可到达该格子,而且下一脚可以是任意脚//人只能左脚右脚交替走,从0格出发走到的格子大于n或不能走就停止//问走多少步停止的数学期望//dp[i][0] 表示走到i格且下一脚出右脚的期望//dp[i][1] 表示走到第i格且下一脚出左脚的期望//dp[i

2015-07-22 19:49:16 687

原创 hdu5045Contest 概率dp

//已知N个人对M道题做对的概率//怎样安排这N个人做这M道题使得其期望最大//要求任意时间任意两个人的做题差不大于1,换句话说,就是在没N道题中必须是不同的人做//可以用dp[i][j] 表示做到第i道题,且做题情况是j状态得到的最大期望//由于每N道题必须是不同的N个人做,所以当j的状态达到(1//dp[i][k] = max(dp[i][k] , p[j+1][i] +

2015-07-22 19:14:18 639

原创 hdu5001 Walk 概率dp

//给一个无向图 , n个节点,m条边//每个节点为起点的概率相同 //问每个节点走d步后不经过这个节点的概率//不经过这个节点的概率等于去掉该节点的图中走了d步到其他节点的和//dp[i][j] 为走了i步到达j个节点的概率//dp[i][j] = segma(dp[i-1][v])/vec[j].size()#include#include#include#

2015-07-22 14:58:57 868

原创 hdu5289Assignment

//给一串序列,找出的区间[l,r]使得在这个区间内的任意两个数的差小于k//对于第i个数,设一i为右边间得到其左边界的最小值为last[i]//那么对于以i+1为右边界的区间,其左边界的最小值一定在[last[i],i+1]之间//用线段树存入区间的最大和最小值//那么就可以用线段树找出在区间[last[i],i+1]之间与a[i+1]的差值大于等于k且最大的位置//即为以i

2015-07-21 21:47:23 819

原创 hdu3076ssworld VS DDD 概率dp

//ssworld VS DDD 两个人有血量值 hp1 , hp2 //两人掷骰子得到每一点的概率已知//ssword赢的概率//dp[i][j]  表示有第一个人血量为i,第二个人的血量为j第一个人赢的概率//第一个人赢,第二个人赢 , 平局的概率为p1 , p2 , p3//那么有dp[i][j] = p2*dp[i-1][j] + p1*dp[i][j-1] + p3*

2015-07-21 19:35:21 751

电子技术基础_模拟部分(第五版)_康华光_课后答案(无水印完整清洁版)

电子技术基础_模拟部分(第五版)_康华光_课后答案(无水印完整清洁版)

2015-10-30

Python学习手册

Python可移植、功能强大、易于使用,是编写独立应用程序和脚本应用程序的理想选择

2015-09-11

python基础教程(第二版)

python基础教程中文高清pdf【第二版】

2015-09-11

空空如也

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

TA关注的人

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