自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 hdu4925Apple Tree

//n*m的果园 , 种一棵树,收获一个果实//在一个格子施肥 , 其旁边的果树收获的·果实翻倍//问最多能收获多少果实//交叉种树 , 则为最大#include#include#includeusing namespace std ;const int maxn = 110 ;int map[maxn][maxn] ;int dx[4] = {0 , 1 , 0 ,-1}

2015-08-31 22:30:43 569

原创 hdu5416CRB and Tree 异或

//给一棵树//对任意的s//问有多少对(u,v)是的从u到v的路径的所有边权值为s//f(u,v) = f(root , u)^f(root ,v)//只要记录所有点到树根的路径的异或值//然后枚举端点#include#include#includeusing namespace std ;const int maxn = 1e5+10 ;typedef long long

2015-08-30 21:34:56 524

原创 hdu5407CRB and Candies 求逆元

//求LCM(C(n,0),C(n,1),C(n,2),...,C(n,n))//令an=LCM(C(n,0),C(n,1),C(n,2),...,C(n,n))//b[n]=LCM(1,2,3,...,n)//a[n]=(b[n]+1)/n+1//if (n=p^k)bn=p*(b[n−1]) else b[n]=b[n−1]#include#include#includeusi

2015-08-30 19:38:17 534

原创 hdu5414CRB and String 模拟

//给两个字符串s和t//对于字符串s可以在s中任意一个字符c,在其后面加上d(d!=c)//问s是否能转换为t//满足两个条件//1:对于s中的所有的字符t都有//2:对于s和t的第一个字符要相同且s中连续的个数要大于等于t#include#include#includeusing namespace std ;const int maxn = 1e5+10 ;char s

2015-08-30 18:05:35 636

原创 hdu5410CRB and His Birthday 多重背包

//n个物品 , 容量为m//每个物品1个占用空间为w//如果第i个物品选了k(k>0)个,所得权值为k*a+b //求最大权值//多重背包 , 需要用二进制数优化#include#include#includeusing namespace std ;const int maxn = 2010 ;int dp[maxn][maxn] ;int main(){ //

2015-08-29 19:30:45 646

原创 hdu3468 Treasure Hunting 二分匹配

//给一个n*m的图//.表示空白地//*表示有黄金//#表示墙//一个人需要按照A...Z..a..z的顺序以最短路径走到下一个//每次只能在他的路线上经过的地方取一块黄金//问最多能取多少黄金//对于每次起点和终点,用bfs搜索最短路,再用dfs找出最短路线经过的所有点//对于第i次找最短路线与其走过的点建立边,然后用二分匹配就能找出#include#include#in

2015-08-18 18:47:23 560

原创 hdu5399Too Simple

//给m个函数//其对应是自变量x属于{1,2,...n}//f(x)属于{1,2...3}//给出其中一些函数,问有多少种不同的函数集合使得//1<=i<=n f1(f2(f3...fm(i))) = i//直接为(m!)^(sum-1) sum为不知道的函数个数#include#include#includeusing namespace std ;const int

2015-08-18 18:34:40 873

原创 hdu5400Arithmetic Sequence

//一个序列,两个公差d1,d2//问有多少个区间使得这个区间存在一个点,它的左边是公差为d1的序列//它的右边是公差为d2的序列//直接存入每个点向左和向右延伸的公差长度,乘一下就行//还有就是注意一下d1=d2的情况#include#include#includeusing namespace std ;const int maxn = 1e5+10 ;int a[maxn

2015-08-18 18:28:47 842

原创 hdu3488Tour KM算法

//给一个有向图,//找出若干环,使得这些环覆盖所有点且每个点只能在一个环中//问所得的所有环的所有边权值之和的最小值为多少//对于每一个点只有一个入度和一个出度,那么将每个点拆成//入度点和出度点,将所有入度点和所有出度点构成一个完备匹配//由于是完备匹配,所以每个点的出度和入度都有一个不是自己的点//相连,那么将完备匹配的所有点连接起来一定是若干环//所得完备匹配的最小匹配即为答

2015-08-17 16:11:38 600

原创 hdu3996Gold Mine 最小割

//给出每个点的权值,//从中选出一些点,使得这些点的权值和最大//其中选择该点一定要选择在它前面的点,问最终的最大权值是多少//对于所有正权的点与源点相连,权值为该点权值//所有负权点与汇点相连,权值为该点权值的绝对值//每一点与其前面的点相连,权值为无穷大//这样求出这个图的最小割,用所有正权之和减去这个最小割即为结果//减去最小割后剩下的点所有正权点集到负权的点集没有边相连,

2015-08-17 14:16:34 1021

原创 hdu1533Going Home KM算法

