morejarphone~

从爱好,到梦想

HDU5512(水题~)

ICPC沈阳站的D题。一个位置只要能表示为k1*a+k2*b的话这个位置就是能放的。当时傻了想着用扩展欧几里得求出这个k1 k2。其实只要位置能整除gcd(a,b)就可以了。#include using namespace std; #define maxn 4111111 int gcd (...

2015-10-31 22:03:49

阅读数:233

评论数:0

HDU5521(最短路)

ICPC沈阳站M题,对于每一个集合新建一个点,集合里面每个点到这个点的代价是ti,这个点到集合的每个点代价是0,从1和n出发跑两次最短路就行了。 #include using namespace std; #define maxn 4111111 #define maxm 21111111 #...

2015-10-31 21:46:53

阅读数:249

评论数:0

POJ2398(计算几何)

POJ2318的升级版,就是增加了边界的排序。 #include #include #include #include #include using namespace std; #define maxn 5111 #define x1 x_1 #define x2 x_2 #defi...

2015-10-30 20:54:20

阅读数:241

评论数:0

POJ2318(计算几何)

题意是给你n个边界和m个点,求出每一块区域里面点的个数。 对于每一个点,算出每条边界在这个y坐标下对应的x坐标,二分查找就好了。 #include #include #include #include #include using namespace std; #define max...

2015-10-30 19:55:43

阅读数:170

评论数:0

POJ2114(树分治)

题意是给一棵最多1W个节点的树,求是否存在点对使得他们的路径是k。 类似于POJ的1741,修改下统计函数就可以了。注释掉的是一开始写的,很挫卡卡过,改掉以后效率好了一点。#include #include #include #include #include using namesp...

2015-10-30 15:57:59

阅读数:199

评论数:0

HDU1009(贪心)

水题~ 按照性价比排序。 #include using namespace std; #define maxn 1111 int n, m; struct node { double val; int cnt; bool operator < (const n...

2015-10-30 01:16:06

阅读数:217

评论数:0

POJ1987(树分治)

k的值很大答案应该用long long。 #include #include #include #include #include using namespace std; #define maxn 111111 #define maxm 211111 #define INF 1111...

2015-10-30 00:39:39

阅读数:167

评论数:0

POJ1741(树分治)

#include #include #include #include #include using namespace std; #define maxn 11111 #define maxm 21111 #define INF 11111111 #define size Size ...

2015-10-29 23:28:39

阅读数:224

评论数:0

POJ3714(分治)

题意是给你两堆点,求毎堆点各取一个的最近距离。 给毎个点一个属于标记,然后合并的时候判断是不是属于不同的两堆点。 #include #include #include using namespace std; #define maxn 211111 #define INF 1e15 s...

2015-10-29 17:54:25

阅读数:309

评论数:0

HDU1007(分治)

题意是给你n个点,要扔一个圆,在任何情况这个圆都不能覆盖两个以上的点。求这个圆的最大半径。 这个最大直径就是最近的点对距离的一半。算法导论讲的很详细也给出了正确性的证明。 #include using namespace std; #define maxn 111111 #define IN...

2015-10-29 16:52:19

阅读数:222

评论数:0

HDU4630(树状数组,离线)

题意是给你一个1-n的排列,给q个询问,求每个询问区间里面的最大gcd。 先预处理每一个数的因数。然后按照询问的右区间排序,记录到当前询问为止的最左边界,还有某个因子的最右,次右位置,每次这个因子的位置能更新时都用树状数组维护下。 #include using namespace std; ...

2015-10-28 18:14:29

阅读数:268

评论数:0

HDU3953(找规律,坑~)

我做过的最坑的水题,答案是两个数每一位的和。 #include using namespace std; int main () { int t, kase = 0; cin >> t; char a[111], b[111]; while (t-...

2015-10-27 23:28:04

阅读数:283

评论数:0

HDU4607(最大直径 树DP)

题意是给一棵树,从一个点出发走k个点,问最少走几次边。 通过一次树DP求出最大直径,如果最大直径能包含k个点就走最大直径,否则每增加一个点就需要多走一条边两次,那么答案就不难想了。 #include using namespace std; #define maxn 511111 #defi...

2015-10-27 22:28:56

阅读数:168

评论数:0

UEST OJ1222(DFS)

南阳CCPC的H题,意思是给你一个4*4的数独要你填写完整,其中每行没列和每个4快都只有数字1-4。 数据很小暴力搞搞。 #include using namespace std; #define maxn 11 char mp[maxn][maxn]; int cnt; struct n...

2015-10-27 00:49:17

阅读数:222

评论数:0

UESTC OJ1221(DFS)

南阳CCPC的G题,最水的之一。 挖掉那些已经死掉的白子,问能不能一步围杀白子。 数据很小随便搞。#include using namespace std; #define maxn 11 #define move Move char mp[maxn][maxn]; const int m...

2015-10-27 00:19:28

阅读数:368

评论数:0

UESTC OJ1220(最短路)

南阳CCPC的F题,题意是有m个战场,n个小镇,曹操可以在第i个小镇调人到x[i]战场,每个人花费c[i]金钱,同时袁绍也会在第i个小镇调同等数量的人到y[i]战场。每个战场有重要程度分别为0,1,2 。2表示战场上曹操的人必须比袁绍多,1表示曹操的人必须大于等于袁绍,0表示没有限制。问满足条件曹...

2015-10-26 23:42:48

阅读数:361

评论数:0

UESTC OJ1217(树状数组)

南阳CCPC的C题。题意是找n个数字的严格上升的长度为m的子串,答案模一个数。 用树状数组优化到n*n*lgn就行了,需要注意的是如果相同的数字,我们需要使前面的不影响后面的,也就是在处理相同数字的时候需要优先处理后面的数字,那么我们在排序时当数值一样是需要把位置大的放到前面。 #includ...

2015-10-26 21:27:08

阅读数:442

评论数:0

UESTC OJ1218(DP)

南阳CCPC的D题。题意是长度为L的背包放金条,每个金条有长度和就价值,金条能露出在背包两侧外面但是不能超过长度的一半,求最大的价值。 dp[i][j][k]表示处理到i个金条,用了j的长度,有k根露在外面的最大价值,状态转移就只有放,或者放外面或者不放。 坑点就是金条长度是奇数会跪需要吧所有的长...

2015-10-26 20:27:40

阅读数:393

评论数:0

HDU4421(2-sat)

拆位,每一位建一次图判断是否可行,如果一次性建完每一位的图然后跑一次2-sat会爆边。 #include using namespace std; #define maxn 51111 #define maxm 5111111 #define index Index int n; long ...

2015-10-26 20:09:48

阅读数:195

评论数:0

HDU4283(区间DP)

#include #include #include #include #include using namespace std; #define maxn 111 #define maxm 8111111 #define INF 11111111111 long long dp[ma...

2015-10-24 13:50:15

阅读数:251

评论数:0

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