算法
猪猪奋斗记
这个作者很懒,什么都没留下…
展开
-
HDU 5358 First One(枚举+尺举法)
HDU 5358 First One(枚举+尺举法)(2015年多校联合第六场)原创 2015-08-07 18:44:07 · 1335 阅读 · 0 评论 -
POJ 3461
DescriptionThe French author Georges Perec (1936–1982) once wrote a book, La disparition, without the letter 'e'. He was a member of the Oulipo group. A quote from the book:Tout avait Pair nor原创 2014-04-18 16:57:02 · 604 阅读 · 0 评论 -
HDU 2087 剪花布条
Problem Description一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? Input输入中含有一些数据,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过原创 2014-04-18 17:04:57 · 705 阅读 · 0 评论 -
HDU 3336Count the string
Problem DescriptionIt is well known that AekdyCoin is good at string problems as well as number theory problems. When given a string s, we can write down all the non-empty prefixes of this string.原创 2014-04-18 17:00:57 · 599 阅读 · 0 评论 -
POJ 2185Milking Grid
DescriptionEvery morning when they are milked, the Farmer John's cows form a rectangular grid that is R (1 <= R <= 10,000) rows by C (1 <= C <= 75) columns. As we all know, Farmer John is quite th原创 2014-04-18 16:58:41 · 671 阅读 · 0 评论 -
POJ 2752 Seek the Name, Seek the Fame
DescriptionThe little cat is so famous, that many couples tramp over hill and dale to Byteland, and asked the little cat to give names to their newly-born babies. They seek the name, and at the sa原创 2014-04-18 16:54:52 · 627 阅读 · 0 评论 -
hdu2594 Simpsons’ Hidden Talents
在这里我想先说一声在做KMP题目前我们必须要弄清楚的一件事情就是next[]数组的意义到底是什么?next的意义在于当匹配失败以后,应当跳到搜索字串中的哪个位置继续比较 明白这点以后就不难理解接下来的代码了。DescriptionHomer: Marge, I just figured out a way to原创 2014-03-23 15:59:49 · 623 阅读 · 0 评论 -
hdu1358
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,原创 2014-03-23 15:02:14 · 765 阅读 · 0 评论 -
hdu2544
FLYOD算法正如我们所知道的,Floyd算法用于求最短路径。Floyd算法可以说是Warshall算法的扩展,三个for循环就可以解决问题,所以它的时间复杂度为O(n^3)。Floyd算法的基本思想如下:从任意节点A到任意节点B的最短路径不外乎2种可能,1是直接从A到B,2是从A经过若干个节点X到B。所以,我们假设Dis(AB)为节点A到节点B的最短路径的距离,对于每一个节点原创 2014-03-31 15:16:27 · 740 阅读 · 0 评论 -
CF273c
C. Primes on Intervaltime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou've decided to carry out a survey原创 2014-04-08 19:05:01 · 1442 阅读 · 0 评论 -
RMQ算法 (区间最值问题)
首先先介绍一下RMQ算法,RMQ算法原创 2014-04-28 20:52:04 · 786 阅读 · 0 评论 -
各种排序的原理
冒泡排序原创 2014-08-01 09:17:25 · 830 阅读 · 0 评论 -
51nod 1103 N的倍数 (抽屉原理)
51nod 1103 N的倍数 (抽屉原理)原创 2015-07-16 20:03:55 · 1054 阅读 · 7 评论 -
HDU5200 Trees (离线处理)
HDU5200 Trees (离线处理)原创 2015-04-05 14:02:25 · 1110 阅读 · 0 评论 -
POJ 3320 Jessica's Reading Problem (尺取法)
POJ 3320 ,3067 尺取法原创 2015-01-03 14:53:47 · 774 阅读 · 0 评论 -
N!的素因子分解
N!的素因子分解原创 2014-12-16 17:17:12 · 2187 阅读 · 0 评论 -
UVA714 Copying Books (最大值最小化)
题目链接:http://vjudge.net/problem/viewProblem.action?id=19689原创 2014-09-03 16:33:57 · 806 阅读 · 0 评论 -
模拟退火
先给一个连接,用大白话讲的模拟退火 很容易li原创 2014-09-16 20:19:44 · 932 阅读 · 0 评论 -
POJ2031 Building a Space Station(最小生成树,prim)
DescriptionYou are a member of the space station engineering team, and are assigned a task in the construction process of the station. You are expected to write a computer program to complete the ta原创 2014-08-09 20:48:26 · 683 阅读 · 0 评论 -
HDU 1875 畅通工程再续 (并查集)
这类题目一般都有如下三种做法并查集,Prim算法与Kruskal算法,目前还没有学会prim所以只给出了用并查集的代码Problem Description相信大家都听说一个“百岛湖”的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现。现在政府决定大力发展百岛湖,发展首先要解决的问题当然是交通问题,政府决定实现百岛湖的全畅通!经过考察小原创 2014-03-15 13:47:49 · 693 阅读 · 0 评论 -
构造素数表
素数(质数)指的是指大于一的自然数 的因子只有它本身和1的数,1,0不是素数也不是合数。方法一:一个数 n如果是合数,那么它的所有的因子不超过sqrt(n)--n的开方,所以,判定单个数是否是素数通常是通过这个原理,求a是否为素数,做一个小于等于sqrt(a)的循环即可判定。复杂度是o(n*sqrt(n)) int num=0; for(int i=2;i<=n;i++)原创 2014-03-29 10:36:29 · 1495 阅读 · 0 评论 -
HDU1176免费馅饼
Problem Description都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以gameboy马上卸下身上的背包去接。但由于小径两侧都不能站人,所以他只能在小径上接。由于gameboy平时老呆在房间里玩游戏,虽然在游戏中原创 2014-03-28 14:17:33 · 713 阅读 · 0 评论 -
POJ1276多重背包二进制思想优化
一般情况下我们处理多重背包问题就是将其转化为01背包来做for(int i=1;i for(int j=count[i];j>0;j--) for(int v=cash;i>=cost[i];i++) dp[v]=max(dp[v],dp[v-cost[i]]+w[i]);//很明显这样的复杂度比较高因此我们还需要学习另外一种优化的方法原创 2014-03-04 10:39:13 · 744 阅读 · 0 评论 -
HDU2191多重背包问题
多重背包的问题的解法一般为将其变成01背包问题然后进行求解Problem Description急!灾区的食物依然短缺!为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买。请问:你用有限的资金最多能采购多少公斤粮食呢?后记:人生是一个充满了变数的原创 2014-03-03 14:01:07 · 706 阅读 · 0 评论 -
POJ1088二维数组寻找最优解型问题
递推+DP因为数据不大因此不需要进行剪枝 但是可以学习这种方法定义一个数组来储存没个点的解 若已经判断过则不再进行DescriptionMichael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代原创 2014-03-02 16:01:39 · 991 阅读 · 0 评论 -
HDU1203
题目不难看出这是一道01背包的题目关键点在于找出 求概率的方法 至少拿到一份offer所以p=1-怕(拿不到一份offer);因此dp[v]=max(dp[v],dp[v-c[i]]*(1-w[i]))你报名了吗?——“校第十四届大学生程序设计竞赛暨2014省赛集训队选拔赛”已经启动在线报名,欢迎参加~I NEED A OFFER!原创 2014-03-02 16:22:52 · 886 阅读 · 0 评论 -
POJ1036类似数塔
题意:宾馆有个可以伸缩的门,每秒钟可以伸长1个单位,或者缩小1个单位,或者原地不动。有N个强盗,每个强盗会在t的时间内到达并按,如果此时门的开方度和他的身材s正好相等,这个强盗就会进来,然后你就能得到p的加分。初始状态门是关闭的,让你求出在t时刻得到的最大得分。 分析:按时间从小到大排序,t时间内最大的得分由t之前的时刻决定,满足无后效性,每一个时刻都能得到最优解,满足最有原创 2014-03-02 13:30:12 · 710 阅读 · 0 评论 -
HDU2571二维数组型DP(第一次做出来纪念一下)
题目已经说明下一步可以是(x+1,y),(x,y+1)或者(x,y*k) 其中k>1。因此我们不妨从后一步来考虑前一步定义一个数组来放 达到(i,j)的最大值因此最终只需要输出 map[n][m]的值即可穿过幽谷意味着离大魔王lemon已经无限接近了!可谁能想到,yifenfei在斩杀了一些虾兵蟹将后,却再次面临命运大迷宫的考验,这是魔王lemon设下的又一个机关。要知道,原创 2014-03-02 15:18:34 · 724 阅读 · 0 评论 -
hdu2955robberies
背包9讲中的01背包的一种变形原型 dp[v]=max(dp[v],dp[v-c[i]]+w[i]);对于本题进行分析 ; 背包容量 = 所有银行的钱数之和 sum+=c[i] i=0,1......n; 花费是被抓住的概率 价值是偷到的钱 因此不难推得 dp[v]=max(dp[v],dp[v-c[i]]*w[i]); 注意 dp为double型原创 2014-03-01 20:04:11 · 764 阅读 · 0 评论 -
HDU1114(完全背包问题)
分析:很明显 这里指的每个硬币在满足背包容量的前提下可以无限次加因此这是一个完全背包问题 注意题目红色区域 因此不难得到状态转移方程int m(背包容量)=e(最后)-s(开始);消耗为硬币的质量吃c[i] 价值为钱的面值w[i];dp[v]=min(dp[v],dp[v-c[i]]+w[i]);DescriptionBefore原创 2014-03-02 12:13:11 · 860 阅读 · 0 评论 -
HDU1272小希的迷宫--并查集入门题
hdu1272小希的迷宫--并查集入门题 Problem Description上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了提高难度,小希转载 2014-03-12 13:57:25 · 802 阅读 · 0 评论 -
POJ1611The Suspects并查集
并查集是一种用来管理元素分组情况的数据结构。并查集可以高效地进行如下操作。不过需要注意并查集虽然可以进行合并操作,但是却无法进行分割操作。·查询元素a和元素b是否属于同一组。·合并元素a和元素b所在的组。并查集的精髓(即它的三种操作,结合实现代码模板进行理解):1、Make_Set(x) 把每一个元素初始化为一个集合初始化后每一个元素的父亲节点是它本身,每一个元素的原创 2014-03-11 20:03:24 · 701 阅读 · 0 评论 -
HDU1232畅通工程 并查集
Description某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? Input测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( 注意原创 2014-03-12 13:17:25 · 704 阅读 · 0 评论 -
POJ1182食物链
Poj 1182 食物链 中文简单题意:有N只动物,,分别编号为1,2,···,N。所有动物都属于A,B,C中的其中一种,已知A吃B,B吃C,C吃A,按顺序给出下面的两种信息共K条。·第一种:x和y属于同一种类。·第二种:x吃y。 然而这些信息有可能会出错。有可能有的信息和之前给出的信息矛盾,也有的信息可能给出的x和y不在1,2,···,N的范围内。求在K条信息中有多少条原创 2014-03-16 14:47:53 · 802 阅读 · 0 评论 -
prim 算法
最小生成树prim算法实现今天从志权师兄那里学会了最小生成树。所谓生成树,就是n个点之间连成n-1条边的图形。而最小生成树,就是权值(两点间直线的值)之和的最小值。首先,要用二维数组记录点和权值。如上图所示无向图:intmap[7][7];map[1][2]=map[2][1]=4;map[1][3]=map[3][1]=2;......然后再求最小生成树。具体方法是:原创 2014-03-16 14:44:12 · 689 阅读 · 0 评论 -
HDU1598find the most comfortable road(并查集)
Problem DescriptionXX星有许多城市,城市之间通过一种奇怪的高速公路SARS(Super Air Roam Structure---超级空中漫游结构)进行交流,每条SARS都对行驶在上面的Flycar限制了固定的Speed,同时XX星人对 Flycar的“舒适度”有特殊要求,即乘坐过程中最高速度与最低速度的差越小乘坐越舒服 ,(理解为SARS的限速要求,flycar必须瞬原创 2014-03-15 13:42:12 · 786 阅读 · 0 评论 -
NEFU592求斐波那契数列
斐波那契Time Limit 1000msMemory Limit 65536Kdescriptionf[0]=1,f[1]=1,f[n]=f[n-1]+f[n-2],求f[n]。好熟悉的题目啊,可惜变成高精度了。 input输入原创 2014-03-09 15:25:12 · 682 阅读 · 0 评论 -
NYOJ34韩信点兵
中国剩余定理:中国剩余定理,又称为中国余数定理、孙子剩余定理,古有“韩信点兵”、“孙子定理”、“鬼谷算”、“隔墙算”、“剪管术”、“秦王暗点兵”、“物不知数”之名,是数论中的一个重要命题。在中国古代著名数学著作《孙子算经》中,有一道题目叫做“物不知数”,原文如下:有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?即,一个整数除以三余二,除以五余三,除以七原创 2014-03-09 14:32:03 · 2269 阅读 · 0 评论 -
NEFU 601 快速幂取模
快速幂取模Time Limit 1000msMemory Limit 65536Kdescription给定A,B,C,计算A^B%C,这里A^B代表A的B次方。 input输入数据有多组,每组数据一行,有3个正整数分别为A,B和原创 2014-03-09 14:38:44 · 733 阅读 · 0 评论 -
poj1952求最长递减子序列和最长子序列的种数
求最长递减子序列和最长子序列的种数。难在求种数不需要使用高精度或者int64BUY LOW, BUY LOWERTime Limit: 1000MS Memory Limit: 30000KTotal Submissions: 5490 Accepted: 1848DescriptionThe ad原创 2014-03-08 16:20:09 · 1316 阅读 · 0 评论