poj
文章平均质量分 75
smallacmer
这个作者很懒,什么都没留下…
展开
-
http://poj.org/problem?id=3356&&dp
题意:给你两个字符串,让你把第一个字符串转化为第二个字符串,问你最少需要多少次操作(添加,删除,更改),属于lcs的变形题:定义dp[i][j]为第一个串的前i个字符转化为第二个串的前j个字符所需最小的步骤,这是满足最优子结构性质的,因为如果转移到dp[i][j]的那个状态不是可以转化过来的状态中最优的,我们可以用最优的替代它那么怎么转移呢?显然如果s1[i]=s2[j](s1为第原创 2012-11-04 15:31:04 · 751 阅读 · 0 评论 -
http://poj.org/problem;jsessionid=57CE7F39567FF9BFA128CDB4A2E8D728?id=2553
第一道强连通分量题,tarjan算法+缩点,,输出出度为0的顶点。。。//强连通分量为搜索树中的一颗子树//stack自定义栈,dfn(u)为结点u的次序编号//low(u)为u或u的子树能够追溯到的最早的栈中结点的次序号//belong[u]为u所属连通分量#include#include#include#include#define N 5005using namespa原创 2012-03-15 09:04:16 · 1784 阅读 · 0 评论 -
http://poj.org/problem?id=2186&&强连通分量
#include#include#include#include#define N 10001#define M 50005using namespace std;bool istack[N];int head[N],dfn[N],low[N],stack[N],belong[N],out[N];int n,m,res,index,num,top;typedef struct原创 2012-03-15 10:02:45 · 711 阅读 · 0 评论 -
http://poj.org/submit?problem_id=3349&&hash
判断两个雪花是否相同。。。。。简易hash。。。。#include#include#define N 100005typedef struct str{ int key[6]; int next;}Node;Node node[N];int num;int head[N];bool add(int *s){ int i,j,k,h,m,sum=0; for(i=原创 2012-03-31 21:50:48 · 712 阅读 · 0 评论 -
http://acm.nyist.net/JudgeOnline/problem.php?pid=301
http://www.matrix67.com/blog/archives/276原来线性代数中的矩阵有这般用处真是神奇啊,,,递推求值问题=矩阵运算+二分。。代码:#include#includeusing namespace std;typedef long long LL;LL c[3][3];void f(LL a[3][3],LL b[3][3]){ c[原创 2011-11-12 12:25:57 · 1298 阅读 · 2 评论 -
http://poj.org/problem?id=1007
归并排序。。。。AC代码:#include#include#include#include#define N 60using namespace std;char a[101][N],b[N];struct str{ int value; int id;}c[101];bool cmp(str x,str y){return x.value<y.value;}l原创 2012-02-19 12:48:13 · 564 阅读 · 0 评论 -
http://poj.org/problem?id=2239&&Selecting Courses
水题不解释。。。。AC代码:#include#include#includeusing namespace std;int match[85];bool visit[85];vectormap[301];int n;bool dfs(int x){ int m=map[x].size(); for(int i=0;i<m;++i) { int p=map原创 2012-01-04 14:46:08 · 598 阅读 · 0 评论 -
http://poj.org/problem?id=1274&&The Perfect Stall
此题是二分图最大匹配模板题,,,,杯具的是匈牙利算法我竟然写错两个地方,,这一题简单题意不解释。。。#include#include#define N 201#includeusing namespace std;bool visit[N];int match[N] ;int n,m;vectormap[N];bool dfs(int x){ for(int i=0;i<原创 2012-01-04 11:15:18 · 494 阅读 · 0 评论 -
http://poj.org/problem?id=3461&&kmp
这一题真是让我纠结,,本以为kmp算法已经掌握很熟练了,木想到tle,,尼玛的什么kmp,然后又看了看书,,发现这竟然和我写的kmp不一样,于是按书重新写了一遍,竟然木有超时,,我表示很受伤啊!!AC代码:#include#include#includeusing namespace std;int Next[10001];string a,b;void kmp(){ int原创 2012-01-04 10:19:31 · 599 阅读 · 0 评论 -
http://poj.org/problem?id=2503&&hash
题意:给你一些英语单词和这些单词翻译成其他语言时的单词,在后面给你一些其他语言的单词,看能否用字典来翻译。思路:hash表,字典树,排序。。我的第一个蹩脚的hash~~~~AC代码:#include#include#include#include#define N 100005using namespace std;int head[N];typedef stru原创 2012-03-31 09:31:08 · 663 阅读 · 0 评论 -
http://poj.org/problem?id=1840
运用hash表求方程的根的个数~~同上一题。。。。#include#include#define N 25000007using namespace std;char Hash[N];int main(){ int a,b,c,d,e; scanf("%d%d%d%d%d",&a,&b,&c,&d,&e); memset(Hash,0,sizeof(Hash));原创 2012-04-01 09:21:57 · 661 阅读 · 0 评论 -
http://poj.org/problem?id=3264&&RMQ
水题 不解释。。。#include#include#include#include#define N 50005using namespace std;int dpmax[N][20],dpmin[N][20];void RMQ(int num){ for(int j=1;(1<<j)<=num;++j) for(int i=1;i+(1<<j)-1<=num;++i)原创 2012-04-06 09:15:39 · 544 阅读 · 0 评论 -
凸包及旋转卡壳求凸包直径
那么,先提一下最基本最暴力的求凸包直径的方法吧---枚举。。。好吧。。很多问题都可以用 枚举 这个“万能”的方法来解决,过程很简单方便是肯定的,不过在效率上就要差很远了。 要求一个点集的直径,即使先计算出这个点集的凸包,然后再枚举凸包上的点对,这样来求点集直径的话依然会在凸包上点的数量达到O(n)级别是极大的降低它的效率,也浪费了凸包的优美性质。不过在数据量较小或者很适合时,何必要大费周折的用那些原创 2012-09-07 21:06:59 · 932 阅读 · 0 评论 -
Dungeon Master&&http://poj.org/problem?id=2251
广搜入门题,不过图是三维的~~AC代码:#include#include#include#include#include#define N 35#includeusing namespace std;typedef struct node{ int x; int y; int z; int step; friend bool operator<(node a,n原创 2012-07-24 17:04:27 · 746 阅读 · 0 评论 -
Curling 2.0&&http://poj.org/problem?id=3009
DescriptionOn Planet MM-21, after their Olympic games this year, curling is getting popular. But the rules are somewhat different from ours. The game is played on an ice game board on which a squa原创 2012-07-23 19:19:54 · 1016 阅读 · 0 评论 -
棋盘问题&&http://poj.org/problem?id=1321
Description在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。Input输入含有多组测试数据。 每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n原创 2012-07-23 16:36:59 · 746 阅读 · 0 评论 -
Find The Multiple&&http://poj.org/problem?id=1426
一道关于隐式图的搜索题,bfs和dfs都行,,题意:给你一个数,让你求一个数是该数的倍数,但是要求该数只有0和1构成。需要注意的是要用bfs时需要自己写一下队列。BFS:#include#include#include#includeusing namespace std;typedef long long L;L Queue[20000000];int rear,fro原创 2012-07-24 10:38:55 · 609 阅读 · 0 评论 -
Sumdiv&&http://poj.org/problem?id=1845&&约数和问题
Time Limit: 1000MS Memory Limit: 30000KTotal Submissions: 9761 Accepted: 2274DescriptionConsider two natural numbers A and B. Let S be the sum of all natural divisors of原创 2012-07-12 09:14:50 · 637 阅读 · 0 评论 -
C Looooops&&http://poj.org/problem?id=2115
DescriptionA Compiler Mystery: We are given a C-language style for loop of type for (variable = A; variable != B; variable += C) statement;I.e., a loop which starts by setting variable to原创 2012-07-10 16:42:23 · 738 阅读 · 0 评论 -
http://poj.org/problem?id=2607&&最短路
Fire StationTime Limit: 5000MS Memory Limit: 65536KTotal Submissions: 3169 Accepted: 1130DescriptionA city is served by a number of fire stations. Some residents ha原创 2012-05-02 15:46:49 · 1017 阅读 · 0 评论 -
http://poj.org/problem?id=1330&&LCA
第一道LCA题~~~LCA转化为RMQ来解决。。。#include#include#include#include#include#include#define N 10005using namespace std;int lev[2*N],first[N],visit[2*N];int head[N];typedef struct str{原创 2012-04-06 15:43:35 · 689 阅读 · 0 评论 -
http://poj.org/problem?id=3781&&Nth Largest Value
#include#includeusing namespace std;int main(){ int Case; cin>>Case; set Q; for(int i=1;i<=Case;++i) { int t; cin>>t; Q.clear(); f原创 2012-02-01 17:29:02 · 601 阅读 · 0 评论 -
http://poj.org/problem?id=1466&&Girls and Boys
最大独立集=顶点-最大匹配,因为这里最大匹配被重复匹配故最大匹配数除二。。。做这一类题难就难在建图上,,,建图建好了一切ok。。。。。#include#include#include#define N 501using namespace std;int match[N];int visit[N];vectormap[N];bool dfs(int x){ int m=m原创 2012-01-04 17:14:31 · 854 阅读 · 0 评论 -
http://poj.org/problem?id=2406
Power StringsTime Limit: 3000MS Memory Limit: 65536K Total Submissions: 19478 Accepted: 8129 DescriptionGiven two strings a and b we define a*b to be their concatenation. For example, if a原创 2011-10-30 14:11:13 · 634 阅读 · 0 评论 -
http://poj.org/problem?id=2983
DescriptionThe galaxy war between the Empire Draco and the Commonwealth of Zibu broke out 3 years ago. Draco established a line of defense called Grot. Grot is a straight line with N defense stati原创 2011-10-26 21:00:36 · 567 阅读 · 0 评论 -
http://poj.org/problem?id=1273
第一次写最大流的题,,,用的是最复杂的找增光路的方法,,E-K算法,,用bfs找增广路,网络流刚接触路还很长啊,,,加油,,,#include #include #include#include#include#include#define N 205using namespace std;int map[N][N];int n,m;void Ek(){ int f原创 2011-11-15 11:23:06 · 634 阅读 · 0 评论 -
http://poj.org/problem?id=3281
我的最大流的第二题,,,话说刚学网络流,,用了最常用的算法E_k算法还调试了一会,,,,杯具啊,,看了网上大牛们的解题报告,用的都是Dinci和ISPA,,,很是神奇啊,,看来是得学学了,,,这道题难在建图上,,,为了保证每种食物,和饮料只对应一头牛,用了拆点,,,建图顺序为源点-食物-牛-牛-饮料-汇点,,每个弧的容量为1,做完这题我明白了为什么最大二分匹配可以用网络流来做了,,嘎嘎,,,#原创 2011-11-15 15:21:17 · 610 阅读 · 0 评论 -
http://poj.org/problem?id=1125
DescriptionStockbrokers are known to overreact to rumours. You have been contracted to develop a method of spreading disinformation amongst the stockbrokers to give your employer the tactical edge原创 2011-10-24 20:22:41 · 518 阅读 · 0 评论 -
http://poj.org/problem?id=1456&&并查集
DescriptionA supermarket has a set Prod of products on sale. It earns a profit px for each product x∈Prod sold by a deadline dx that is measured as an integral number of time units starting from t原创 2011-10-22 13:27:23 · 555 阅读 · 0 评论 -
http://poj.org/problem?id=1287&&prim
DescriptionYou are assigned to design network connections between certain points in a wide area. You are given a set of points in the area, and a set of possible routes for the cables that may conne原创 2011-10-20 13:04:12 · 595 阅读 · 0 评论 -
http://poj.org/problem?id=1961
DescriptionFor each prefix of a given string S with N characters (each character has an ASCII code between 97 and 126, inclusive), we want to know whether the prefix is a periodic string. That is,原创 2011-10-30 15:08:54 · 558 阅读 · 0 评论 -
http://poj.org/problem?id=1486
Sorting SlidesTime Limit: 1000MS Memory Limit: 10000K Total Submissions: 2259 Accepted: 828 DescriptionProfessor Clumsey is going to give an important talk this afternoon. Unfortunately, h原创 2011-11-01 19:42:04 · 719 阅读 · 0 评论 -
http://poj.org/problem?id=1975&&同上
题意给你n个珠子,然后给你M种珠子间重量关系,让你求出有多少不处在中间重量的珠子个数。思路:首先依题意可知珠子总数为奇数,根据珠子之间的关系建图,如果一个珠子的入度或者出度大于n/2说明有大于一半的珠子大于该珠子或者有大于一半的珠子小于该珠子,因此可以根据这可以得出不处在中间重量的个数。代码:#include#include#include#include#define原创 2011-11-02 12:47:11 · 504 阅读 · 0 评论 -
http://poj.org/problem?id=3233
Matrix Power SeriesTime Limit: 3000MS Memory Limit: 131072K Total Submissions: 8740 Accepted: 3739 DescriptionGiven a n × n matrix A and a positive integer k, find the sum S = A + A2 + A3原创 2011-11-12 16:57:25 · 683 阅读 · 0 评论 -
http://poj.org/problem?id=1201
看了 两天差分约束题今天总算有点明白了,,做差分约束题,,就是通过合理的建立数学模型,将不等式图形化,,用bellmanford做武器,最终AC该题,,,。这一题让求的是在区间a-b上至少可以取多少点,,,因此可以》=建图求图中的最长路径就ok了,但是有一点难点是建图的时候,并不是以两个端点建的图,而是以a,b+1来建的图,,因为如果这样的可能会出现错误,,比如2,2,因此可得最少可以取4个点原创 2011-11-09 15:41:25 · 610 阅读 · 0 评论 -
http://poj.org/problem?id=3259
第一次用stl中的邻接表写,,以前总怕超时,,,,木想到还行,,,这一题就是判断是不是存在负环,,,题意:一个农民在自家农场的不同地点发现一堆虫洞,每个虫洞可以回到不同长度的过去,于是这个农民想通个时间旅行回到出发点的”过去”。#include#include#include#define N 505#includeusing namespace std;struct No原创 2011-11-10 15:30:30 · 675 阅读 · 0 评论 -
http://poj.org/problem?id=3159
这道题很是给力啊,,spfa+stack一下AC了,,有点小激动,,,,,大自的说一下题意啊,,,就是班长分蜡烛,让你求该班长和他那班的一个同学所分蜡烛差的最大值,,下面介绍一下建图思想,,假设第i个同学有a[i]个蜡烛,设dist[i]为第i个同学相对于第一个同学的蜡烛数,d[i]=a[i]-a[i];d[1]=0;题目让输入的A B C表示 a[B]-a[A]下面是这两天我的得出得原创 2011-11-08 21:18:37 · 647 阅读 · 0 评论 -
http://poj.org/problem?id=2983
终于用spfa把它AC了,,,这道题把我这几天满满的自信都打击的木有了,,,,,一开始用bellman——ford做的还算顺利,但是我想用spfa做一下,,,于是就向别人那样用了头插法,,但是悲剧的是我每次提交总是一个样WA,,,,我于是上网搜了搜,,发现spfa的都是用的是链表,,,但他们不是用的指针,,而我用的是指针,,,就这一点区别,,我的就是过不了,,,太打击人了,,,心在滴血啊,,,,,原创 2011-11-08 17:16:42 · 616 阅读 · 0 评论 -
有向图的多源多点问题,,,
#include#include#include#define N 1001#define M 111111111using namespace std;int map[N][N];int n;int main(){ while( ~scanf("%d",&n)!=EOF&&n ) { for(int i=1;i<=n;++i) for原创 2011-11-07 21:54:44 · 538 阅读 · 0 评论 -
http://poj.org/problem?id=1062
dijstra+枚举法,,,题意中文不再说明了,,,,,解法:求一点到其他所有点的最短路径(还要加上终点的pri[]),在一条路径上点与点之间的等级差不能超过n,扫描区间因为每条路径都要经过点1,所以依次扫描区间[ lev[1]-n , leve[1] ]......[ lev[1] , lev[1]+n ]代码:#include#include#include#原创 2011-11-07 20:14:48 · 606 阅读 · 0 评论