//给一个n*m的图,//m表示人,h表示房子//问所有人走回家的最小步数//每个人只能进一间房//很明显的最大带权匹配//每个人到每每间房的距离即为权值//由于是求最小,只要改为负权就行#include#include#include#include#includeusing namespace std ;const int maxn = 110 ;const int

2015-08-17 14:15:06 656

原创 hdu1565方格取数(1) 最大流之 最大点权独立集

//给一个n*n的矩阵,问从这个矩阵中若干数,这些数不相邻//问这些数的最大值为多少//1. 最小点权覆盖集=最小割=最大流//2. 最大点权独立集=总权-最小点权覆盖集//将(i+j)%2 == 1分为x集,将(i+j)%2==0分为y集//对x集向y集相邻的边引入权值为inf的边//源点向x集引入权值为该点权值的边 , 从y集向汇点引入权值为该点权值的边//那么答案是其最大点权独

2015-08-16 18:10:36 702

原创 hdu5294Tricks Device 最大流之最小割

//给一个无向图,//一个人从起点到走到终点只走最短路//问最少需要删除多少边使得其不能从起点走到终点//问最多删除多少点使得其能走到终点//先求出所有在最短路上的边,对这些边重建图//将其权值改为1,那么其最大流就是其最小割//刚开始没有考虑为无向图,坑了半天#include#include#include#includeusing namespace std ;cons

2015-08-16 18:08:50 729

原创 hdu5391Zball in Tina Town

//求(n-1)!%n//n 为合数,答案为0,n为素数 , 威尔逊定理可得//判定一个自然数是否为素数的充分必要条件。即:当且仅当p为素数时:( p -1 )! ≡ -1 ( mod p )//答案为(n-1) 注意4的时候#include#include#includeusing namespace std ;const int maxn = 1e5 +10 ;int le

2015-08-16 15:25:39 600

原创 hdu3461Marriage Match IV 最短路+最大流

//给一个图,给定起点和终点,只能走图上的最短路//问最多有多少种走的方法,每条路只能走一次//只要将在最短路上的所有边的权值改为1,求一个最大流就行#include#include#include#include#includeusing namespace std ;const int inf = 0x3f3f3f3f ;const int maxn =

2015-08-16 15:21:35 612

原创 hdu2883kebab最大流

//给n个任务,si,ni,ei,ti表示第i个任务的起始时间,需要烤的羊肉串的个数//终止时间,每串羊肉串所需时间//烤羊肉串的时间不需要连续,且每串羊肉串可以将其分成k个部分一起烤,从而可以一串羊肉串的时间为ti/k;//问能否完成所有任务//这题和hdu3572有些像//只是这题时间的长度1 <= si < ei <= 1,000,000很大//可以将时间划分为时间段,其划分的段数

2015-08-16 09:29:50 976

原创 hdu5387Clock

//给出时间,求时针和分针,时针和秒针,分针和秒针的夹角#include<cstdio>#include<cstring>#include<iostream>using namespace std ;#define abs(a) a < 0 ? -a :aint s , t , h ;int gcd(int a , int b){ if(b == 0)return a ;

2015-08-15 21:23:20 488

原创 hdu5389Zero Escape 01背包

//给组数,将其分为两组,使得左边的所有的数的和mod9为a,右边为b//问方法数//01背包,dp[i][j] ,前i个数得到的mod9为j的个数//dp[i][j] = (dp[i-1][(j+9-tmp)%9] + dp[i-1][j])%mod ;#include<cstdio>#include<cstring>#include<iostream>using namespace

2015-08-15 14:31:07 562

原创 hdu5386Cover 暴力枚举

//给一个n*n的矩阵,m个操作,问怎样安排顺序使得//这个变为目标矩阵//因为n<=100所以直接枚举所有操作,直接判断该操作是否为最后一个操作//对于已经处理完的操作,将该行或列置为0,后来的操作不处理这些操作#include<cstdio>#include<cstring>#include<iostream>#include<vector>using namespace std

2015-08-15 13:57:50 982

原创 hdu5375Gray code dp

//给一个二进制码,其中有些位置有问号//可以在问号处填0或者1//转换后的格雷码的第i个位置如果是1,那么就得到a[i]的权值,问最大能得到多少权值//由二进制码转换为格雷码的公式为将二进制码右移一位然后与原来的二进制码按位异或//dp[i][0]表示第i位是0得到的最大值//dp[i][1]表示第i位是1得到的最大值// dp[i][0] = max(dp[i-1][0] , dp[

2015-08-11 18:25:01 1149

原创 hdu5371Hotaru's problem manacher算法

//给一个序列,让求其最大子序列//这个序列由三段组成,第一段和第二段对称,第一段和第三段一样//manacher算法求得p[i]//枚举第二段的起点和长度,得到结果#include<cstdio>#include<cstring>#include<iostream>using namespace std ;const int maxn = 2e5 + 10 ;int str[ma

