2015年9月5日

POJ2337 Catenyms

摘要: 题意:给出一组单词,如果两个单词,一个单词的头和另一个单词的尾相同,则可以相连,例如abce, efdg,可以相连,问这组单词能否排成一排,如果可以求出字典序自小的那个。#include #include #include #include #include #include using names... 阅读全文

posted @ 2015-09-05 11:57 恶devil魔 阅读(136) 评论(0) 推荐(0) 编辑

POJ1386 Play on Words

摘要: 题意:判断一些单词能不能首尾连成一体#include #include #include #include #include using namespace std;int n,father[30],range[30],save[100010],in[30],out[30];bool use[30]... 阅读全文

posted @ 2015-09-05 11:56 恶devil魔 阅读(177) 评论(0) 推荐(0) 编辑

HDU3018 Ant Trip

摘要: 题意:每条边过且只过一次,问至少要画几笔才能全部边都经过。孤立的点忽视。#include using namespace std;const int M=100000+10;int gree[M];int father[M];int rank1[M];int save[M];bool used[M]... 阅读全文

posted @ 2015-09-05 11:30 恶devil魔 阅读(116) 评论(0) 推荐(0) 编辑

HDU1285 确定比赛名次

摘要: Problem Description有N个比赛队(1#include #include #include #include #include #include const int N=505;int degree[N],res[N];bool map[N][N];int n,m;void Topo... 阅读全文

posted @ 2015-09-05 11:29 恶devil魔 阅读(160) 评论(0) 推荐(0) 编辑

HDU2888 Check Corners(二维RMQ)

摘要: 题意:给一个矩阵,然后Q个询问,每个询问有四个数,分别代表询问的子矩阵的左上角和右下角,然后找出子矩阵的最大值输出,然后再把这个值与子矩阵的四个角的值比较,如果有至少一个等于这个最大值就输出“yes”,否则输出“no”。#include #include #include #include #inc... 阅读全文

posted @ 2015-09-05 11:25 恶devil魔 阅读(282) 评论(0) 推荐(0) 编辑

HDU3183 A Magic Lamp

摘要: 题意:对于一个数列a[],一共n个数,除去m个数使剩下的数组成的整数最小。#include #include #include #include #include #include #include #define MAXN 1005;char a[MAXN];int ans[MAXN],f[MAX... 阅读全文

posted @ 2015-09-05 11:24 恶devil魔 阅读(341) 评论(0) 推荐(0) 编辑

HDU1711 Number Sequence(KMP模版题)

摘要: 匹配子串 #include <iostream> #include <algorithm> #include <cstring> #include <cmath> #include <queue> #include <vector> #include <cstdio> int a[1000005], 阅读全文

posted @ 2015-09-05 11:19 恶devil魔 阅读(177) 评论(0) 推荐(0) 编辑

HDU3694 Fermat Point in Quadrangle(求四边形费马点)

摘要: 题意:给个四边形,问一个点到四边形四个点距离最小的距离和是多少。分析:如果是凸四边形,费马点就是对角线的交点,距离就是对角线长度。如果是凹多边形,费马点就是那个凹点。#include#include#include#include#include#include#include#include#in... 阅读全文

posted @ 2015-09-05 11:13 恶devil魔 阅读(525) 评论(0) 推荐(0) 编辑

POJ2155 Matrix(二维树状数组)

摘要: 题意:给出矩阵左上角和右下角坐标,矩阵里的元素 1变0 ,0 变1,然后给出询问,问某个点是多少。#include #include #include #include #include #include #include #define MAXN 1010int c[MAXN][MAXN],n;i... 阅读全文

posted @ 2015-09-05 11:08 恶devil魔 阅读(192) 评论(0) 推荐(0) 编辑

POJ2299 Ultra-QuickSort(树状数组求逆序数+离散化)

摘要: 原文:http://blog.csdn.net/alongela/article/details/8142965给定n个数,要求这些数构成的逆序对的个数。除了用归并排序来求逆序对个数,还可以使用树状数组来求解。树状数组求解的思路:开一个能大小为这些数的最大值的树状数组,并全部置0。从头到尾读入这些数... 阅读全文

posted @ 2015-09-05 11:00 恶devil魔 阅读(233) 评论(0) 推荐(0) 编辑

HDU1556 color the ball(区间修改,单点查询)

摘要: #include #include #include #include #include #include #include #define MAXN 100005int c[MAXN];int lowbit(int x){ return x&(-x);}void update(int x,i... 阅读全文

posted @ 2015-09-05 10:55 恶devil魔 阅读(127) 评论(0) 推荐(0) 编辑

树状数组模版

摘要: int lowbit(int x){ return x&(-x);}修改某个位置上的值,查找一段区间的和(向上修改,向下统计)void update(int x,int num){ while(x0) { s+=c[x]; x-=lowbit(x)... 阅读全文

posted @ 2015-09-05 10:48 恶devil魔 阅读(178) 评论(0) 推荐(0) 编辑

STL常用规则

摘要: Next_permutation(a,a+n)字典序的下一个1、 lower_bound:返回有序数组中第一个大于等于查找值的位置例:int p=lower_bound(a,a+n,x)-a;(从a数组中查找第一个大于等于x的元素下标)2、 upper_bound:返回有序数组中第一个大于查找值的位... 阅读全文

posted @ 2015-09-05 10:47 恶devil魔 阅读(831) 评论(0) 推荐(0) 编辑

HDU1232 畅通工程

摘要: 题目描述:某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?#include #include #include #inc... 阅读全文

posted @ 2015-09-05 10:40 恶devil魔 阅读(192) 评论(0) 推荐(0) 编辑

并查集模版

摘要: int pre[N]; int fnd(int x) { int r=x; while(pre[r]!=r) r=pre[r]; int i=x,j; while(i!=r) { j=pre[i]; pre[i]=r; i=j; } return r; } void ... 阅读全文

posted @ 2015-09-05 10:39 恶devil魔 阅读(114) 评论(0) 推荐(0) 编辑

HDU1937 Finding Seats(dp求最小矩形)

摘要: 题目描述:告诉你人数,求最小能容纳它们的矩形的面积#include #include #include #include #include #include using namespace std;int dp[302][302];int test(int i,int j,int k,int l){... 阅读全文

posted @ 2015-09-05 10:37 恶devil魔 阅读(168) 评论(0) 推荐(0) 编辑

导航