自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(46)
  • 收藏
  • 关注

原创 POJ 2891 Strange Way to Express Integers 非互质的中国剩余定理

来源:http://poj.org/problem?id=2891题意:有一个数x,x = r[i] (mod a[i]),其中a[i] 和 a[j] 不一定互质,求x的最小值。思路:很容易看到这题和中国剩余定理是有联系的。因为倘若任意的a[i] 和 a[j] 互质,则满足中国剩余定理。中国剩余定理还是好理解的,这里就不多说了,主要说一下不互质情况下如何转化为互质下的中国剩余定理。

2012-07-31 09:09:00 1564

原创 SRM 498 div2

250pt:题意:就是黑板上有三个数,有n次选择的机会,每次选择哪个数可以得到和那个数相同的分数,然后黑板上的该数减一。求n次选择最多能得到多少分。(注意分数减到0后就不在减)。思路:水题啊,每次选择时排序即可,选择最大的。代码:int getMaximumPoints(int A, int B, int C, int N) { int i,

2012-07-30 20:32:12 652

原创 FZU 1402 猪的安家 中国剩余定理

来源:http://acm.fzu.edu.cn/problem.php?pid=1402题意:中文~思路:就是中国剩余定理的模板题,本来是做poj上的一道题,那道题没要求两辆不互质,还要转化成两辆互质的,还不会,,,先把这道题水过了。。代码:#include #include #include using namespace std;#define CLR(arr,

2012-07-30 14:54:11 1815 7

原创 HDU 1576 A/B 数论水题

来源:http://acm.hdu.edu.cn/showproblem.php?pid=1576题意:中文题。。。思路:设A = k * 9973 + n  ,A/ B = C, C = P * 9973 + x,x即为我们所求的答案。易知,A = k* 9973 + n =B * P * 9973 + B * x,化简后得k * 9973 = B * P * 9973 + B * x

2012-07-30 09:43:44 2215

原创 ZOJ 3622 Magic Number 月赛水题

来源:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4768题意:就是有这样一类数,该数放在任何数的右面后形成的新数对原数取余为0。例如2,无论2放在什么数的右面,形成的数总是偶数,因此对2取余都为0.给出m和n求两者之间有多少个这样的数。思路:这样的数 是有规律的,根据题目给出的范围,枚举出所有的数,再判断即可。

2012-07-30 09:26:49 2657

原创 武大集训第二周总结

武大集训第二周总结在武大集训的第二周已经过完了,这一周照例进行着一周五场的比赛,其专题有数据结构,图论,动态规划,模拟,最后一场是CF的一场比赛和一场SRM。总的来说,已经适应了这种频繁的比赛,虽然说每场比赛照例被虐。其中DP专题更是惨遭爆0.随着比赛的进行,暴露出来的问题也越来越多,突然发现,什么也不会。和武大集训队的队员比起来,我们的ACM队简直是弱爆了。组队时是分的有专题的,几场比赛

2012-07-30 09:08:38 5403 2

原创 POJ 2142 The Balance 扩展欧几里得

题意:有两种类型的砝码,每种的砝码质量a和b给你,现在要求称出质量为d的物品,要求a的数量x和b的数量y最小,以及x+y的值最小。思路:是扩展欧几里得的应用。设ax + by = 1,求出x和y的值,因为我们要求ax + by = n的解,所以需要将x y的值乘以n。因为题目中要求x和y的值都要为正,然而,易知,ax + by = 1在a和b都为正数的情况下,x 和 y必有一个数是负的。因

2012-07-30 09:07:12 3007 1

原创 POJ 2155 C Looooops

来源:http://poj.org/problem?id=2115题意:就是说一个for循环,变量从a开始,每次增加c,问经过多少次增加能够 (a+c*n) % 2^k = b%2^k,即同余方程。经过变形后可以变成裸的扩展欧几里得思路:用扩展欧几里得解就可以了。。代码:#include #include #include using namespace std;type

2012-07-28 19:22:10 1174

原创 SRM 499 DIV2 500pt

题意:说有一些兔子,它们有各种各样的颜色。一个人问其中一部分兔子问题,问题是除了该兔子以外,和这只兔子颜色相同的有多少只兔子。给出了这些数据,即和该兔子颜色相同的兔子,求最少有多少只兔子能够满足该情况。思路:举例来说,2 2 3 4,说明和第一只兔子颜色相同的有两个,此时可以确定有3只兔子。在看第二只兔子,也是2,因为要求最小值,因此我们让和第二只兔子颜色相同的兔子是包括第一只兔子在内的的兔子

2012-07-28 17:44:25 720

原创 SRM 499 250pt

题意:就是给你一些数,这些数中其中有两个数是x+y的值和x-y的值,求使x*y的最大值。思路:当两个数的和一定时,若要使x*y得值越大,则x和y越接近越好,即x-y得差越小越好。因此,我们可以先对元素进行排序,然后用后面的元素作为和,前面的元素作为差即可,并且进行比较,最后取最大值即可。代码:class SimpleGuess{ public: int

2012-07-28 17:34:39 903

原创 POJ 1061 青蛙的约会 扩展欧几里得http://poj.org/problem?id=1061

来源:http://poj.org/problem?id=1061题意:中文题。。。思路:由题意易知,posx + vx * t – posy – vy * t = k * L,也就是说解该方程的解。该方程经过化简后可以写为 t*(vx - vy) – k * L = posy – posx,进一步化简为 k*L + t * (vy- vx) = posx – posy,L和(vx - v

2012-07-28 09:21:46 1134

原创 LightOJ 1237 KM求最大匹配最小匹配

来源:http://acm.hust.edu.cn:8080/judge/contest/view.action?cid=9954#problem/G题意:有一些人来咖啡馆开始时间和离开咖啡馆的时间,但是对应的顺序被打乱了,也就是说不知道每个人来的时间和离开的时间。有一个函数用来计算某人来咖啡馆所需要的费用,求最大能获得多少费用,最少能获得多少费用,还要判断数据是不是合法。思路:由于每个人

2012-07-25 18:49:35 1207 1

原创 POJ Biorhythms 模拟

来源:http://poj.org/problem?id=1006题意:就是说人有三个状态,每个状态都有一个高峰期,每个状态到高峰期的时间为周期,固定。现在给你每个周期发生在某一天(不一定是第一个)以及一个天数,让求从该天往后的第二个三个状态同时发生的高峰期。思路:可以用中国剩余定理,或者直接暴力模拟即可。代码:#include #include #include using

2012-07-24 17:44:34 791

原创 LightOJ 1212 deque的运用

来源:http://acm.hust.edu.cn:8080/judge/contest/view.action?cid=9948#problem/D题意:就是给你一种队列,两端都能插入,两端都能删除,然后给你一些操作,输出操作的结果。思路:用deque可以完美实现,题目没什么难度。。。代码:#include #include #include #include #incl

2012-07-24 10:51:59 822

原创 Enemy is weak 树状数组

来源:http://codeforces.com/problemset/problem/61/E题意:给你一些数,让求满足i num[j] > num[k]的序列的个数,而且已知每个数都是不同的。思路:这是CF上的一道题,由题意很容易联想到逆序数。实际上就是这样,这道题就是和逆序数有关。假如所给的序列为10 8 3 1,那么我们求出每个数的后面比其小的有多少个,对于该序列来说的话为3,2

2012-07-24 10:47:57 1330

原创 Idempotents 数论

来源:http://acm.hust.edu.cn:8080/judge/contest/view.action?cid=9927#problem/H题意:给你一个n,n是两个不同素数的乘积。让求小于等于n的x,满足x*x %n = x%n。思路:其实就是求x * (x-1) 是n的倍数。我们可以把n分解成两个素数的乘积,即n = p * q,若x * (x - 1) 是n的倍数,则一定是

2012-07-23 09:06:23 568

原创 来武大集训一周总结

来到武汉大学ACM集训队已经一个星期了,这一周中参加了5场比赛,场场被虐。总的来说,这周过得是比较迷茫的,一方面需要适应这里频繁的比赛,以至于自己的节奏被彻底打乱,另一方面,不知是什么原因,来到这里的一周,总有一种浮躁的感觉。也许是看到周围的人都比自己强好多引起的心里浮躁,也许是来到武大的新鲜感还没褪却。。。。因此,这一周基本没怎么做题,除了每次比赛做出一道或者两道的签名题外,基本没做过题。

2012-07-22 20:51:45 1391

原创 POJ 2411 Mondriaan's Dream 状态压缩

来源:http://poj.org/problem?id=2411题意:就是用一个1*2 的多米诺骨牌去铺一个m*n的矩形,问最多有多少种方法思路:倘若n*m为奇数的话,很容易明白,不能铺满矩形,答案为0。当n*m为偶数时,我们考虑,由于每个格子都要铺满,因此每个格子当前铺的情况有三种,:该格子和该格子正上方的一个格子一起竖着铺,:该格子和该格子右面的一个格子一起横着铺,:该格子暂时不铺。

2012-07-22 20:34:30 2163 2

原创 POJ 1185 炮兵阵地 状态压缩

来源:http://poj.org/problem?id=1185题意:中文题意,,,思路:题目给的是一个n*m的矩阵,其中有一些方格不能放炮弹,而且每枚炮弹的攻击范围是2,也就是说,若一个方格放置了炮弹,则该方格上下左右的2个方格都不能放炮弹。我们一行一行来考虑,由于m的范围比较小(<= 10),所以我们可以先用dfs枚举出来每行可能放炮弹的状态,然后再想,因为炮弹的攻击范围是2,所以第

2012-07-21 10:29:30 773

原创 关于位运算的一些问题

&:按位与,即两位都为1时为1,有一位为0时即为0。用途:按位与由其特点可以想到,我们可以使其和关闭某位的算法相联系。如x=36,二进制表示为100100,我们想使第三位变为0(从右往左数),此时我们可以让x&59即可。59用二进制表示为111011,即100100&111011。注意我们所取得数的特点,除了第三位为0,其他位都为1,这样既保证了原数的第三位改变,也保证了原数的其他位不变,达到

2012-07-17 11:15:10 1243

原创 ZOJ 3504 P-norm 字符串处理问题

来源:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3504题意:题意不太好理解。就是给你一些复数,肯定是偶数个,然后让求两个N维复向量的差的P-范数。话说这个名词还是看shi哥的解题报告才知道的。题目其实很水了,就是输入的时候字符串处理有点麻烦。。。思路:处理好输入后,直接用pow函数就可以了。附上我的搓代码

2012-07-17 09:42:11 1137

原创 istringstream用法 关于字符串处理的问题

istringstream对象可以绑定一行字符串,然后以空格为分隔符把该行分隔开来。程序举例:#include #include #include using namespace std;int main(){ string str1,str2; while(getline(cin,str2)){//getline()函数接受一个字符串,其中可以有空格 istrings

2012-07-17 09:36:06 1754

原创 ZOJ 3508 The War 贪心

来源:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3508题意:有n个士兵和m件武器,每个武器都有一定的重量,每个士兵能拿武器的重量有一个范围,为minw和maxw,求最多能有多少个士兵拿到武器。思路:这是昨天下午和武大集训队一起做的第一场比赛,被虐无悬念。刚开始看到这道题的时候我想到的是贪心,提交了一次wa,然

2012-07-17 09:13:45 732

原创 POJ 2392 Space Elevator 0-1背包

来源:http://poj.org/problem?id=2392题意:有一些种类的砖块,其中每种砖块的高度和数量给了,而且每种砖块都有一个限制条件,就是说以该种砖块结束的最大高度H不能超过某个高度,不同砖块的该高度不同。求最高的高度是多少。思路:由于每种砖块的高度H限制了取得砖块数,而且也决定了砖块放的顺序。因此,先对砖块的种类按照H的高度从小到达排序,之后对每种砖块按照0-1背包处理就

2012-07-12 17:51:36 975

原创 HDU 1712 ACboy needs your help 多组背包

来源:http://acm.hdu.edu.cn/showproblem.php?pid=1712题意:用m天的时间来学n门课程,给出n和m和一个num[n][m]的矩阵,num[n][m] 代表的是花m天的时间学习第n门课程所获得的价值,求最多能获得多大的价值思路:将天数m作为背包的总体积,科目数目作为背包的种类数目,天数j作为背包的重量,num[i][j]作为背包的价值。由于一个科目只

2012-07-12 13:06:46 818

原创 【DP_树形DP专辑】

树,一种十分优美的数据结构,因为它本身就具有的递归性,所以它和子树见能相互传递很多系想你,还因为它作为被限制的图在上面可进行的操作更多,所以各种用于不同地方的树都出现了,二叉树、三叉树、静态搜索树、AVL树,伸展树、线段树、SPLAY树,后缀树等等..     枚举那么多种数据结构只是想说的树方面的内容相当多,本专辑只针对在树上的动态规划,即树形DP.做树形DP一般步骤是先将树转换为有根树,然

2012-07-12 09:40:54 1595

原创 POJ 1952 BUY LOW, BUY LOWER

来源:http://poj.org/problem?id=1952题意:求最长单调递减子序列的长度以及有多少种途径到达该最长单调递减子序列。思路:求最长单调递减子序列是比较容易的了,关键是求路径的条数。而且还要去重。如5 5 2 2 1,其实是只有一条5 2 1。该题难点就在于去重,去重方法如下:我们在求单调递减子序列的时候,可以用一个二重for循环求,在循环中dp[i]表示的是到第i

2012-07-12 09:10:36 710

原创 POJ 1953 World Cup Noise 斐波那契数列

来源:http://poj.org/problem?id=1953题意:求一个长度为n的由0和1组成的序列中满足没有两个1相邻的序列的数目。思路:推出前3项后就可以发现满足斐波那契数列。代码:#include #include #include using namespace std;#define CLR(arr,val) memset(arr,val,sizeof(a

2012-07-11 13:29:46 1581

原创 POJ 1936 All in All 字符串处理

来源:http://poj.org/problem?id=1936题意:判断一个串是否是另一个串的子串思路:水题啊,,,直接用string的find函数就可以了代码:#include #include #include using namespace std;int main(){ freopen("1.txt","r",stdin); string s1,s2;

2012-07-10 18:45:26 922

原创 求i从1到n的gcd(n,i)的和

刚才rihkddd神给我讲解的一个数论问题,为了防止以后忘记,写一下吧。题目是让求i从1增加到n的gcd(n,i)的和,我们假设gcd(n,i) = k,则gcd(n/k,i/k) = 1。即假设gcd(n/k, x ) = 1,则gcd(n,x*k) = k。gcd(n,i) = k,k的取值是确定的,即n的所有因子,所以,满足gcd(n/k,x) = 1个x的个数乘以k即为所有满足gcd(

2012-07-10 18:20:10 6037 1

原创 POJ 1887 Testing the CATCHER 经典DP

来源:http://poj.org/problem?id=1887题意:求最长递减子序列思路:用dp[i]表示前i个数的最长递减子序列,则dp[i] = max(dp[j]) + 1,其中,i>j 且 num[i]  代码:#include #include #include using namespace std;#define CLR(arr,val) memset(

2012-07-10 17:39:46 837

原创 POJ 1742 Coins(背包问题)

来源:http://poj.org/problem?id=1742题意:给你一定数量和面值的纸币,在不超过总钱数m的情况下,用所给的纸币共能形成多少种钱数思路:本来想到多重背包上面了,用多重背包写了一下,tle,后来用二进制优化,还是tle,后来看dis,说用优先队列,网上搜资料,没看懂,,后来看acmj1991的博客,说是用数组标记法,然后不懂神马是数组标记法。后来才知道,其实就是个常规

2012-07-10 16:24:04 797

原创 POJ 1664 放苹果 递推

来源:http://poj.org/problem?id=1664题意:中文题目。。。。。思路:将n分成k个数的和,表示成fun(n,k),可以分成两种情况,一种是k个数中至少含有一个0,这样的情况有fun(n,k-1)种,再加一个0即可。另外一种情况是不含0。既然不含有0,则每个数至少为1,即转化为将n-k个数分成k个数,即是fun(n-k,k)。所以fun(n,k) = fun(n,k

2012-07-10 07:55:29 1651

原创 POJ 1458 Common Subsequence 经典DP

题目来源:http://poj.org/problem?id=1458题意:求最长公共子序列问题思路:经典dp问题,用dp[i][j]表示串1的前i个和串2的前j个的最长公共子序列。则当s1[i]=s2[j]时,dp[i][j] = dp[i-1][j-1] + 1,否则,dp[i][j] = max(dp[i-1][j] , dp[i][j-1])代码:#include#inc

2012-07-09 16:05:08 672

原创 POJ 1276 Cash Machine 多重背包+二进制优化

来源:http://poj.org/problem?id=1276题意:就是有一些一定数量和一定面值的钱,还有一个总钱数,让你在所给的纸币中选出一定数目的钱,使这些钱的和小于等于总钱数,并且使这个和尽可能的大。思路:将总钱数看作是背包的体积,将钱币的面值看作是物体的体积,物体的价值和体积相等。即转化为多重背包问题,由于数据比较大,所以需要用到二进制优化。代码:#include #

2012-07-09 11:31:02 917

原创 POJ 1163 The Triangle 简单DP

题目来源:http://poj.org/problem?id=1163题意:数塔问题,经典DP思路:从上向下走,每次都走最大路径,在最下面一行循环找最大即可。代码:#include #include #include using namespace std;#define CLR(arr,val) memset(arr,val,sizeof(val))const int

2012-07-09 07:53:04 731

原创 POJ 1088 滑雪 DP + dfs

题目来源:http://poj.org/problem?id=1088题意:汉语题意,不说了思路:这道题的动态方程是比较容易想的。就是说拿当前点的高度和该点四周的高度相比,若比周围点高度高,则比较长度。dp[i][j] = max(dp[i][j],dp[newx][newy]+1),这样即可。在比较的时候用到了深搜找路径。本来想到了用深搜,担心超时,一直不敢写。深搜时有一个地方要注意,就

2012-07-08 10:25:34 1507

原创 POJ 1083 Moving Tables 贪心

题目来源:http://poj.org/problem?id=1083题意:就是在房间之间移动桌子,当移动两个桌子时,这两个房间之间的走廊是满的,即其他的移动不能占用该段空间。求最少移动时间。思路:按左端点排序,之后两重循环即可。需要注意的地方,左端点不一定比右端点大,因此需要处理一下。代码:#include #include #include #include using

2012-07-08 08:30:24 1002

原创 NBOJ 1187 Hole Breaker 并查集

题目来源:http://ac.nbutoj.com/Problem/view.xhtml?id=1187题意:就是说有一个方阵,然后对小方阵操作,也就是标记小方阵,求最后标记的方阵中能连到一起的方阵最大是多少。能连到一起的条件是至少有一条公共边。思路:由于有多次询问,每次询问都要输出,做多询问200000次,因此朴素方法的话,肯定会tle。由此想到并查集,对小方阵标记时,查看该小方阵的四周

2012-07-07 16:06:14 786

原创 NBOJ 1181 Big Mouth of Abyss - Kog'Maw

题目来源:http://ac.nbutoj.com/Problem/view.xhtml?id=1181题意:前面说了一堆废话,就是说给你一个字符串,全部由数字组成,让你在里面删除n个数,最后得到的数越小越好。思路:此题和NYOJ上的一道题基本上一样,不过NYOJ上让求得是最大数,这里求的是最小数。思路一样,严格来说,这道题数据有点水了,主要是字符串太长,数据变态点的话,我的方法可能会tl

2012-07-07 13:11:57 899

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除