2015-08-11 18:02:05 1671

原创 hdu3549Flow Problem 最大流模板水题

#include<cstdio>#include<iostream>#include<cstring>#include<queue>using namespace std ;const int maxn = 1010 ;const int inf = 0x7fffffff ;int dis[maxn] ;int st ,en;int head[maxn] , nedge ;int

2015-08-10 21:15:37 644

原创 hdu3572Task Schedule 最大流

//n个任务,m台机器 //每个任务都有开始工作的时间,结束的时间和需要一台机器工作的天数 //每个任务的工作可以断开,只需要在规定的时间内用机器工作规定天数 //在同一天,一个任务只能被一台机器工作 //问能否安排时间使得所有的任务都能在规定时间内完成 //对任务和其工作的时间建立权值为1的边 //在建立一个超级源点和一个超级汇点 //从源点向任务引入权值为该任务需要工作的天数,从每

2015-08-10 20:58:06 695

原创 hdu1532Drainage Ditches 最大流模板水题

感觉这道题纯粹就是试模板的,给一个有向图,求其最大流 Dinic算法:#include<iostream>#include<cstdio>#include<cstring>#include<queue>using namespace std;#define inf 300#define lim 0x7fffffffint flow[inf][inf];int dis[inf];

2015-08-10 16:37:19 1160

原创 poj3177Redundant Paths tarjan缩点

//给一个连通图,问最少需要添加多少条边才能使得//任意两个点都有两条不同的路走到//对于一个强连通分量的所有任意两点都能有两点可以到达//先用tarjan缩点,缩点以后就是一棵树,对于这个树考虑有几个//叶子节点 ans = (leaf+1)/2#include<cstdio>#include<cstring>#include<iostream>using namespace st

2015-08-10 12:25:50 593

原创 poj3592 Instantaneous Transference tarjan缩点+建图

//给一个n*m的地图,坦克从(0 , 0)开始走//#表示墙不能走,*表示传送门可以传送到指定地方,可以选择也可以选择不传送//数字表示该格的矿石数,//坦克从(0,0)开始走,只能往右和往下走,//问最多能得到多少矿石//直接建图,但由于有传送门,需要缩点//然后用dfs直接搜一条权值最大的路#include<cstdio>#include<cstring>#include<i

2015-08-10 09:38:25 624

原创 poj3207Ikki's Story IV - Panda's Trick tarjan缩点

//给一个有向图,每个点都有权值(可能有负权),从任意起点遍历一遍这个图,//走每一点都可以选择得到和不得到这个权值,问最多能得到多少权值//先用tarjan进行缩点,得到一个森林,从这个森林的每棵树的根节点开始//dfs搜一遍得到最大的一条路#include<cstdio>#include<cstring>#include<iostream>#include<vector>usin

2015-08-09 16:23:17 505

原创 hdu5365Run 暴力

//给n个坐标,问能构成多少个不同的正三边形,正四边形,正五边形,正六变形 //题解说地球人都知道整点是不能构成正五边形和正三边形和正六边形的, //然后就只需要暴力找正四边形 //突然感觉原来我不是地球人includeincludeincludeincludeusing namespace std ;define dis(a,b,c,d) (((a-b)(a-b) + (c-d)(c-d))

2015-08-09 14:01:34 588

原创 hdu5366

//在n个格子中放树,树与树之间的距离需要在两格以上//问有多少种方法//dp[i][0] 表示第i处不放树的方法数//dp[i][1] 表示第i处不放树的方法数//dp[i][1] = dp[i-3][1] + dp[i-3][0] + 1 ;//dp[i][0] = dp[i-1][1] + dp[i-1][0] ;#include<cstdio>#include<cstring>

2015-08-09 14:00:08 763

原创 hdu5355Cake 构造+dfs

//n块蛋糕,大小从1到n//将其平均分为m块//比赛的时候用贪心策略从大往小凑成这个蛋糕水过//结果发现是spj出问题,这样的贪心策略有问题//因为前面的蛋糕凑好可能会影响后面使得后面的凑不出来//数据:/*1723 627 728 731 832 835 936 939 1040 1045 953 959 1071 999 999 10100 10

2015-08-09 13:12:40 655

原创 poj2186Popular Cows tarjan缩点

//n个奶牛,//A B 表示A认为B出名,而且其有传递性//如A认为B出名,B认为C出名,那么A认为C出名//问有多少头奶牛所有的奶牛都认为其出名//先对这个图缩点,记录每一个缩点的个数,然后找出度为0有且只有一个点//如果是,那么那个点缩了几个点就是答案#include<cstdio>#include<cstring>#include<iostream>#include<vec

2015-08-09 13:11:54 736

