自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ACdreamer

欢迎关注知乎:https://www.zhihu.com/people/acdreamers/activities

原创 Floyd求传递闭包

在用Floyd求传递闭包时如果数据很大时就得用if语句优化,否则会超时,例如下面的第二题就是这样。   题目:变形课 #include #include int map[28][28]; void Floyd() { int i,j,k; for(k=0;k<26;k...

2013-02-28 15:39:43

阅读数 3094

评论数 0

原创 匈牙利算法详解

题目:Strategic Game   用vector实现邻接表的匈牙利算法。 典型的最小顶点覆盖!最小顶点覆盖=最大匹配(双向图)/2; 此题有个小细节,数据较大,要用邻接表,不然会超时!  最小顶点覆盖:选出最少的点,这些点的关联的边都被覆盖最小顶点覆盖等于最大匹配   真正求二分图的最大匹配...

2013-02-28 11:10:49

阅读数 18467

评论数 0

原创 差分约束系统之Bellman_Ford与Spfa判断负权回路

学习差分约束系统请戳这里。   题目:POJ1364 #include #define INF 99999999 #define N 105 typedef struct { int s; int e; int v; }node; node edge[N]; int ...

2013-02-26 19:34:41

阅读数 2949

评论数 2

原创 最短路径之Spfa算法

题目:宫锁珠帘 #include #include #define INF 99999999 #define N 105 int map[N][N]; int dist[N]; int visit[N]; int q[100*N]; int n,m; void Spfa(int s) {...

2013-02-25 18:50:34

阅读数 1212

评论数 0

原创 RMQ问题(区间求最值)

RMQ的树状数组实现: #include #define N 100005 int idx[N]; int num[N]; int n,m,l,r,i,j; int min(int a,int b) { return a<b? a:b; } int lowbit(int x)...

2013-02-23 17:34:52

阅读数 1012

评论数 0

原创 HDU4259(简单群置换)

题目:Double Dealing #include #include #define LL long long const int N=1005; int n,k; int a[N][N]; bool f[N]; int num[N]; LL gcd(LL a,...

2013-02-18 00:10:59

阅读数 1342

评论数 0

原创 最短路径之Floyd算法

深度学习Floyd_Warshall算法请戳这里。   模板题:宫锁珠帘 #include const int INF=1000010; int n,m; int s,t; int a,b,x; int dist[105][105]; int map[105][105]; void ini...

2013-02-17 23:16:14

阅读数 1124

评论数 0

原创 博弈论初步学习

