自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Infinity_Izayoi的博客

Kill my weakness!

  • 博客(44)
  • 收藏
  • 关注

原创 POJ 1873 The Fortified Forest(二进制枚举+凸包)

题目链接:http://poj.org/problem?id=1873题解:学会了一个新的枚举方法。。二进制枚举。。然后凸包搞一搞就好了AC代码:#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <vector>using namespace

2016-07-30 13:35:28 280

原创 POJ 2653 - Pick-up sticks(判断两条直线相交)

题目链接:http://poj.org/problem?id=2653题解:暴力走起,从一条线开始枚举,如果和后面的有相交就去掉。AC代码:#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;struct node{ double x1, y1,

2016-07-29 16:46:08 275

原创 HDU 2222 - Keywords Search(AC自动机模板)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2222题解:AC自动机模板,丢个模板就跑,真刺激AC代码:#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const int kind = 26;struc

2016-07-29 15:24:55 284

原创 HDU 1394 - Minimum Inversion Number(树状数组求逆序数)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394题解:利用树状数组搞一搞逆序数就好了,这题不需要离散化AC代码:#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;int tree[5005],LEN;

2016-07-28 20:03:37 294

原创 HDU 2594 - Simpsons’ Hidden Talents(扩展kmp模板)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2594题意:所谓扩展kmp: 给出主串S和模式串T,长度分别为slen和tlen,要求在线性时间内,对于每个S[i](0<=iAC代码:#include <iostream>#include <cstdio>#include <cstring>#include <string>using nam

2016-07-28 19:45:09 526

原创 2016 Multi-University Training Contest 4 - 1011 Where Amazing Happens(水水水)

题目链接:http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1011&cid=707题解:没啥好说的。。。暴力搞了一发,图片挺激情的AC代码:#include <iostream>#include <algorithm>#include <cstring>#include <string>using namespace st

2016-07-28 19:42:16 236

原创 2016 Multi-University Training Contest 4 - 1012(树状数组求逆序数 )

题目链接:http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1012&cid=707题意:给出一组数字,求第i个数字在冒泡排序中能走到的最左端与最右端位置的差的绝对值。题解:考虑一个位置上的数字c在冒泡排序过程的变化情况。c会被其后面比c小的数字各交换一次,之后c就会只向前移动。数组从右向左扫,树状数组维护一下得到每个值右边有多少个

2016-07-28 19:40:05 342

原创 UVA 10123(欧拉定理 + 大数类)

题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1154题解:公式:ans = 1 + C(2,n) + C(4,n); 贴一个大数类的模板大数类:class integer{ friend ostream& operator<<(os

2016-07-27 19:30:41 287

原创 HDU 1348 && POJ 1113 Wall(凸包)

题目链接:HDU :http://acm.hdu.edu.cn/showproblem.php?pid=1348 POJ :http://poj.org/problem?id=1113题解:求出凸包后,算出凸包的周长,再加上以l为半径的圆的周长就好了,最后输出要一个整数并且四舍五入,HDU上还会卡一手输出,最后一个t不要再输出一行空格。AC代码:#include <iostream>#inclu

2016-07-27 14:34:50 314

原创 HDU 3264 Open-air shopping malls (计算两圆相交的面积 + 二分)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3264题解:枚举每个圆的圆心,设起始半径为此圆半径+其他圆(枚举)的直径,然后不断二分,找出满足要求的最小半径。 这里需要一个求两圆相交面积的函数。计算两圆相交面积:struct Circle{ double x, y; double r;}cir[100];double dis(c

2016-07-27 10:41:49 404

原创 POJ 2528 - Mayor's posters(线段树+离散化)

题目链接:http://poj.org/problem?id=2528题意:每个人贴海报,给出海报的范围,后面的海报会覆盖前面的海报,问最后能看到几张海报。题解:这题需要利用到离散化的技巧,不过我的离散化不太对,不过也AC了= =。 讲一个离散化正确的大牛博客: http://blog.csdn.net/non_cease/article/details/7383736 感谢大牛让我明白了这道

2016-07-26 09:59:55 215

原创 HDU 2036 改革春风吹满地(计算多边形面积)

题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2036题解:将多边形分成无数个三角形,然后利用叉积计算三角形面积,最后把所有三角形面积加一起就好了。(不要用绝对值,会WA)AC代码:#include <iostream>#include <cstdio>#include <iomanip>using namespace std;int x[200

2016-07-25 16:47:19 292

原创 HDU 1086 You can Solve a Geometry Problem too(判断两条直线是否相交)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1086题解:单纯的判断AC代码:#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;struct line{ double x1,x2,y1,y2;}

2016-07-25 16:43:33 291

原创 FZU 1015 土地划分(判断两条直线是否相交)

题目链接:http://acm.fzu.edu.cn/problem.php?pid=1015题解:每加一条直线,判断这条直线与前面的直线是否相交,相交即多划分出一块土地,最后在总答案上加一即可。注意重合时不能划分土地。 判断直线相交的办法:设直线AB与直线CD,如果 ABxAC 与 ABxAD 不同号,说明C和D在直线AB的两边。同理再判断一次 CD x CB 与 CD x CA 是否同号就可以

2016-07-25 16:40:53 380

原创 HDU 1754 I Hate It!(线段树)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1754题解:线段树记录一下最大值搞一搞就好了,注意要用scanf输入,同时数据不止一组。AC代码:#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#define lc (d<<1)#define

2016-07-25 10:58:34 263

原创 UVALIVE 7362(欧拉函数)

题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5384题解:欧拉函数记录所有数据范围内的值,然后加一起就可以了。AC代码:#include <iostream>#include <cstdio>#include <algorit

2016-07-25 10:54:13 286

原创 HDU - 1698 Just a Hook (线段树)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1698题解:做的我不想说啥了…..此题使用cin的话会超时,结构体tr得开原来数据范围的4倍左右AC代码:#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#define lc (d<<1)#def

2016-07-23 16:16:40 209

原创 HDU 2844 Coins (多重背包模板)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2844题解:多重背包模板题,注意要用c语言的输入,否则会超时,同时01背包处要做优化。AC代码:#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;int num

2016-07-23 10:38:33 267

原创 POJ 1947 Rebuilding Roads (树形dp + 01背包)

题目链接:http://poj.org/problem?id=1947题解:开一个dp数组,dp[i][j]表示以第i个节点为根,保留j个点所需要的刀数。可以先将所有dp[i][1]初始化为 i的儿子数(仅保留这个点需要的刀数),其他位置初始化为无限大。然后将问题看做一个01背包,物品的容量就是m,此时和普通的01背包区别为背包里的物品(也就是子树)可以选择k个节点砍掉或者不砍(j + k <=

2016-07-22 21:09:22 279

原创 POJ 3252 - Round Numbers(数位dp)

题目链接:http://poj.org/problem?id=3252题解:题解我自己没想出来。。后来参考了大牛的思路与代码,有种恍然大悟的感觉。 大牛的解题报告:優YoU http://www.cnblogs.com/lyy289065406/archive/2011/07/31/2122758.htmlAC代码:#include <iostream>#include <cstdio>#in

2016-07-22 16:21:59 255

原创 POJ - 3342 - Party at Hali-Bula (树形dp + 判断唯一解)

题目链接:http://poj.org/problem?id=3342题解:开一个dp数组,dp[i][0]表示第i个人不去能得到的最大价值,dp[i][1]表示第i个人去能得到的最大价值。 状态转移方程为:dp[i][1] += dp[i-1][0]; dp[i][0] += max(dp[i-1][0],dp[i-1][1]); (注意,在这里产生是否为唯一解)dp数组解决完毕后,接下来只要

2016-07-22 13:59:30 311

原创 POJ 2342 - Anniversary party (树形dp)

题目链接:http://poj.org/problem?id=2342题解:dp[i][0]表示第i个人不去所获得的最大价值,dp[i][1]表示第i个人去所获得的最大价值。 状态转移方程为: dp[boss][1] += dp[employee][0]; dp[boss][0] += max(dp[employee][0],dp[employee][1]);用dfs搜一下就好了。AC代码:#

2016-07-21 21:33:16 324

原创 HDU 2089 不要62(数位dp)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2089题解:开一个dp数组,设i代表当前数字的长度,dp[i][0]表示不含4和62的数字, dp[i][1] 表示不含4和62且最高位为2的数字,dp[i][2]表示含有4和62的数字。可以推出以下的递推公式:dp[0][0] = 1; for(i = 1; i<=6; i++)//数字最长为6

2016-07-20 21:50:37 507

原创 HDU - 3555 Bomb(数位dp)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3555题解:开一个dp数组,i代表当前数字的长度,dp[i][0]表示不含49的数字个数,dp[i][1]表示最高位为9且不含49的数字的个数,dp[i][2]表示满足条件的数字个数。可以推出以下的递推公式:dp[0][0] = 1;for(int i = 1; i <= 22; i++){

2016-07-20 17:09:33 295

原创 HDU - 1281 - 棋盘游戏(二分图匹配)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1281题解:利用二分图匹配求最大匹配,将棋盘化成一个二分图,横纵坐标分别为左右两团,如果匹配到就说明该点可以放车。然后穷举所有最大匹配找到的边,观察删去该边后最大匹配值是否改变,改变的话即是重要点。#include <iostream>#include <algorithm>#include <cst

2016-07-18 22:41:22 319

原创 HDU - 1285 确定比赛名次(拓扑排序)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1285题解:拓扑排序AC代码:#include <iostream>#include <cstdio>#include <cstring>#include <queue>using namespace std;int inDeep[550],n,m;int topo[550],t,G[500]

2016-07-18 22:38:07 400

原创 HDU - 2444 The Accomodation of Students(判断二分图 + 二分图匹配)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2444题目大意:给出n个点m条边,问是否可以建立二分图,如果可以的话输出最大匹配。题解:利用匈牙利算法计算最大匹配,利用染色法计算是否为2分图AC代码:#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>

2016-07-18 16:35:24 253

原创 HDU - 2063 过山车(二分图匹配)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063题解:二分图匹配模板题。AC代码:#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>using namespace std;int V[505][505];int check[1000];

2016-07-18 15:20:55 274

原创 coderforce 514C - Watto and Mechanism(字典树+dfs)

题目链接:http://codeforces.com/problemset/problem/514/C题目大意:先输入n个字符串,然后输入m个字符串,寻找n个字符串中有没有字符串满足只有一个字母和m中字符串不同的情况,有就输出YES,否则输出NO。题解:将n个字符串用字典树存进去,然后利用dfs进行搜索。 这里的dfs使用bool好做一些(我一开始使用的void,WA了两次,暂时没有什么好想法,欢

2016-07-18 14:04:36 282

原创 light OJ -DNA Prefix (字典树)

题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=121897#problem/G题目大意:寻找所给字符串的 前缀*出现次数 的最大值题解:字典树,v[u]为结点出现次数,存字符串后利用搜索不断遍历所有有字母的点,找到最大值。此题因为只有4个字母,所以字典树的宽度应为4,如果为26会超出内存。AC代码:#include <cstdi

2016-07-16 17:05:16 270

原创 coderforce #round117D (kmp)

题目链接:http://codeforces.com/problemset/problem/182/D题意:求两个字符串公共循环节的个数题解:利用kmp算法中的next数组求出两个字符串的最小循环节, 设字符串的长度为len,如果len%(len - next[len]) == 0就有最小循环节,最小循环节 = 原字符串.substr(0,len - next[len]),如果不等于0最小循环节就是

2016-07-16 14:36:13 272

原创 HDU - 3068 - 最长回文(Manacher)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3068题解:Manacher算法模板AC代码:#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <string>using namespace std;int R[220050]

2016-07-15 16:00:53 257

原创 HDU - 1251 - 统计难题(字典树)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1251题解:字典树AC代码:#include <cstdio>#include <algorithm>#include <cstring>#include <cctype>#include <iostream>using namespace std;const int maxnode = 500

2016-07-15 15:03:28 285

原创 HDU - 2087 - 剪花布条(kmp)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2087题解:kmp计算不重叠的匹配次数AC代码:#include <iostream>#include <cstring>using namespace std;int nxt[10000];int m , n, ans;string p , t;void getnext(){ nx

2016-07-15 13:31:59 422

原创 HDU - 1711 - Number Sequence (KMP)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1711题解:用普通的kmp踩点过了。。。AC代码:#include <iostream>#include <cstring>using namespace std;int nxt[10000];int m , n;int p[10500];int t[1000001];void getnex

2016-07-15 12:13:14 241

原创 Gym 100735 - I. Yet another A + B

1

2016-07-15 09:20:43 495

原创 HDU - 1573 - X问题(中国剩余定理不满足互质情况下的求解)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1573题解:推导过程太长写纸上了,夹在ACM/ICPC那本书里面。 转一个题解: http://972169909-qq-com.iteye.com/blog/1266328 作者 (KIDx)AC代码:#include <iostream>#include <cstdio>#include

2016-07-14 16:47:29 533 1

原创 HDU - 1286 - 找新朋友(欧拉函数)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1286题解:此题需要使用欧拉函数,欧拉函数是计算小于M的所有正整数中所有与M互质的数AC代码:#include <iostream>#include <cstdio>#include <cmath>#include <algorithm>using namespace std;int euler

2016-07-14 16:42:27 284

原创 HDU - 2115 - Loooooops (扩展欧几里得定理)

题目链接:http://poj.org/problem?id=2115题解:设kk = 2^k; 本题公式为(A + CX) % KK = B,求X,可以转化为 C*X - KK*Y = B - A,设gcd(C , KK)= D,求出D后,若(B - A) % D = 0即为有解的情况, 此时求出来的X需要进行转化, x= x* (b-a) / ans , r = kk / ans , x =

2016-07-14 16:39:12 322

原创 HDU - 4497 - GCD and LCM (线性筛素数 + 计数)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4497题目大意:给出一个GCD和一个LCM,求出所有满足条件的三个数的组合。题解:一个大神写的分析,贼牛逼如果G%L != 0,说明一定无解。把K = G / L质数分解,G / L = p1^t1 * p2^t2 * p3^t3 * ……;同时 x/= L, y/= L, z/=L,不影响结果。假设三个

2016-07-14 16:22:00 339

空空如也

空空如也

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

TA关注的人

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