原创 hdu4005The war tarjan缩点

//给一个连通无向图,加上一条边需要删除一条边,使得这个图不连通//删除边需要花费钱,问最少需要准备多少钱使得不论加什么边最终都可以最终删除一条边使得原图不连通//所需要删的边一定是桥,所以先进行缩点使得其变为一棵树//在一棵树上加一条边后使得其有一个环,删除这个环的边后其依然连通//最坏的情况权值最小的边在这个环中,而且其必然是连接两个叶子节点,这样使得环覆盖的边尽量多//所以可以以权值

2015-08-08 16:35:31 742

原创 poj3487 & hdu1914 The Stable Marriage Problem 稳定婚姻系统

//n个男生,n个女生配对//n个男生在心中对每个女生有个排名//n个女生在心中对每个男生有个排名//问怎样配对使得所有人都配对好且不存在两对婚姻中存在//A和a结婚,B和b结婚,但是A更偏爱b而非a而且b也更偏爱A而非B//这样A和b可能会私奔//①这里用的是Gale-Shapley算法//每一位单身男在所有尚未拒绝她的女士中选择一位被他排名最优先的女士;//②每一位女士将正在追求

2015-08-08 13:07:41 888

原创 hdu2853Assignment kM算法

//n个人,匹配m个任务,每个人完成每个任务的效率不同//刚开始已经有了匹配方案,现在重新设计匹配方案,使得效率最高,且尽量保存//原来的匹配方案,//将所有权值*1000, 然后对于原来匹配的边的权值+1,用KM算法求出最大带权匹配ans//那么最终的最大效率为ans/1000 , 保留原来的匹配边的个数为ans%mod#include<iostream>#include<cstdio

2015-08-07 18:30:16 515

原创 hdu3718Similarity KM算法

//n个物品,用字母表示每个物品的种类,//给出标准答案对于每种物品的字母表示//给出每个人的答案,问怎样的匹配使得两个答案的相似度更高//{A A B A B B C C C C},{F F E F E E D D D D}表示一种答案//对每个字母和字母之间建图,两个答案在同一个位置的字母之间的边的权值加1//那么就只需要求其最大带权匹配#include<cstdio>#inclu

2015-08-07 17:37:21 599

原创 hdu3315My Brute KM算法

//starvae和xingxing各有n个小弟,每个小弟都有hp和攻击力//对于第i个小弟,starvae小弟的攻击力为a[i] ,xingxing小弟的攻击力为b[i]//每场比赛,starvae小弟先攻击,然后一人攻击一次,谁的血量不先大于0谁输//starvae用第i个小弟赢了比赛得到v[i]的分数,输了减去v[i]的分数//刚开始是starvae的第i个小弟岁星星的第i个小弟//

2015-08-07 14:53:54 649

原创 hdu3722Card Game KM算法

//n个字符串,对于一个字符串i,j 将i颠倒后与j的公共前缀的大小为i,j的权值//问将这些字符串拼接起来得到的最大权值//将这些字符串之间建图,直接求完备匹配的最大权匹配#include<cstdio>#include<cstring>#include<iostream>using namespace std ;const int maxn = 210 ;const int in

2015-08-07 14:53:05 533

原创 hdu5358First One 枚举

//给一个序列,求其所有子序列s(i,j)(i<=j)的对2取对数的再向下取整+1在乘以(i+j)的和//枚举区间[1<<(k-1) , 1<<k),再枚举左边区间,找到右边区间的范围//那么ans = segma(((r-l)*i + (r-l)*(r-1+l)/2)*k)(1<=k<=34)再特判断0就行 ;#include<cstdio>#include<cstring>#inclu

2015-08-07 11:08:00 581

原创 poj3692Kindergarten 二分匹配之最大独立集

//g个girl , b个boy , gril都被彼此认识,boy也彼此认识//有的girl和boy也彼此认识//问最多能选出多少人,这些人都彼此认识//对陌生人建立一个图//那么其最大独立集就是最多的彼此认识的人#include<cstdio>#include<cstring>#include<iostream>using namespace std ;const int max

2015-08-06 19:09:47 493

原创 hdu5360Hiking 贪心

//n个人接受邀请的条件是已经接受邀请的人数区间在l[i] , r[i] //问怎样设置邀请顺序能使得接受邀请的人数最多//先对其对从小到大排序//然后维护一个set,set中存入左边满足条件的所有人,//然后贪心策略是每次取左边满足条件的右边最小的人//每次多邀请一个人后删除右边不满足条件的人#include<cstdio>#include<cstring>#include<ios

2015-08-06 17:45:41 1277

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

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

2015-10-30

Python学习手册

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

2015-09-11

python基础教程(第二版)

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

2015-09-11

空空如也

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

TA关注的人

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