03 2015 档案

字符串匹配的KMP算法
摘要:原文http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里... 阅读全文

posted @ 2015-03-31 23:37 tsw123 阅读(154) 评论(0) 推荐(0)

Java BigInteger(大数,ACM比赛专用)
摘要:用c或者C++处理大数比较麻烦,于是决心学习一下JAVA中大数运算。先下载一个eclipse,具体的用法去问度娘吧JAVA中有两个类BigInteger和BigDecimal分别表示大整数类和大浮点数类这两个类都在java.math.*包中,因此每次必须在开头处引用该包(import java.ma... 阅读全文

posted @ 2015-03-30 17:42 tsw123 阅读(3403) 评论(0) 推荐(1)

ZOJ Problem Set - 3643 Keep Deleting
摘要:题目大意:给出a和b串,a是b串的子串,如果b串有连续的a串,那么就将b串的a串删除,问删除多少次;题目分析:打比赛的时候没敲出来,后来想到用栈的思想去模拟就行,网上还有用KMP+栈去做的,没有KMP,也能AC,一会去学习一下KMP算法 1 #include 2 #include 3 #includ... 阅读全文

posted @ 2015-03-29 10:40 tsw123 阅读(150) 评论(0) 推荐(0)

ZOJ Problem Set - 3640 Help Me Escape
摘要:题目大意:有n条路,选每条路的概率相等,初始能力值为f,每条路通过的难度值为ci,当能力值大于某条路A的难度值b时,能够成功逃离,花费时间ti,小于等于时,不能逃离,天数加一天,但能力值增加b.给定初始的能力值,求成功逃离的期望。分析:概率dp做的少,感觉不是很简单。设dp[j]表示能力值为j时,逃... 阅读全文

posted @ 2015-03-29 00:31 tsw123 阅读(140) 评论(0) 推荐(0)

ZOJ Problem Set - 3635
摘要:题目大意有n个从1..n标号的座位,按时间顺序给出每个客人来的时候是坐在第几个空座位,最后给若干个询问问第i号客人坐在哪里分析线段树+二分 1 // Fast Sequence Operations II 2 // Rujia Liu 3 // 输入格式: 4 // n m 数组范围... 阅读全文

posted @ 2015-03-28 21:49 tsw123 阅读(287) 评论(0) 推荐(0)

Codeforces Round #297 (Div. 2)
摘要:A题题目大意:给你一个字符串,奇数的时候是钥匙,偶数的时候是门,一把钥匙只能开对应的门,然后问你最少额外需要多少把钥匙。分析:用的数组记录一下就行,(注意的是先开门,再拿钥匙!开始错在这里了,决心好好学英语)#include#include#include#include#include#inclu... 阅读全文

posted @ 2015-03-28 20:22 tsw123 阅读(156) 评论(0) 推荐(0)

线段树模板(刘汝佳)
摘要:在网上找了好久的模板,感觉刘大神的模板比较好用 http://blog.csdn.net/zhulei19931019/article/details/38706259点修改Update(x,v): 把Ax修改为vQuery(L,R): 计算区间[qL,qR] 最小值。(也可以求最大值) 1 // ... 阅读全文

posted @ 2015-03-28 20:05 tsw123 阅读(1836) 评论(0) 推荐(0)

UVa 12558 - Egyptian Fractions (HARD version)
摘要:题目大意:给出一个真分数,把它分解成最少的埃及分数的和。同时给出了k个数,不能作为分母出现,要求解的最小的分数的分母尽量大。分析:迭代加深搜索,求埃及分数的基础上,加上禁用限制就可以了。具体可以参考一下紫书。 1 #include 2 #include 3 #include 4 #include 5... 阅读全文

posted @ 2015-03-27 20:54 tsw123 阅读(366) 评论(0) 推荐(0)

codeforce Error Correct System
摘要:题目大意:给出两串n(1 ≤ n ≤ 200 000)个字母的字符串, 求出最多交换一对数, 使得不相同对数变少,求出不相同的对数以及交换的数的位置,若不需交换则输出-1,-1.分析:用矩阵记录两个串相同位置不同的字母,有三种情况,一种是交换后正好两个位置都对应相同,一种是交换后只有一个位置相同,还... 阅读全文

posted @ 2015-03-26 22:33 tsw123 阅读(212) 评论(0) 推荐(0)

codeforce The Art of Dealing with ATM
摘要:题目大意ATM取款机有n种不同的钱币kind[i],每次取款允许吐出不超过k张钱币,且钱币的种类数不能超过2(一开始没理解2的意思),现在有q次取款,钱数为ques,问ATM能否凑出这样的钱,若能的话吐出的钱币数最少是多少。n #include#include#include#include#inc... 阅读全文

posted @ 2015-03-26 11:30 tsw123 阅读(272) 评论(0) 推荐(0)

~0u >> 1
摘要:~ 逐位求反u 后辍为 定义unsigned类型>>右移如在32系统中,连起来就是 将32位的0取反后 右移一位。也就是 int 的最大值 2147482347 阅读全文

posted @ 2015-03-26 09:04 tsw123 阅读(571) 评论(0) 推荐(0)

codeforce Group Photo 2 (online mirror version)
摘要:题目大意:有n个矩形在地上排成一列,不可重叠,已知他们的宽度w和高度h,现在使至多[n / 2]个矩形旋转90度,问最后可以用多小的矩形恰好覆盖这n个矩形,求满足条件的最小矩形面积。n, w, h #include#include#include#include#include#include#de... 阅读全文

posted @ 2015-03-26 09:02 tsw123 阅读(199) 评论(0) 推荐(0)

C++ 中的C_str()函数用法
摘要:语法: const char *c_str();c_str()函数返回一个指向正规C字符串的指针常量, 内容与本string串相同. 这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。看看下面的例子,... 阅读全文

posted @ 2015-03-25 19:50 tsw123 阅读(1302) 评论(0) 推荐(0)

poj 1475 uva 589 - Pushing Boxes
摘要:题目大意人推箱子从起点到终点,要求推箱子的次数最少,并打印出来人移动的路径。题目分析对于箱子进行宽搜的同时,要兼顾人是否能够把箱子推到相应的位置每一次对箱子bfs 然后对人再bfs#include#include#include#include#include#include#includeusin... 阅读全文

posted @ 2015-03-25 19:09 tsw123 阅读(176) 评论(0) 推荐(0)

搜索专题
摘要:来自大牛 http://blog.csdn.net/returnzero__/article/details/7934909一些好题目POJ1190–生日蛋糕(基础,好题)http://acm.pku.edu.cn/JudgeOnline/problem?id=1190题意:略解法:dfs,题偏简单... 阅读全文

posted @ 2015-03-24 19:54 tsw123 阅读(279) 评论(0) 推荐(0)

hdu 5190 Building Blocks
摘要:问题描述看完电影后,乐乐回家玩起了积木。他已经搭好了n堆积木,他想通过调整积木,使得其中有连续W堆积木具有相同的高度,同时他希望高度恰好为H。乐乐的积木都这了,也就是说不能添加新的积木,只能移动现有的积木。他可以把一个积木从一堆移动到另一堆或者新的一堆,但是不能移动到两堆之间。比如,一次移动之后,"... 阅读全文

posted @ 2015-03-24 19:51 tsw123 阅读(221) 评论(0) 推荐(0)

C语言 负数取余的原理
摘要:负数求余数运算是一个数学问题:任何一个整数n都可以表示成 n=k*q+r 其中0<=|r|<|q| 这里的r就是n除以q的余数,即 r==n%q 例如: -9=(-2)*4+(-1) 则-9除以4的余数为-1 另外:求余:取整除后的余数。 求模:基本意义和求余相同,不过要求a%b中的b不是负数。 阅读全文

posted @ 2015-03-23 23:26 tsw123 阅读(3596) 评论(0) 推荐(0)

逆序数还原
摘要:Problem Description有一段时间Eric对逆序数充满了兴趣,于是他开始求解许多数列的逆序数(对于由1...n构成的一种排列数组a,逆序数即为满足iaj的数字对数),但是某天他发现自己遗失了原来的数列,只留下之前计算过程中留下的各个数字对应的逆序数,现在请你帮他还原出原序列。Input... 阅读全文

posted @ 2015-03-23 23:05 tsw123 阅读(565) 评论(0) 推荐(0)

poj 1190 生日蛋糕
摘要:中文题题目分析搜索题,非常好的剪枝由于深度一定(m),所以使用深度优先搜索,自上而下的设定蛋糕序号,最顶层的为第1层,……,最底层的蛋糕为第m层,很明显满足题目条件的前i层的(从顶层(也就是编号为1的层)开始计数)最小面积mins[i]和体积minv[i]是在该层的半径以及高度都为i时取得,如果采用... 阅读全文

posted @ 2015-03-23 21:19 tsw123 阅读(173) 评论(0) 推荐(0)

hdu 5187 zhx's contest
摘要:题目分析如果n=1,答案是1,否则答案是2n−2。证明:ai肯定是最小的或者最大的。考虑另外的数,如果它们的位置定了的话,那么整个序列是唯一的。那么ai是最小或者最大分别有2n−1种情况,而整个序列单调增或者单调减的情况被算了2次,所以要减2。要注意的一点是因为p>231,所以要用快速乘法。用法与快... 阅读全文

posted @ 2015-03-18 16:31 tsw123 阅读(113) 评论(0) 推荐(0)

UVa 11714 - Blind Sorting
摘要:题目题意: 有n个不同的数,你可以询问a,b哪个大,会得到答案,然后问最少要几次保证能挑选出最大和第二大的数。 分析: n个数,先以打擂台的方式,两两比较出最大的,n - 1次,然后在由被最大PK下去的数字中,比较出最大的,有log(n)个数,需要进行log(n) - 1次,注意是向上取整。#in... 阅读全文

posted @ 2015-03-17 17:05 tsw123 阅读(377) 评论(0) 推荐(0)

UVa 11246 - K-Multiple Free set
摘要:题意大意:一个{1..n}的集合,求一个子集合,使得元素个数最多,并且不存在有两个元素x * k = y,求出最多的元素个数是多少.分析:先要删除k倍的,删除为{k, 2k, 3k, 4k, 5k, 6k...},会删掉多余的k^2,因此在加回k^2倍的数然后现在集合中会出现情况的只有k^2的倍数,... 阅读全文

posted @ 2015-03-16 17:16 tsw123 阅读(200) 评论(0) 推荐(0)

UVa 10120 - Gift?!
摘要:题目大意美丽的村庄里有一条河,N个石头被放置在一条直线上,从左岸到右岸编号依次为1,2,...N。两个相邻的石头之间恰好是一米,左岸到第一个石头的距离也是一米,第N个石头到右岸同样是一米。礼物被放置在第M个石头上,Frank从左岸开始跳跃,对于第i步,必须跳2*i-1米,每次可以向左方向跳,也可以向... 阅读全文

posted @ 2015-03-15 19:38 tsw123 阅读(296) 评论(0) 推荐(0)

UVa 10747 - Maximum Subsequence
摘要:题目大意:给出n个数,从中选取k个,使得乘积最大,并且尽量使和最大分析:首先按照数的绝对值大小排序。然后就要分三大类情况讨论:(1)前k个中选到0:如果选到0的话,乘积一定是0,所以尽量选大的数,让和变大。(2)前k个中选到负数的个数为偶数:这样的话直接输出答案(一定为最优解)(3)前k个中选到的负... 阅读全文

posted @ 2015-03-15 15:24 tsw123 阅读(253) 评论(0) 推荐(0)

UVa 10624 - Super Number
摘要:题目大意给定两个数n和m,如果长度为m的数满足对于每个i(n#include#include#includeusing namespace std;int str[50];int n,m,flag;int judge(int cur){ int sum=0; for(int i=0; i... 阅读全文

posted @ 2015-03-14 19:25 tsw123 阅读(239) 评论(0) 推荐(0)

UVa 10037 - Bridge
摘要:题目大意在一个晚上有N个人过河,他们有一个手电筒,需要有手电筒才能过河,每次最多两个人同时过河,每次过河时间等于速度最慢的那个人的过河时间,让所有人全部过河,花费的时间最少是多少?分析如果只有一个人过河,那么过河的总时间就是这个人过河的时间。如果是两个人过河,那么总时间为过河速度较慢的那个人的过河时... 阅读全文

posted @ 2015-03-14 10:27 tsw123 阅读(368) 评论(0) 推荐(0)

UVa 10810 - Ultra-QuickSort
摘要:题目大意:给出一个数列,每次交换相邻数字,求排成递增序的最少交换次数。分析:求逆序数,合并排序#include#include#include#define maxn 5000010using namespace std;int a[maxn],tem[maxn],n;long long Sort(... 阅读全文

posted @ 2015-03-12 17:38 tsw123 阅读(284) 评论(0) 推荐(0)

UVa 1346 - Songs
摘要:题目大意:n张唱片,每张都有长度和频率,要求题目中公式值最小。求一个排序,输出该排序下第m张CD的id。思路:贪心,长度越长放越后面,频率越低放越后面,所以按len/p去排序即可。#include#include#include#includeusing namespace std;struct C... 阅读全文

posted @ 2015-03-10 21:14 tsw123 阅读(169) 评论(0) 推荐(0)

UVa 11039 - Building designing
摘要:题目大意:n个绝对值各不相同的非0整数,选出尽量多的数,排成一个序列,使得正负号交替且绝对值递增。分析:按照绝对值大小排一次序,然后扫描一次,顺便做个标记即可。#include#include#includeusing namespace std;int cmp(int a,int b){ r... 阅读全文

posted @ 2015-03-10 19:45 tsw123 阅读(135) 评论(0) 推荐(0)

UVa 10900 - So you want to be a 2n-aire?
摘要:题目大意:一个答题赢奖金的问题,玩家初始的金额为1,给出n,表示有n道题目,t表示说答对一道题目的概率在t到1之间,每次面对一道题,可以选择结束游戏,获得当前奖金;回答下一道问题,答对的概率p在t到1之间,答对的话奖金翻倍,答错的话结束游戏,没有奖金,求玩家赢的奖金的期望值的最大值。分析:假设玩家已... 阅读全文

posted @ 2015-03-09 21:07 tsw123 阅读(231) 评论(0) 推荐(0)

UVa 10795 - A Different Task
摘要:题目大意:给出n,表示说有n个大小不同的盘子,然后再给出每个盘子的初始位置和目标位置,要求计算出最少的步数使得每个盘子都移动到它的目标位置。分析: 首先找最大不在目标柱子上的盘子K,因为如果最大的盘子在目标柱子上它不需要移动,也不碍事。因此问题就成了把K移动到目标柱子,把1到(k-1)移动到中转柱子... 阅读全文

posted @ 2015-03-09 18:15 tsw123 阅读(176) 评论(0) 推荐(0)

UVa 1388 - Graveyard
摘要:题意:有一个周长为10000的圆上等距分布着n个雕塑,现在又加入m个雕塑,位置随意,希望n+m个雕塑仍然均匀分布。这就要移动其中一些雕像,求移动的最小距离。这个题的方法很巧妙,首先将整个圆分成(m+n)份,这样移动后的点都是在整数值上;所以只要计算在这样的分法下原来的坐标就行了;#include#i... 阅读全文

posted @ 2015-03-08 15:10 tsw123 阅读(154) 评论(0) 推荐(0)

UVa 11729 - Commando War
摘要:【题目翻译】:题目分析:因为任务是可以并行的执行,所以直觉上是花费时间长的任务优先去部署。但是这到题目还给你交待任务的时间,所以容易让人想多了。不管有没有交待任务的时间,对于任务x和y,只可能有两种情况。x在y之前结束,和x在y之后结束。这里讨论x在y之前完成。未交换x和y的位置时,完成时间为:B[... 阅读全文

posted @ 2015-03-07 16:19 tsw123 阅读(178) 评论(0) 推荐(0)

导航