自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

去做一个会思考,善于思考的人。

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

原创 hdu 2421 Deciphering Password(约数个数问题)

http://acm.hdu.edu.cn/showproblem.php?pid=2421A^B 可以写成 p1^e1 * p2^e2 * .....*pk^ek。(A,B 求 ∏1^3+2^3+...+(ei+1)^3 % 10007的值。根据质因子分解定理知A = p1^a1 * p2^a2 *.....* pk^ak,那么A^B = p1^(a1*B) * p2

2014-11-18 10:59:30 1270

原创 hdu 4445 Crazy Tank(枚举)

http://acm.hdu.edu.cn/showproblem.php?pid=4445要求发射的炮弹在都不落在friendly tank区域的条件下落在enemy tank区域的最多数目。直接暴力枚举角度。。#include #include #include #include #include #include #include #incl

2014-11-08 21:26:39 1102

原创 codeforces 484 A-Bits

http://codeforces.com/problemset/problem/484/A给出一个区间[]

2014-11-08 10:30:13 947

原创 zoj How Many Sets I(组合计数)

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4535一个集合s有n个元素,求满足这样的集合序列{s1,s2....sk}使S1 ∩ S2 ∩ ... ∩ Sk = ∅,si是s的子集。从每个元素考虑会使问题变得简单。首先n个元素是相互独立的,单独考虑第i个元素,它在k个子集的所有情况是2^k,

2014-11-05 20:18:31 1159

原创 ural 1114. Boxes(dp)

http://acm.timus.ru/problem.aspx?space=1&num=1114有n个盒子,两两种颜色的球,红球和篮球分别有a和b个,现在随意向盒子里放球,每个盒子可以放一种颜色,两种颜色或不放。问有多少种方法。设dp[i][j][k]表示到第i个盒子还剩下j个红球和k个篮球,可以列出状态转移方程:dp[i][j][k] =∑ ( dp[i-1][jj

2014-11-05 11:15:57 1237

原创 hdu 4407 Sum(容斥)

http://acm.hdu.edu.cn/showproblem.php?pid=4407起初有n个数1~n,这里有m个操作,两种类型。操作1:求出[x,y]区间内与p互质的数的和。操作2:将第x位置的数变成y。对于每一个询问,输出结果。因为只有1000次操作,而且起初是有序的。那么对于第i个询问,我们先忽略i之前的所有的第2种操作,即认为n个数为1~n,根据容斥原理求出

2014-11-04 20:22:24 1004

原创 UVA 4683 - Find The Number

