自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 ZOJ1089(dfs)

#include #include #include #include #include #include using namespace std;int a[22], b[22];int n;void print() { for(int i = 1; i <= 6; i++) { printf("%d%c", a[b[i]], (i == 6) ? '\

2016-05-24 19:53:33 251 2

原创 HDU1284(完全背包)

#include #include #include #include #include #include using namespace std;int dp[33333] = {0};int main(){ int n; dp[0] = 1; for(int i = 1; i <= 3; i++) { for(int j = i

2016-03-20 15:01:26 234

原创 HDU5479(简单dp)

题目要求每一个子串都不是括号匹配串,实际上只要使得"()"不是该串的子串即可,所以最终串一定是连续个"("以及连续个")",统计出最小代价。#include #include #include #include #include #include using namespace std;const int inf = 0x3f3f3f3f;char str[1111];int

2016-03-09 19:53:06 272

原创 HDU5480(前缀和)

题目大意:给出大小为n行m列的棋盘,k个車,q个询问(左下角坐标和右上角坐标的矩形)。问:所给出的車能否攻击到整个查询的矩形。思路:要么每行都有車,要么每列都有車,所以前缀和记录一下行和列的車的个数即可。#include #include #include #include #include #include using namespace std;const int inf

2016-03-09 19:47:24 220

原创 HDU2054(水题---这题有毒=_=)

题目大意:判断两个数是否相等。思路:需要判断正负号以及前导0、小数点后面的0等等。。。#include #include #include #include #include #include using namespace std;void del_1(string &str){ int flag1 = 0; int flag2 = 0; if(s

2016-03-09 19:41:39 321

原创 HDU5131(模拟)

题目大意:给出n个人的姓名,以及杀敌数量,按照杀敌数从高到低排序,数量相同的按照姓名字典序排列。再给出m个查询,输出对应人物的比他杀敌数多的人数+1,和他并列多的人数+1,如果无并列的,第二项不输出。思路:数据量很小,直接模拟。#include #include #include #include #include #include using namespace std;c

2016-03-09 19:38:03 265

原创 HDU5542(dp+树状数组)

题目大意:南阳CCPC的C题,找n个数字的严格上升的长度为m的子串。思路:n^3的dp,用树状数组优化到n^2*logn。#include #include #include #include #include #include using namespace std;const long long mod = 1000000007;const int maxn = 111

2016-02-24 14:45:02 351

原创 HDU5616(水题)

题目大意:给一个只能测量两边重量是否相等的天平,有n个已知重量的砝码,问能否测量出给出的物体的重量。#include #include #include #include #include #include using namespace std;const int maxn = 3333;bool a[maxn], vis[maxn];int w[111];int mai

2016-02-24 14:28:32 605

原创 HDU5631(并查集)

题目大意:n个顶点,n+1条边,问删除几个边之后仍是连通图的方案数有多少?思路:如果图连通的话,只能删1~2条边,而且题目数据小,所以暴力就好。#include #include #include #include #include #include using namespace std;int fa[111];int from[111], to[111];int n;

2016-02-24 14:17:47 588

原创 HDU4786(生成树)

题目大意:给你N个点,M条边,权值为1的是白边,权值为0的边是黑边。问能否找到一棵生成树,使生成树的白边个数恰好为斐波那契数。思路:求一遍最大生成树,在求一遍最小生成树,如果在两个值之间有斐波那契数的话,输出Yes,否则输出No。当然,如果本身就不连通的话,就输出No。#include #include #include #include #include #include u

2016-02-04 16:19:27 280

原创 HDU4496(并查集)

题目大意:给一个N个顶点,M条边的无向完全图,每次删边之后输出剩余连通块的数量。思路:并查集一般是用并查集加边的,这题可以想象成删掉1条边,相当于增加M-1条边,然后离线操作,将答案储存起来一并输出。#include #include #include #include #include #include using namespace std;const int max

2016-02-04 14:48:06 245

原创 HDU3635(并查集)

题目大意:n个龙珠,q个操作。操作T是将第Ath所在的城市里的所有龙珠移向第Bth龙珠所在的城市;操作Q是询问第Ath龙珠所在的城市、所在城市的龙珠总数,以及第Ath龙珠被移动的次数。#include #include #include #include #include #include using namespace std;const int maxn = 11111;s

2016-02-03 15:29:30 396

原创 HDU1213(并查集)

并查集水题#include #include #include #include #include #include using namespace std;const int maxn = 1111;int fa[maxn];int n, m;void init(){ for(int i=0; i<=n; i++) { fa[i] = i

2016-02-03 15:24:17 205

原创 HDU4267(树状数组)

题目大意:给一数列,有两种操作,一种是在[a, b]内,对(i - a) % k == 0 的所有值加上c,另一种是查询某个位置的值。思路:由于本题k#include #include #include #include #include #include using namespace std;const int maxn = 55555;int aa[maxn];in

2016-01-30 15:21:38 436

