- 博客(84)
- 收藏
- 关注
原创 概率与期望DP小结。
好久没更新博客,来水一蛤,近三天做了二十道概率题,也算是摸到了一点门道。首先关于一个很多博主的说到的点,也是我个人认为很重要的一个点,就是概率要顺着推,期望倒着推,我比较赞同以下这篇博客的观点:https://blog.csdn.net/nameofcsdn/article/details/52082746其次就是关于概率DP状态的设计,概率DP的题往往设计状态比较直观,直接按照题意来...
2018-07-19 10:19:07 1179 1
原创 HDU 6231 K-th Number(二分)
题目链接:点击打开链接题意:从原序列A中所有长度大于K的子序列中选取第K大的数组成新序列B,输出B中第M大数。这题不是看题解说是二分完全想不到,一直在想有没有什么数据结构可以维护。其实即使知道二分这道题也并不是很好写,二分答案之后我们需要验证答案的可行性,关键就在于怎么快速求出当前的mid能作为第K大的区间有多少个。这个地方可以尺取,每次我只需要统计从起点到目前位置有多少个数大于等于mid,当个大...
2018-04-02 21:07:03 347
原创 codeforces 219D Choosing Capital for Treeland (树形DP)
题目链接:https://vjudge.net/problem/CodeForces-219D题意:给定一个树形有向图,需要求出从哪个点出发遍历整颗树需要改变的边的方向最少,输出最少的改变次数和符合条件的这些点。很久没更新博客了,今天来水一发,首先建树完成后,从根节点出发dfs,用dp[i]记录从节点i出发遍历其子树所有节点所需要改变的最少次数,用vis[u][v]来保存边的方向,如果方向从u-&...
2018-04-02 20:39:40 254
原创 SPOJ PROOT Primitive Root (关于原根的一点结论)
题目描述:点击打开链接题意很简单,给一个p,n然后输入n个数,要你依次判断这n个数是否是模p的原根,关于原根的定义和概念自行去查资料就好,关于原根的一个重要性质就是我只需要证明如果存在a^x%p==1(x首先假设存在一个y使a^y%p==1,令g=gcd(q,y),那么必然存在两个数u,v使得vy=g+uq,那么接下来a^(vy)%p=(a^y)^v%p=1,a^(g+uq
2017-12-04 20:32:23 309
原创 URAL - 1036 Lucky Tickets(DP+大数)
题目描述:点击打开链接题意:一个2*N位的数要保证前N位数的和与后N位相等,并且这2*N位的和为s,求这样的数有多少个,首先s为奇数的时候答案肯定为0,然后s为偶数的时候那就是一个N位数和为s/2的方案数,简单DP,dp[i][j]表示i位数和为j的方案数进行状态转移即可,题目数据很大要用大数。AC代码:#include#include#include#include#
2017-12-04 20:08:49 343
原创 HDU 4427 Math Magic (优化DP,ICPC2012长春)
题目描述:点击打开链接题意要用K个数组成和为N并且LCM为M的方案数,最直接的想法dp[i][j][k]表示i个数和为j并且LCM为k时方案数,由于要最后的LCM为M所以你用来组合的数都必须是M的约数,所以就先预处理出M的约数然后状态转移dp[i+1][[j+x][lcm[x,p]]=sum(dp[i][j][p])(x表示M的某个约数)。但是我这个题错了N种错法才A,首先MLE然后换滚动
2017-11-21 21:35:16 294
原创 HDU - 4430 Yukari's Birthday (二分,ICPC2012长春)
题目描述:点击打开链接题意你把一块蛋糕分成R圈,每圈上要放K^i(1AC代码:#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;const double PI=acos(-1);const i
2017-11-21 21:24:57 245
原创 URAL 1013 K-based Numbers. Version 3(矩阵快速幂+大数)
题目描述:点击打开链接题意要求你组成一个N位的K进制数要求没有前导0和相邻的0,求所有能组成的方案总数.在K一定的情况下去考虑N,N=1,2,3时都非常好算,从N等于4开始,由于最高位不能是0,所以最高位只有K-1种选法,先在前K -1位的基础上用(K-1)*f[K-1](f[x]表示x位的方案总数),那么还多出来的方案数就是K-1位上选0的情况,由于不能有相邻的0,那么此时K-2位上就不
2017-11-21 21:09:24 231
原创 SGU 416 Optimal Dartboard(脑洞YY乱搞)
题目描述:点击打开链接题目给的式子很复杂,其实直接看图就比较方便,给个n,你就把一个圆分成n份,然后分内圈外圈,然后要求的就是所有内圈外圈两数之差的平方的和,然后就是外圈任意相邻两数之差的平方和和内全年任意相邻两数之差的平方和。要保证求出的这个值最大。关于内外圈的两数之差,这里很容易YY的,比如样例的10,你肯定让1和10配,2和9配这样,保证两数之和为n+1,那就先2,4,6,这样用
2017-11-13 20:30:34 234
原创 CodeForces - 687C The Values You Can Make (简单DP)
题目描述:点击打开链接题意给n个数,要你用这n个数去凑成K,然后每种能凑成K的方案作为一个集合,要你把所有集合的所有子集的数求和,统计不同和的数目并且依次输出。关于凑成K的方案部分用DP去处理dp[i][j]表示能否用j去凑出i,这样定义状态的方便之处在于因为一旦j可以凑成K的话,那么j这个数一定是某个符合条件的集合的子集的数之和。然后进行状态转移时,首先枚举每个数,为了避免每个数
2017-11-06 21:50:03 278
原创 CodeForces - 385E Bear in the Field(矩阵快速幂)
题目描述:点击打开链接题意给你六个数n,sx,sy,dx,dy,t。n表示田地的大小,sx,sy是熊的初始位置,dx,dy为熊每秒的速度增加数,t为熊走的时间。接着还有条件是这片田上长着berry初始数量为x+y为每个格子的两坐标值和,并且没过一秒会长一个berry。熊每到一个格子上会吃掉这个格子上的所有berry并且速度上升这个值。然后要求的是t秒之后熊的位置。这题很明显是个递推的。
2017-11-06 21:46:21 281
原创 CodeForces 292C Beautiful IP Addresses(简单搜索加大暴力乱搞)
题目描述:点击打开链接题意,给你n个数,这n个数各不相同,你需要把每个数都用到,然后去形成合法的IP地址并且要保证这个IP地址是一个回文数,要求把所有能够形成的满足要求的IP地址都输出。由于每个数都不同并且要形成回文数的话,当n=7的时候,这时形成的数就至少有13位,而IP地址至多只有12位,所以我们可以保证n>=7时是没有答案的,那么只考虑小于7时,我们可以用dfs去填数,由于要求回
2017-10-24 20:04:46 391
原创 CodeForces 258C Little Elephant and LCM(数学推理)
题目描述:点击打开链接题目给你一个a数列,你要求一个b数列满足以下条件:1,b数列中的数不大于对应位置的a数列中的数。2,b数列的最大值要等于b数列中所有的最小公倍数。求满足条件的b数列的数目。首先考虑如果b数列的最大数等于b中所有数的lcm的话,那么除了这个最大的数,剩下所有的数都是这个最大数的因子。再者这个题你改变a数列的顺序是不改变答案的。所以我们可以先把a排序,找到最大的数max,这就
2017-10-16 20:30:21 371
原创 HDU - 5976 Detachment(ICPC2016 大连现场,脑洞加逆元)
题目描述:点击打开链接题意也很简单,不解释。其实这题脑洞做法并不是我想出来的,队友想出来的做法我只负责了代码实现而已,关于做法,这题的分割方案举个例子比如7,7=2+3,后面加不了4了,并且还多出2那么我开始从3开始倒着每个数+1变成7=3+4所以答案就是3*4=12,在比如17=2+3+4+5,这是加不了6,并且还差3那么我们就把这3倒着每个数+1变成17=2+4+5+6,所以答案就是2*4
2017-10-14 18:57:53 318
原创 HDU - 5974 A Simple Math Problem(ICPC2016 大连现场,简单的数学推理)
题目描述:点击打开链接题意很简单不解释,这题一开始我的考虑是将b质因子分解然后去分配b的质因子讨论最大值,然后看了一眼数据规模就放弃了这个想法,这么多的测试组数明显只能推出某个式子直接进行计算了,那么怎么考虑呢,首先平时做gcd做的比较多,那么先把lcm转换成gcd的话,设z=gcd(x,y),x*y=z*b,x*y/z=b,对于x,y,x=i*z,y=j*z并且i,j肯定是互质的,不然他们的
2017-10-14 18:02:39 295
原创 HDU - 5980 Find Small A (ICPC2016 大连现场,一点简单的数学小结论)
题目描述:点击打开链接给你一个数化成二进制,每八位截断单独成为一个数,问这些所有数中一共出现了多少次97。这里就需要考虑一下位运算的问题,首先考虑十进制状态,我们要得到一个数的后两位怎么办,对100取模,要舍弃后两位呢,除以100,这里100其实是10^2。那么这个结论其实转移到二进制状态是同样适用的,我们要得到二进制状态下的后八位,实际上直接对2^8取模就好了,那么这个题实际上就已经
2017-10-14 17:50:39 315
原创 CodeForces - 191A Dynasty Puzzles(简单DP)
题目描述:点击打开链接题目比较长但是题意却没有很复杂,现给你n个字符串,如果一个字符串的尾与另一个字符串的首相同,那么这两个字符串就可以相连,要求的是最长的首尾相同的字符串长度。定义dp[i][j]表示以i开头以j结尾的字符串的最长长度,那么对于n个字符串我们只考虑将它连到前面的字符串上,所以状态转移就简单的多了,枚举已经连接的最长长度去更新就好了。AC代码:#includ
2017-10-14 17:16:25 303
原创 HDU - 5514 Frogs (2015 ICPC沈阳 容斥)
题目描述:点击打开链接题意,有m个石头,标号从0-m-1,有n只青蛙,所有青蛙一开始都在编号为0的石头上,每只青蛙每次可以跳的距离为a[i],青蛙每跳到一个石头上就会占领这个石头,求所有青蛙能够占领的石头的编号之和。首先考虑对于每个青蛙他能够占领的所有石头都是gcd(a[i],m)的倍数,那么对于m以内gcd(a[i],m)的所有倍数实际上是一个等差数列,我们可以通过等差数列求和求的对于一个青蛙,...
2017-09-28 22:30:51 259
原创 HDU - 5534 Partial Tree(2015 ICPC 长春,感觉应该是一个早就应该会的简单DP技巧)
题目描述:点击打开链接要你构造一棵结点数为n的树,给了结点度数为i是可以得到的分数vi,现在要求你构造的这棵树能够得到的分数最大。这个问题看起来有点复杂,我们可以把这个问题转换一下,首先如果要构造一棵树的话,那么所有结点的总度数一定为2*n-2,我们可以把不同度数不同分数的结点看作n-1种不同的结点,那么实际上我们要做的工作就是把这2*n-2度分配给这n-1种不同的结点从而得到最大的分
2017-09-25 21:23:57 248
原创 codeforces Gym - 101485 A (2015-2016 Northwestern European Regional Contest (NWERC 2015))
题目描述:点击打开链接题意还是比较清晰的,有n个工人,每个工人有自己的到达工作站的时间和工作的时间,每个工人工作都需要一台机器,你可以认为工作站有足够多的机器,对于每台机器,需要操作人员来开启。如果一个工人用完就立即关闭,那么每来一个工人,操作员都需要开启一台机器,但是现在操作员想要偷懒,他让每个工人离开时不关闭机器,这样如果这时有工人来的话就不需要他来开启机器就可以直接使用,但是工作
2017-09-15 22:58:03 557
原创 codeforces Gym - 101485 D Debugging (2015-2016 Northwestern European Regional Contest (NWERC 2015))
题目描述:点击打开链接这题题意其实很不好理解,你有一个n行的程序,现在程序运行了r时间之后停止了运行,证明此处有一个bug,现在你需要在程序中加printf来调试找到bug所在的位置,你每次加一个printf所需的时间为p,为你在最坏的情况下最少需要多少时间找到bug。首先考虑何为最坏情况,我理解的是,无论此时你在哪里加了一个printf你的程序都需要再运行r时间,也就是说无论你怎
2017-09-15 22:43:02 611
原创 HDU - 5492 Find a path (推公式+暴力DP 15年ICPC合肥网赛)
题目描述:点击打开链接题意,给你一张N*M表格,表格的每一个点都有一个数。你需要从表格的左上角走到表格的右下角,每次只能朝下或者朝右走,这样走到右下角之后会形成一条长度为(N+M-1)的路径,将这路径经过的所有数形成一个(N+M-1)的数列,你需要按题中给出的计算式算出一个值,你需要保证所求的值最小。对于这种题给人的第一反应就是DP,但是题目给的式子无法设计状态进行状态转移,那么我
2017-09-13 23:08:48 282
原创 2017 ICPC 乌鲁木齐网赛 E Half-consecutive Numbers
题目描述:(目前没有题目连接,如果到时候有oj挂了这道题会更新连接)题意很简单,给一个N,要你找一个最小的数r,使tr是一个完全平方数,其中tr=(r+1)*(r)/2这个题规律我感觉不是很好找,但我最后也找到了一个比较奇葩的规律解决的这道题,题目要求tr为一个完全平方数,我是先暴力打表找到前面符合条件的r,分别为1,8,49,288,1681,9800。。。然后用这些数算出来的t
2017-09-09 18:14:55 1409
原创 POJ - 3254 Corn Fields(灵活运用状态压缩)
Farmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M ≤ 12; 1 ≤ N ≤ 12) square parcels. He wants to grow some yummy corn for the cows on a number of squares. Regrettably, some of the squares are infertile and can't be planted.
2017-09-07 21:18:00 252
原创 HDU - 3182 Hamburger Magi (坑了我一天的简单DP!!!)
In the mysterious forest, there is a group of Magi. Most of them like to eat human beings, so they are called “The Ogre Magi”, but there is an special one whose favorite food is hamburger, having been jeered by the others as “The Hamburger Magi”. Let’s gi
2017-09-06 20:47:59 292
原创 HDU - 6189 Law of Commutation(找规律+推公式 17广西邀请赛题)
As we all know, operation ''+'' complies with the commutative law. That is, if we arbitrarily select two integers aa and bb, a+ba+b always equals to b+ab+a. However, as for exponentiation, such law may be wrong. In this problem, let us consider a modular e
2017-09-05 20:46:14 1276
原创 HYSBZ - 1090 字符串折叠(正常的区间DP)
折叠的定义如下: 1. 一个字符串可以看成它自身的折叠。记作S S 2. X(S)是X(X>1)个S连接在一起的串的折叠。记作X(S) SSSS…S(X个S)。 3. 如果A A’, BB’,则AB A’B’ 例如,因为3(A) = AAA, 2(B) = BB,所以3(A)C2(B) AAACBB,而2(3(A)C)2(B)AAACAAACBB 给一个字符串,求它的最短折叠。例如AAAAAAAAAABABABCCD的最短折叠为:9(A)3(AB)CCD。
2017-09-04 20:06:18 219
原创 HYSBZ - 1055 玩具取名 (十分暴力的DP)
某人有一套玩具,并想法给玩具命名。首先他选择WING四个字母中的任意一个字母作为玩具的基本名字。然后他会根据自己的喜好,将名字中任意一个字母用“WING”中任意两个字母代替,使得自己的名字能够扩充得很长。现在,他想请你猜猜某一个很长的名字,最初可能是由哪几个字母变形过来的。
2017-09-04 19:02:50 275
原创 HDU - 2476 String painter (区间DP,08成都现场赛题)
There are two strings A and B with equal length. Both strings are made up of lower case letters. Now you have a powerful string painter. With the help of the painter, you can change a segment of characters of a string to any other character you want. That
2017-09-04 11:01:31 298
原创 HDU - 3905 Sleeping (状态有点麻烦的DP)
ZZZ is an enthusiastic ACMer and he spends lots of time on training. He always stays up late for training. He needs enough time to sleep, and hates skipping classes. So he always sleeps in the class. With the final exams coming, he has to spare some time t
2017-09-04 10:04:14 204
原创 LightOJ - 1295 Lighting System Design(简单的DP)
You are given the task to design a lighting system for a huge conference hall. After doing a lot of calculation & sketching, you have figured out the requirements for an energy-efficient design that can properly illuminate the entire hall. According to you
2017-09-03 20:46:15 253
原创 LightOJ - 1033 Generating Palindromes(区间DP)
By definition palindrome is a string which is not changed when reversed. "MADAM" is a nice example of palindrome. It is an easy job to test whether a given string is a palindrome or not. But it may not be so easy to generate a palindrome.Here we will mak
2017-09-03 19:49:25 209
原创 HDU - 4675 GCD of Sequence (容斥组合推公式)
题目描述:点击打开链接给一个序列 {an}(ai <= M),问有多少种 {bn} ,满足恰好 k 个位置与 {an} 不同,且 gcd of {bn} = d(1<= d <=M)。很灵巧的题,我们首先把a中d的倍数的数目统计出来,假设为x个,如果x<=n-k的话答案肯定是不存在的,问题是答案存在的情况怎么求,我们可以确定的是b中有n-x个位置肯定无法从a中直接得到d的倍...
2017-08-27 21:00:54 290
原创 HDU - 6170 Two strings (多校,DP,字符串匹配)
Giving two strings and you should judge if they are matched. The first string contains lowercase letters and uppercase letters. The second string contains lowercase letters, uppercase letters, and special symbols: “.” and “*”. . can match any letter, an
2017-08-23 10:56:24 276
原创 HDU - 3388 Coprime (容斥+二分答案)
题目描述:点击打开链接题意给三个数m,n,k求第k个与m,n同时互质的数,lcm(m,n)的数据太大不好直接求然后循环找,那么就容斥了,这里涉及到一个小结论,即使是10^18级别的数据分解质因子也只会有二十几个不同的质因子而已,所以放心分解之后容斥,还有同样因为lcm(m,n)太大,所以最好分开分解然后set去重,最后也是因为lcm(m,n)太大,所以要二分找答案。AC代码:#include<...
2017-08-22 20:55:23 320
原创 CodeForces - 571A Lengthening Sticks (容斥组合数计数)
题目描述:点击打开链接题意给你a,b,c,l你可以给a,b,c三条边加任意长度但是加的总长不能超过l,求多种可以组成三角形的方案。仍然容斥倒着计数,先算出总方案用隔板法累加(i+1)(i+2)/2;然后枚举最长边分别为a,b,c最长边的增长长度为0到l的情况,算出不能形成三角形的方案,减去即可。AC代码:#include<iostream>#include<cstdio>...
2017-08-22 20:39:08 281
原创 CodeForces - 296B Yaroslav and Two Strings (容斥计数)
题目描述:点击打开链接给你两个字符串s1,s2其中?可以变成任意数字,问有多少种方案满足存在i,j,s1[i]<s2[i]&&s1[j]>s2[j]。同样的想法,先算出总方案,然后计算出s1<s2,s1>s2,s1==s2的方案算出来减去就是满足题目要求的情况。AC代码:#include<iostream>#include<cstdio&...
2017-08-22 20:16:12 432 1
原创 POJ - 2773 Happy 2006 (互素的一点性质)
Two positive integers are said to be relatively prime to each other if the Great Common Divisor (GCD) is 1. For instance, 1, 3, 5, 7, 9...are all relatively prime to 2006. Now your job is easy: for the given integer m, find the K-th element which is rela
2017-08-22 19:52:31 469
原创 HDU - 2204 Eddy's爱好 (容斥,dfs)
题目要求:点击打开链接题意,求N以内有多少数可以表示成m^k,很明显的容斥,只需要枚举指数k就好,但是神奇的是我这题居然状压怎么都写不对,于是换成了不太熟练的dfs的写法,原理上是一样的。AC代码:#include<iostream>#include<cstdio>#include<cstring>#include<string>#inclu...
2017-08-22 19:36:20 227
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人