uva 4683这题的意思是给一个集合,最多有12个元素。找出只能被集合中一个仅且一个数整除的第n个数。(n 我用容斥原理做的。先把能被每个数整除的元素个数累加,当然会有重复的。若某个数由集合中两个数组成,那么要减去所有这个数的整数倍,而且要减两次,因为他是两个数的公约数,而当某个数是其中三个数的公约数,那他一定也是两个数的公约数,这样就多减了c[k][2]个,就得加上。以

2014-11-03 20:31:05 994

原创 hdu 4059 The Boss on Mars(容斥)

http://acm.hdu.edu.cn/showproblem.php?pid=4059定义S = 1^4 + 2^4 + 3^4+.....+n^4,现在减去与n互质的数的4次方,问共减少了多少。容斥原理,可以先把与n不互质的数的4次方求出来。那就先对n进行质因子分解,对质因子的组合运用容斥原理,质因子个数为奇数就加,偶数就减。其实与求[1,n]内与n互质的数的个数类

2014-11-02 20:34:39 977

原创 ural 1091. Tmutarakan Exams(容斥)

http://acm.timus.ru/problem.aspx?space=1&num=1091从1~s中选出k个数,使得k个数的最大公约数大于1,问这样的取法有多少种。(2同素数四元组问题类似,可以参考http://blog.csdn.net/u013081425/article/details/40653895只不过这里是选出k个,不是4个。#incl

2014-11-02 15:37:57 1045

原创 spoj 4168. Square-free integers(容斥)

http://www.spoj.com/problems/SQFREE/求出1~n(n 同样的,考虑问题的逆问题,就是至少能被一个完全平方数整除的数的个数。所以答案就是 n - ( 1~n内完全平方数的倍数的个数 )。所以可以枚举i( 2 36就被多计算的一次,所以减掉,就是容斥。 和上题类似,看i的质因子数是奇数还是偶数,是奇数就加上,偶数就减掉,注意i的

2014-10-31 15:11:15 1718 1

原创 spoj 4191. Sky Code(容斥)

http://www.spoj.com/problems/MSKYCODE/给出一个集合,含有n个元素,每次任意从中取出4个使得他们的gcd是1,问有多少种取法。可以先考虑问题的反面,就是取出的4个数的gcd为d,d > 1的方案数。总的方案数c(n,4),减去d > 1的就是问题所求。对于任意一个d(d > 1),总能分解成若干素数的乘积。那么就要考虑到把d和素数

2014-10-31 14:30:47 1444

原创 spoj 6285. Another Game With Numbers(容斥)

http://www.spoj.com/problems/SQFREE/求1~n内不能被一个集合整除的数的个数。简单的容斥原理,因为集合的个数 k 复杂度(2^k*k*log x)#include #include #include #include #include #include #include #include #include

2014-10-31 14:11:21 1052

原创 hdu 2841 Visible Trees(容斥原理)

http://acm.hdu.edu.cn/showproblem.php?pid=2841有一个n*m的方格,从(1,1)开始,每个点有一棵树,一个人站在(0,0)点,问他能看到几棵树。当(0,0)和另外的点在一条直线上时他只能看到最近的一棵。题目意在求在m*n的方格中有多少种y/x,因为两个y/x相等的点只能看到一个。有多少种y/x也就是有多少 个(x,y)x与y互质。

2014-10-30 00:04:04 1190

原创 hdu 4135 Co-prime(容斥原理)

http://acm.hdu.edu.cn/showproblem.php?pid=4135求连续区间[a,b]内与n互质的数的个数。因为a,b相当大,考虑用容斥原理。只需先求出[a,b]内与n不互质的数的个数,等于[1,b]内与n不互质的个数 - [1,a-1]内与n不互质的个数。问题转化为求【1,m】内与n不互质的数的个数。先对n分解质因子,[1,m]内是n的质因子的倍数的

2014-10-29 21:32:25 1068

原创 hdu 5072 Coprime(同色三角形+容斥)

http://acm.hdu.edu.cn/showproblem.php?pid=5072单色三角形模型现场赛和队友想了3个小时,最后发现想跑偏了。感觉好可惜的一道题,要是知道这个模型....就可以轻松的拿银了啊。。。题意不再赘述,就是求同色三角形的个数。总的三角形的个数是C(n,3),只需减去不同色的三角形即可。对于每个点(数),与它互质的连红边,不互质的连蓝边

2014-10-27 16:48:45 2122

原创 zoj 2317 Nice Patterns Strike Back(矩阵乘法)

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1317给出一个n*m的矩阵(n 构造出转移矩阵,上一行向下一行的转移矩阵,因为m因为n特别大,要用到大数。我存矩阵的时候开始定义的大数类,一直T,改成了int型才A,1s+,难道大数类这么慢么,5s都过不了。import java.

2014-10-10 21:17:12 1333

原创 poj 2155 Matrix(树状数组的应用)

http://poj.org/problem?id=2155对于一个n*n(n C x1 y1 x2 y2 ,分别代表矩阵的左上角和右下角,将这个矩阵中的01互换,原为0的变为1,原为1的变为0。Q x y询问A[x,y]现在是几。因为只有01的互换,且原始为0,那么只需计算[x,y]处被换了几次就能确定现在这个格子是几。重点就是怎样快速计算[x,y]格子被换了几次

2014-09-26 20:58:39 1017

原创 hdu Explosion(期望)

http://acm.hdu.edu.cn/showproblem.php?pid=5036每个房间打开有两种方式:被炸开或由其它房间里的钥匙打开。其它房间的钥匙有可能是直接打开该房间也有可能间接打开该房间。所以这个房间被炸开的概率是1/所有能打开该房间的方法。看的题解,用bitset记录所有能打开该房间的那些房间,相当于做传递闭包运算。bitset用法

2014-09-24 10:57:45 879

原创 ZJUT 地下迷宫 (高斯求期望)

http://cpp.zjut.edu.cn/ShowProblem.aspx?ShowID=1423设dp[i]表示在i点时到达终点要走的期望步数,那么dp[i] = ∑1/m*dp[j] + 1,j是与i相连的点,m是与i相邻的点数,建立方程组求解。重要的一点是先判断DK到达不了的点,需要bfs预处理一下进行离散化,再建立方程组。#include #include

2014-09-17 23:37:11 1392

原创 hdu 5015 233 Matrix(构造矩阵)

http://acm.hdu.edu.cn/showproblem.php?pid=5015因为是个二维的递推式,当时没有想到可以这样构造矩阵。从列上看,当前这一列都是由前一列递推得到。根据这一点来构造矩阵。令b[i]代表第i列,是一个(n+2)*1的矩阵,即b[1] = [1,233......],之所以在加了两行,是要从前一个矩阵b[i-1]得到b[i]中的第二个数2333...,

2014-09-17 20:58:31 1064

原创 关于 == 和 equals

在java中,equals方法是继承自object类。它与==不一样。==用来比较两个名称是否参考自同一个对象,equals方法用来比较两个名称对应的内容是否相同。例如:import java.io.*;import java.util.Scanner;import java.math.*;import java.lang.*;public class Main10 { p

2014-09-15 19:58:33 998

原创 hdu 5001 Walk(概率)

http://acm.hdu.edu.cn/showproblem.php?pid=5001应该算是一道简单的概率题。想了两个多小时,结果越想越麻烦。最后敲出来了,但是MLE。最后借鉴实验室学长的思路,发现这样想很直观,正退就可以。设dp[j][d]表示不能经过i点走了d步到达j点的概率。那么dp[j][d] = ∑ dp[k][d-1]/edge[k].size()。那么不经

2014-09-13 19:48:29 2312 1

原创 hdu 4481 Time travel(高斯求期望)

http://acm.hdu.edu.cn/showproblem.php?pid=4418读了一遍题后大体明白意思,但有些细节不太确定。就是当它处在i点处,它有1~m步可以走,但他走的方向不确定呢。后来想想这个方向是确定的,就是他走到i点的方向,它会继续朝着这个方向走,直到转向回头。首先要解决的一个问题是处在i点处,它下一步该到哪个点。为了解决方向不确定的问题,将n个点转化为2*

2014-09-13 00:53:09 1732

原创 hdu 4035 Maze(期望)

http://acm.hdu.edu.cn/showproblem.php?pid=4035是一道很好的题目。题意是有一个迷宫,这里有n个房间,每一对房间有且只有一条隧道,一共有n-1条隧道。起初他在1号房间。他若当前在房间i,接下来有三种路径可以走:ki的概率被杀掉直接回到1号房间;ei的概率从该房间逃走,否则它有均等的概率通过隧道走到和i号房间相连的房间。问它从1号房间逃出去要走的

2014-09-12 12:58:22 960

原创 hdu 4652 Dice(期望)

http://acm.hdu.edu.cn/showproblem.php?pid=4652掷一枚骰子,有m个面,问掷出连续出现n个相同的面以及连续出现n个两两不同的面的期望。设dp[i]表示已经掷出i个相同/不同的面的期望,可以确定终态dp[n] = 0,对于出现连续n个相同的面有dp[i] = 1/m * dp[i+1] + (m-1)/m*dp[1] + 1再列一

2014-09-10 20:17:42 1278

原创 Kids and Prizes(概率+期望)

http://acm.sdut.edu.cn:8080/vjudge/contest/view.action?cid=113#problem/K概率又还给老师了。。。有n个奖品放在n个盒子里,有m个小朋友轮流去选择一个盒子,若有奖品则拿走,无论有没有奖品都要将空盒子放回去。问最后获得奖品的期望。只要求出每个小朋友获得奖品的概率,期望就是这些概率的和。设dp[i]表示第i

2014-09-09 21:48:04 1092 1

原创 zoj 3329 One Person Game(有环的概率dp)

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3754开始看错题意了,以为没翻到a,b,c时要在原来的基础上加a+b+c,按我的意思推出来一个公式,没想到样例还过了,简直无法debug。公式很好推,设dp[i]表示当前为i分时到达目标状态需要投掷的期望,可转移到两个状态dp[0]和dp[i+k]。设转移

2014-09-07 09:53:01 1077

原创 zoj 3640 Help Me Escape(期望)

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4808被这道题坑惨了。有一个吸血鬼被困了,有n条路可以逃出去,每条路有一个难度c[],他初始的战斗力是f,对于第i条路,若f > c[i]他花t[i]天就能出去,否则,他就停留一天,同时战斗力增加c[i]然后再选一条路走出去,他走每条路的概率是相同的。问他逃出去的

2014-09-06 20:22:38 884

原创 hdu 4336 Card Collector(期望)

http://acm.hdu.edu.cn/showproblem.php?pid=4336有N种卡片,每一袋零食里面最多有一张卡片,给出一袋零食里面每种卡片的概率,问平均要买多少袋零食能收集到所有的卡片。状态压缩一下,共有1这一袋零食里没有卡片,概率为p(没有一张卡片的概率),状态转移到sta;这一袋零食里面有卡片j,但是他已经拥有这种卡片,概率是a[j],状

2014-09-06 15:28:02 2547

原创 hdu 4405 Aeroplane chess(期望)

http://acm.hdu.edu.cn/showproblem.php?pid=4405有n+1个点,0~n ,某人现在站在x处,若x处有flight lines,他就能飞到相应点而不用掷骰子,否则就向前走掷出的骰子上的数字。问他从0点到达n点需要投掷骰子的平均次数。还是一样的题型,已知dp[n] = 0,然后根据当前点能到达的下一点的概率进行逆推。dp[0]就是答案。

2014-09-06 10:41:38 693

原创 hdu 3853 LOOPS(期望)

http://acm.hdu.edu.cn/showproblem.php?pid=3853求从【1,1】到【r,c】的所花power的期望,每走一步消耗的power是2,给出从[i,j]到[i,j],[i,j+1],[i+1][j]概率。dp[i][j]表示从[i,j]到[r,c]的消耗power的期望,已知终态dp[r][c] = 0,然后逆推。很难想的是当在原地的

2014-09-05 21:47:22 926

原创 poj 2096 Collecting Bugs(期望)

http://poj.org/problem?id=2096程序的bug有n个子集,s个种类。每一个bug属于每个子集的概率为1/n,每一个bug属于每个种类的概率为1/s,问每个子集且每个种类都有bug的期望。求期望,设dp[i][j]表示已有bug属于i个子集,j个种类的期望,现已知终态为dp[n][s] = 0,dp[i][j]可由逆推而得:dp[i][j

2014-09-05 20:36:01 795

原创 CF D. Bag of mice(概率dp)

http://codeforces.com/problemset/problem/148/D这里有w只白鼠和b只黑鼠,龙和王妃轮流从袋子里抓鼠,每次抓一只,抓到第一只白鼠的人获胜。当龙抓一只鼠时,袋子里会跑掉一只鼠,跑掉的鼠是等概率的。问王妃获胜的概率。设有i只白鼠j只黑鼠的状态下王妃获胜的概率是dp[i][j],这种状态可由一下三种状态得到:王妃第一次就取得一只白鼠获

2014-09-05 19:27:28 1346

原创 poj 3744 Scout YYF I(矩阵优化概率)

http://poj.org/problem?id=3744有n个雷,某人的起始位置在1,每次走一步的概率为p,走两步的概率是1-p,给出n个雷的位置,问最后成功走出雷区的概率。放在高中应该是很简单的分步乘法求概率。即把每一个雷都没踩到的概率求出来,最后n个相乘就是顺利通过的概率。对于输入的n个位置进行分段1~num[1],num[1]+1~num[2]......每一段都

2014-09-05 00:01:13 1075

原创 hdu 3886 Final Kichiku “Lanlanshu” (数位dp)

http://acm.hdu.edu.cn/showproblem.php?pid=3886给出一个字符,只含'/','-' ,'\' ,表示着一个数上的各位数字按相应字符上升,不变或下降,问【a,b】区间内这样的数有多少个?数组很好设,dp[i][j][k]表示处理到第i位,它对应的字符是第j位,它前面的数字是k的种类数。令我纠结好久的是,我起初设的dp[i][j][

2014-08-29 21:30:38 963

原创 LightOJ 1205 - Palindromic Numbers (数位dp)

http://www.lightoj.com/volume_showproblem.php?problem=1205求[i,j]区间内回文数的个数。为了使得处理到第pos位时,前面的状态是确定的,设置一个辅助数组num[ ]表示该回文数前mid位的数,根据前mid位数去确定后面的数。这样题目就变得简单了,只需再确定了回文数的长度,然后进行记忆化。dp[i][j]表示

2014-08-29 10:31:38 1371

原创 定理总结

做了不少数论题,还是感觉对数学

2014-08-29 08:55:41 658

原创 CF D. Beautiful numbers (数位dp)

http://codeforces.com/problemset/problem/55/DBeautiful Numbers : 这个数能整除它的所有位上非零整数。问[l,r]之间的Beautiful Numbers的个数。若一个数能整除它的所有的非零数位,那么相当于它能整除个位数的最小公倍数。因此记忆化搜索中的参数除了len(当前位)和up(是否达到上界),有一个prel

2014-08-29 00:24:03 3413

原创 LightOJ 1032 - Fast Bit Calculations (数位dp)

http://www.lightoj.com/volume_showproblem.php?problem=1032问0~N内所有数的二进制形式中出现的连续的'11'的个数的和。与LightOJ 1140类似,都是对一个数内一些特征的数目计数,像一个数中'11'或'0'的个数和。设dp[i][j]表示处理到第i位时'11'出现的次数。不知道为什么数组开到dp[1

2014-08-28 19:39:41 1306

原创 LightOJ 1140 - How Many Zeroes? (数位dp)

http://www.lightoj.com/volume_showproblem.php?problem=1140给出区间[m,n],求区间内的所有数共有多少个0。设dp[i][j]表示处理到第i位时,它前面共有j个0(除了前导零)。调试了半天,少些了一句 != -1。。#include #include #include #include #in

2014-08-28 10:44:50 1533

空空如也

空空如也

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

TA关注的人

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