一.巴什博弈(Bash Game): 首先我们来玩一个比较古老的报数游戏。A和B一起报数,每个人每次最少报一个,最多报4个。轮流报数,看谁先报到30. 如果不知道巴什博弈的可能会觉得这个是个有运气成分的问题,但是如果知道的人一定知道怎样一定可以赢。 比如A先报数的话,那么B一定可以赢(这里假定...

2013-02-17 21:40:36

阅读数 1525

评论数 0

原创 斐波那契博弈

题目:取石子游戏hdu2516   2 3 4(-1)                解释4 - 1 = 3 , n==3为必败点,所以4为必胜点 5 6(-1) 7(-2) 8 9(-1) 10(-2) 11(-3) 12(-1)   13 首先 2个石头肯定是必败点,3个石头也是必败点,...

2013-02-17 20:28:45

阅读数 2681

评论数 0

原创 HDU1403(后缀数组--最长公共子串)

题目:Longest Common Substring   看代码注释请戳这里 题意:判断给定的两个串中,最长的公共串。 思路:将它们合并为一个串,然后利用后缀数组求解。 首先是二倍增算法:时间复杂度为O(n*log(n)) #include #include #define ...

2013-02-16 22:45:07

阅读数 2762

评论数 3

原创 离散对数(Baby Step Giant Step)

扩展Baby Step Giant Step深入学习请戳这里   题目:Clever Y   求解A^x = B (mod C) 中 0 本算法的安全性更高。 #include #include #include #include #define CC(m ,what) memset(m , ...

2013-02-12 20:04:27

阅读数 3744

评论数 0

原创 次小生成树

次小生成树: 在求最小生成树时,用数组path[i][j]来表示MST中i到j最大边权。 求完后,直接枚举所有不在MST中的边,把它加入到MST中构成一棵新的树,且该树有环,此环是由刚加入的边(I,j)造成的,所以可以通过删除path[i][j]即 可得到新的一颗树,且所有的该类树中必有一棵为次...

2013-02-12 15:03:17

阅读数 1084

评论数 0

原创 POJ2528 线段树+离散化+hash(成段更新)

题目:Mayor's posters   题意:在墙上贴海报,海报可以互相覆盖,问最后可以看见几张海报 思路:这题数据范围很大,直接搞超时+超内存,需要离散化: 离散化简单的来说就是只取我们需要的值来用,比如说区间[1000,2000],[1990,2012] 我们用不到[-∞,999]...

2013-02-10 21:09:52

阅读数 1382

评论数 0

原创 线段树POJ3468(成段更新,区间求和)

题目:A Simple Problem with Integers #include #define N 111111 #define LL long long #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 LL ...

2013-02-10 19:50:54

阅读数 8711

评论数 2

原创 线段树HDU1698(成段更新)

题目:Just a Hook   延迟标记(或者说懒惰标记),简单来说就是每次更新的时候不要更新到底,用延迟标记使得更新延迟到下次需要更新or询问到的时候。 #include #define N 111111 #define lson l,m,rt<<1 #define rson ...

2013-02-10 19:08:31

阅读数 1172

评论数 0

原创 POJ2886线段树 Joseph游戏(单点更新)

题目:Who Gets the Most Candies?   题意: 1.n个人进行Joseph游戏,游戏共p轮(p为 思路:用相对坐标来处理,例如这一轮出局的是p,下一个要+m,则p出局时p+1就变成了p(因为是相对 坐标),则下一个人应该是p+m-1,再注意循环和m的正负的处理,不要忘了取模...

2013-02-09 16:56:49

阅读数 3131

评论数 0

原创 POJ2828线段树 插队(单点更新)

题目:Buy Tickets #include #define N 200010 #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 int tree[N<<2]; int pos[N],val[N],ans...

2013-02-09 16:22:12

阅读数 839

评论数 0

原创 线段树空间容纳且最上边的数(单点更新)

题目:HDU2795 Billboard #include #define maxn 222222 #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 int w,h,n; int MAX[maxn<<2];...

2013-02-09 14:40:36

阅读数 813

评论数 0

原创 线段树求逆序数(单点更新)

题目:HDU1394 Minimum Inversion Number   若abcde...的逆序数为k,那么bcde...a的逆序数是多少?我们假设abcde...中小于a的个数为t , 那么大于a的个数就是n-t-1,当把a移动最右位时,原来比a 大的现在都成了a的逆序对,即逆序数增加n-t...

2013-02-09 11:53:28

阅读数 3040

评论数 0

原创 线段树求区间最大值RMQ(单点更新)

题目:HDU1754 #include #define maxn 222222 #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 int MAX[maxn<<2]; int max(int a,int b...

2013-02-09 00:19:48

阅读数 2700

评论数 0

原创 平面分割问题

(1) n条直线最多分平面问题       题目大致如:n条直线,最多可以把平面分为多少个区域。       析:可能你以前就见过这题目,这充其量是一道初中的思考题。但一个类型的题目还是从简单的入手,才容易发现规律。当有n-1条直线时,平面最多被分成了f(n-1)个区域。则第n条直线要是切成的区域...

2013-02-07 23:33:33

阅读数 1378

评论数 0

原创 NEFU394 素数价值

题目:素数价值   本题可以直接用结论,或者用DP做。。。 哥德巴赫猜想:任何大于偶数都等于两个素数和; 分类:大于2的偶数,价值为2            奇数:若是质数价值为1,若是等于两个质数之积价值是2,若是等于2加上某个质数价值等于2,其他价值等于3 #include #...

2013-02-07 00:13:40

阅读数 946

评论数 0

原创 HDU2608 0 or 1

题目:0 or 1   分析:   首先看T(n),通过找规律可以发现:(看了别人的解题报告才知道这部分是怎么推出来的)   仅当n为1,2,4,8,9,16,18,25,32,36,49,50,64,72,81,98,100…………的时候,T(n)% 2==1;   可以发现...

2013-02-06 22:50:43

阅读数 1204

评论数 0

原创 特殊方法求1~n的和

题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。         分析:这道题没有多少实际意义,因为在软件开发中不会有这么变态的限制。但这道题却能有效地考查发散思维能力,而发散思维能力能反映出对编程相 ...

2013-02-05 23:07:08

阅读数 1078

评论数 1

原创 数论经典题目

题目:Special Prime   推导: n^b + p*n^(b-1) = m^b n^(b-1)*[n+p]=m^b 因为n里面要么有p因子,要么没有,所以 gcd(n^(b-1),n+p)=1或(含有p因子的数) 当gcd(n^(b-1),n+p)== (含有p因子的数)的时候,显然无解...

2013-02-05 22:55:02

阅读数 5205

评论数 0

原创 多重背包问题

题目:有N种物品和一个容量为V的背包。第i种物品最多有n[i]件可用,每件费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。  #include #include using namespace std; const int MAX =...

2013-02-01 15:26:48

阅读数 16975

评论数 0

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