
poj
文章平均质量分 62
贱走偏锋
朝着梦想努力吧
展开
-
poj 1002 487-3279
水题一道,耗时45分钟。喷我吧。。出现的错误:输出前三位数的时候要用%03d防止前置的零。。= =!加油#include#include#include#includeusing namespace std;map mp;int tran(char *str){int ans = 0;for(int i = 0;str[i];i++){if(str[i原创 2012-01-16 17:53:33 · 864 阅读 · 0 评论 -
poj 2516 Minimum Cost KM算法 最小权值匹配
一开始想到了就是拆点,题目说每个人对每种goods的需求都是只有0-3,我是从这个想到的。。。接下来就是建立模型拉。然后就是KM算法。。#include#include#include#includeusing namespace std;int shop[51][51];int store[51][51];int cost[51][51][51];原创 2012-03-16 12:02:15 · 1547 阅读 · 0 评论 -
poj 3368 Frequent values(线段树+离散化) -
第一步就死离散化,现在才开始接触。。乃琦神牛要我一定要做几题,我也就试试罗。对于相同的数,记录起点和终点,记录出现的次数,缩成一个点。就可以建线段树。还要注意如果给出的点不是起点,那么这个点连续的一段相同的要先算出来。。而且这道题没有动态变化。个人觉得RMQ一样可以过。。。。下次有空试一下。不过正在学线段树,就做一下线段树的吧。#include#include#incl原创 2012-04-09 02:46:05 · 462 阅读 · 0 评论 -
poj 1195
第一次写二维树状数组,纪念一下#include#include#include#includeusing namespace std;long long c[1025][1025];int s;int lowbit(int i){return (i&(-i));}void update(int x,int y,long long val){for原创 2012-04-23 23:35:03 · 395 阅读 · 0 评论 -
poj 1698 二分图的匹配
简单的建图,X部是每部电影需要的天数之和,Y部是时间,建立二分图,然后就是匈牙利了。。。因为一开始乱初始化。。。match要-1的,我是从0开始计数的。。。Wa了超久。、。。。郁闷#include#include#includeusing namespace std;const int MAXN = 51*51;const int MAXM = 51*51;bool m原创 2012-04-19 22:56:29 · 426 阅读 · 0 评论 -
poj 1743 Musical Theme
主要是使用后缀数组,参考《后缀数组----处理字符串的有力工具》sa[i]表示排名第i的后缀是哪个可以得到height[i]数组:表示sa[i]和sa[i-1]的子串的最大长度。然后怎么找到最大的解呢,首先就是二分答案k,然后按照顺序按照hight[i]>=k分组,每一组里面j个height里面总共j+1个sa,如果里面最小和最大的差>=k,那么就找到了长度为k并且不重叠的公共字符串。原创 2012-04-21 03:47:39 · 461 阅读 · 0 评论 -
poj 3321 apple tree
数组数组以及树形转线性#include#include#includeusing namespace std;const int maxn = 210000;int c[maxn];int head[maxn];int nxt[maxn];int e[maxn];int tot = 1;int n;int fir[maxn];int last[m原创 2012-04-23 19:12:36 · 404 阅读 · 0 评论 -
poj 1042Gone Fishing
贪心算法+枚举枚举最远到达那个湖i,先把总时间减去走到湖i的时间,剩下的可以看做在i个湖里每次拿一个最大的,用了一个自定义的堆结构#include#include#include#includeusing namespace std;struct node{int num;int loca;node(int nn = 0,int ll = 0){num原创 2012-10-17 09:14:22 · 520 阅读 · 0 评论 -
划分树 poj 2104
划分树划分树的定义 它的每一个节点保存区间[lft, rht]所有元素,元素排列顺序与原数组(输入)相同,但是,两个子树的元素为该节点所有元素排序后 rht−lft +1 / 2个进入左子树,其余的到右子树,同时维护一个num域,num[i] 表示lft 到i这些点有多少进入了左子树。数据结构int Sort[M];//排完序的数组,便于后面查找一段线段的最中间的数stru原创 2013-01-21 01:45:12 · 512 阅读 · 0 评论 -
POJ 2503 Babelfish
题目大意很简单,就是给你字典的对应信息,然后给你查询条件要求你输出字典查询结果,如果字符串没有在字典中则输出"eh"。#include#include#include#include#includeusing namespace std;map mp;char str[100];char source[12];char d[1000010][12];i原创 2012-02-10 22:05:56 · 416 阅读 · 0 评论 -
poj 2983Is the Information Reliable?
差分约束用SPFA判断是否存在负数环 p的时候就是就是dis[B]- dis[A]>=w,dis[B]-dis[A]=dis[A]+1题目虽然没说A,B是1-n但是按照这样做过了。。。- -!!如果要的话,就hash一下呗code:#include#include#include#include#include#includeusing namespace s原创 2012-02-09 13:49:27 · 504 阅读 · 0 评论 -
3169 Layout
简单的差分约束看错成一个图,dis[B]-dis[A]=W,然后求出图的最短距离,用bellman-ford算法就可以了判断图是否有负环,输出-1,否则判断n和1是否可达,如果不行输出-2.否则输出最短距离。#include#include#include#include#includeusing namespace std;const int N =1010;原创 2012-02-09 18:38:21 · 452 阅读 · 0 评论 -
poj 1003
#includeusing namespace std;int main(){double f;while(cin >>f,f>1e-3){double sum = 0.0;int i;for( i = 2;;i++){if(fsum+=1/(double)i;}printf("%d card(s)\n",i-2);}return 0;}原创 2012-01-16 21:47:38 · 374 阅读 · 0 评论 -
poj 1001Exponentiation
好久没有敲代码了,这么水的一题我敲了2个小时= =!主要考察高精度算法,注意判定条件,给定小数位,什么时候改把零省略,什么时候不可以。只有是在整数部分的前置零可以省略,结尾的零最后输出地时候处理一下。写得好丑啊~~~~#include#include#includeusing namespace std;const int N = 200;class Bign{原创 2012-01-16 15:58:50 · 363 阅读 · 0 评论 -
POJ 1006 Biorhythms
太水了,考完试就忘记剩余定理- -!这道题完全就是考你中国剩余定理 (中国剩余定理CRT)设m1,m2,...,mk是两两互素的正整数,即gcd(mi, mj) =1, i≠j, i,j = 1,2,...,k 则同余方程组: x≡b1 (mod m1) x≡b2 (mod m2) ... x≡bk (mod mk)原创 2012-01-18 14:46:59 · 497 阅读 · 0 评论 -
POJ 1012
约瑟夫的变形,f[i]表示第i次出列的人的编号推倒公式为f[i] = (f[i-1]+m-1)%(n-i+1);i表示的是第几次出列,不是下面程序的i- -!!!代码如下:#include#include#include#include#includeusing namespace std;int ans[15];int solve(int k){i原创 2012-01-22 12:32:54 · 466 阅读 · 0 评论 -
poj 3264
转自大牛分析:RMQ(RangeMinimum/Maximum Query)问题: RMQ问题是求给定区间中的最值问题。当然,最简单的算法是O(n)的,但是对于查询次数很多(设置多大100万次),O(n)的算法效率不够。可以用线段树将算法优化到O(logn)(在线段树中保存线段的最值)。不过,Sparse_Table算法才是最好的:它可以在O(nlogn)的预处理以后实现O(1)的查询原创 2012-02-06 15:39:27 · 556 阅读 · 0 评论 -
poj Number Sequence
主要先大概确定数的范围,才26368左右,可以先枚举到i总共有多少个数字,然后确定最后一个数。。。#include#include#include#include#includeusing namespace std; long long a[100001]; long long d[100001];int f(int n){int k = 0;whi原创 2012-02-04 22:35:07 · 527 阅读 · 0 评论 -
SPFA算法 poj 1364
求单源最短路的SPFA算法的全称是:ShortestPath Faster Algorithm。 最短路径快速算法-SPFA算法是西南交通大学段凡丁于1994年发表的。适用范围:给定的图存在负权边,这时类似Dijkstra等算法便没有了用武之地,而Bellman-Ford算法的复杂度又过高,SPFA算法便派上用场了。我们约定有向加权图G不存在负权回路,即最短路径一定存在。当然,我们可以在执行该原创 2012-02-08 20:56:51 · 923 阅读 · 0 评论 -
差分约束
看了网上一下内容,整理出来供大家参考,其实想想最小值怎么写,求最大值怎么写,这个我觉得蛮有意思的。1.问题定义 差分约束系统属于线性规划问题。在一个差分约束系统中,线性规划矩阵A的每一行包含一个1和一个-1,A的所有其他元素都为0。因此,由Ax≤b给出的约束条件是m个差分约束集合,其中包含n个未知元。每个约束条件为如下形式的简单线性不等式:xj-xi≤bk(1≤i, j≤n,1≤k≤原创 2012-02-08 20:59:06 · 5684 阅读 · 1 评论 -
poj 2828 Buy Tickets
题目的意思是给出一些人插队的顺序,求出最后插完的队列结果可以用反向推到的方法,最后一个插入的点,前面有pos[n-1]个座位,以此类推可以想到用线段树的方法记录一个线段的座位的个数,不断地更新线段树顺便介绍一个线段树的文章:http://www.notonlysuccess.com/index.php/segment-tree-complete/#include#include原创 2013-06-05 00:50:07 · 638 阅读 · 0 评论