原创 HDU3584(树状数组)

题目大意:给一个N阶立方体,初始值为0,。有两种操作:1、对所给长方体内所有的值取非;0、查询该点的值。思路:三维树状数组,更新长方体的8个顶点。#include #include #include #include #include #include using namespace std;int n, m;int a[111][111][111];int lowbit

2016-01-29 20:07:04 275

原创 HDU(3874)树状数组+离线

题目大意:和 HDU3333 一样。。。=_=     数据范围有些变化。#include #include #include #include #include #include using namespace std;const int maxn = 55555;struct node{ int l, r; int id; bool operato

2016-01-29 16:18:04 220

原创 HDU(3333)树状数组+离线

题目大意:给出一列数字,再给出一些询问,求询问的区间中,不重复的数字的总和。思路:数据量较大,可考虑使用离线化操作,将答案存起来一并输出。先把询问的区间右端按照从小到大排序,否则查询的时候需要多次更新数组。#include #include #include #include #include #include using namespace std;const int maxn

2016-01-29 14:42:41 269

原创 HDU(1301)最小生成树

题目大意:给出的图的结点是字母,每个点都可能有与之相连的边以及权值,求最小生成树。思路:kruskal#include #include #include #include #include #include using namespace std;const int maxn = 1111;int fa[maxn];int n, m;struct node{ i

2016-01-28 19:54:58 266

原创 HDU1542(线段树+扫描线)

题目大意:求矩形面积并集。#include#include#include#include#include#include#includeusing namespace std;#define lson o<<1,l,m#define rson o<<1|1,m+1,rconst int maxn=1005;struct segment{ double l,r,

2015-12-14 22:51:45 226

原创 HDU1863(最小生成树)

题目大意:求MST。。。两种做法均可。#include#include#include#include#include#includeusing namespace std;const int maxn=1111;int fa[maxn];int n,m;int cnt;struct node{ int u,v,w; bool operator<(c

2015-12-13 00:00:14 226

原创 HDU2544(最短路)

题目大意:如题。。。#include#include#include#include#include#includeusing namespace std;const int inf=0x3f3f3f3f;int dis[111][111];int d[111];bool vis[111];void init(int n){ for(int i=1;i<=n;i++

2015-12-08 22:57:41 221

原创 HDU5592(线段树)

题目大意:给你一个序列,表示在这个位置以及之前,有p[i]个逆序对,求此序列。#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define lson o<<1,l,m#define rson o<<1|1,m+1,r

2015-12-05 23:18:43 744

原创 HDU5510(KMP)

2015ACM/ICPC沈阳赛区B题,现场赛用strstr函数暴力水过的。。。题目大意:给你n个字符串,找出最大的i,使得在i之前的字符串都不是第i个串的子串。注意数据量,减少kmp的次数,出现子串即不再进行匹配。#include#include#include#include#include#includeusing namespace std;#define clr(

2015-12-05 00:31:43 324

原创 POJ3461(KMP模板题)

题目大意:求A串在B串出现的次数。#include#include#include#include#include#includeusing namespace std;const int maxn=10050;int fa[maxn];void get_init(string str){ memset(fa,0,sizeof(fa)); for(int i=1

2015-12-05 00:27:11 213

原创 HDU3033(分组背包)

题目大意:给你n个物品,每个物品有一种品牌(可以相同),也有一个价值,每个牌子至少买一个物品,同一个物品不能买多次,问怎样使买到的物品的价值最大?#include#include#include#include#include#includeusing namespace std;const int maxn=10050;int dp[11][maxn];int b[111]

2015-12-04 19:00:28 356

原创 HDU5569(动态规划)

题目大意:给你一个n*m的矩阵,从左上角走到右下角,经过的数字为a1,a2...ak,问怎样能使a1*a2+a3*a4+a5*a6+...+ak-1*ak的值最小。思路:很明显是一道动态规划问题。转移方程:当行列的和为偶数时,dp[i][j]=min(dp[i-1][j],dp[i][j-1]);当行列的和为奇数时,dp[i][j]=min(dp[i-1][j]+a[i-1][j]*a

2015-12-04 13:06:25 397

原创 HDU5475(线段树)

题目大意:一个数X,最开始的值为1。有两个操作,操作1:让X乘y;操作2:让X除以第n次操作乘的那个数字y。思路:此题可以利用线段树来搞,每次操作为更新节点。#include#include#include#include#include#includeusing namespace std;const int maxn=100005;int qq[maxn];long lo

2015-12-04 13:04:00 260

原创 POJ2031(最小生成树)

题目大意:给你n个球的坐标以及半径大小,求MST。如果两球相切或相交,那么间距为0;如果两球相离,那么间距为球心距减去半径。#include#include#include#include#include#includeusing namespace std;const int maxn=111111;double x[111],y[111],z[111],r[111];int

2015-12-01 21:18:39 280

空空如也

空空如也

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

TA关注的人

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