
Coode Force
韦我独尊-德天独厚
这个作者很懒,什么都没留下…
展开
-
CF380A Sereja and Prefixes
开始集训了,一直以来状态不是很好,CODE FORCE 跌的跟狗一样, 现在开始补题目,这道题目还不错的,题意咱就不说了,http://codeforces.com/problemset/problem/380/A题目要求的有两种操作,一个是加入单独元素,还有一个就是复制原来已经存在的元素再加进去,有点类似于栈,但是操作步骤会有很多步,所以要真用类似于栈的方法做肯定会超时的,这里询问了原创 2014-01-15 14:10:58 · 968 阅读 · 0 评论 -
CodeForces 396C 树状数组 + DFS
这题目一开始看到了就想到了线段树或者树状数组,但是对于一个节点的所有子节点加权有所疑惑,后来看到根树这个条件,就像到了 那么1号点肯定在第一层,那么建立单向边往下搜,然后记录一下 每一个节点所在的 层,最后 两个节点 相差的 层数就知道了,就容易加权处理了,然后就开始建立数组了,后来一直爆错,后来发现 是范围有问题,这样直接建立是错的,因为不知道具体范围,数字太大了, 所以参考了一下http:原创 2014-11-07 20:56:55 · 1024 阅读 · 0 评论 -
HDU3076 ssworld VS DDD概率DP
kao,WA了那么多次这题目数据是错的,两个人的血量弄错了,输入的 A的血量其实是B的,输入B的其实是A的,由于有平局现象的干扰,所以一开始先把平局包括进去 的 A赢的概率B赢的概率都算出来,然后减去以后就是平局的概率,再在已经除去平局的情况里 算一下A赢的概率,B赢得概率计算出来,这样就可以计算了,假设方程dp[i][j]代表 A赢了j次B赢了i次的概率,然后状态转移就比较简单了 :dp原创 2014-11-08 22:50:40 · 783 阅读 · 0 评论 -
Codeforces Round #228 (Div. 1) C 贪心
嘎嘎,今天被一些事耽误了,但是还是A了几个题目,这道题还不错题目链接:题意:两个人玩游戏,有N堆纸牌,纸牌上有数字,A每次只能取N堆中的 其中一个的顶部的 纸牌,B只能取N堆中的其中一个底部 的纸牌,A,B都想让自己取的和最大,问最后比分为多少画了一下,如果某一堆里的 纸牌数量为偶数,发现其实是两个人各分一半,因为如果对方想从这里拿走本来属于自己那半部分的 较大的牌,自原创 2014-11-12 23:20:56 · 817 阅读 · 0 评论 -
Codeforces Round #105 (Div. 2) D 概率DP
题目呃 琢磨了半天还是琢磨出来了,题意有些模糊哈,有w个白色物品,b个黑色物品,A,B轮着抽,A先开始,谁先抽到白色谁赢,若最终都没有抽到白色 则算B赢,抽出来的物品不会放回去,B抽完以后 物品还会有一个额外产生丢失,问A赢的概率为多少依旧是以目标状态为边界,当前状态到目标状态所需要的概率为 方程dp[i][j] 代表当前轮到A抽的时候,还有i个白色的j个黑色的A赢的概率为多少则当原创 2014-11-16 21:20:42 · 837 阅读 · 0 评论 -
CodeForces 407A Triangle
首先要求在平面内找到一个直角三角形,两个边长分别为a,b,并且三条边都不得与二维坐标轴的 平行,且点都在整数点上,首先这个三角形若是存在的话,那么它肯定可以在这个平面上平移的,那么我们把它给移到一二象限,然后一个点固定在(0,0)点,这样另外两个点看一下 a,b,的范围,那么另外两个点无非在 一二两个象限内以(0,0)为端点的 边长为1000的正方形内,在这两个正方形内 枚举出所有符合的点,分在两原创 2014-10-30 15:49:51 · 782 阅读 · 0 评论 -
Codeforces Round #226 (Div. 2) C 数论
题目:CF机子真心强大啊,这样才跑了600ms,给了你n个数的序列,然后m次询问,每次询问求出序列中每个数是 区间[a,b]内的 几个素数的倍数统计一下,然后对于个数求和,看了题目下面的hint很易懂,然后看到a,b的范围有些大哈,2*10^9,不知道怎么处理,但是后来发现,序列中的数 最大为10^7,所以就算a,b,再大也无所谓的,大于序列中的最大数的部分的素数,序列中不会有任何数 是它倍数原创 2014-11-17 22:45:37 · 791 阅读 · 0 评论 -
CodeForces 398A Cards 贪心 暴力 瞎搞
搞了一晚上了快,各种YY乱搞啊,终于过了,一开始YY的都是错的,觉得 这道题目a,b的范围都是10^5,那就暴力枚举b被分成了几份,然后再继续YY,只用一个o去分隔x,这样最后剩下的o再集中在一起,也就是x的份数总是比o的份数多一份,也就是尽可能把x分开,尽可能把o集中在一块,前面都把x分开了,一个o分开两份x,后面还能有一大堆的o在一起,这样就满足了,然后又出错了,因为分成几份,有余数的,比如b原创 2014-11-04 23:15:16 · 873 阅读 · 0 评论 -
CodeForces 398B 概率DP 记忆化搜索
题目:http://codeforces.com/contest/398/problem/B有点似曾相识的感觉,记忆中上次那个跟这个相似的 我是用了 暴力搜索过掉的,今天这个肯定不行了,dp方程想了很久也没有想出来,有点无从下手的感觉,最后还是尝试了一下记忆化搜索,以dp[0][0]为边界,dp[x][y]代表当前有x行y列没有彩色的 瓷砖,搜索起来思路还是很清晰的,可惜最后那个 算期原创 2014-11-05 19:59:52 · 898 阅读 · 0 评论 -
CodeForces 377B 优先队列 + 二分
题目:呵呵,这破题目搞了我两个小时,首先题意就有点怕怕的,n个人,具有解决bug的能力,一天只能解决一个,m个bug,bug具有一个难度,只有某个人能力大于等于这个难度才可以解决,请n个人解决一个问题,每个人都要拿钞票的,问不超过s元 的情况下 最快的解决办法输出每个bug由哪个人解决的方案先考虑了DP,发现不行,后来就觉得是贪心了,那么就跟优先队列联系上了,把bug的难度 跟人的 解原创 2014-11-26 21:31:13 · 918 阅读 · 0 评论 -
Codeforces Round #225 (Div. 1) C 树状数组 || 线段树
看到这题很开心啊,有印象跟以前做过的很像,貌似最近就做过一个,以时间戳为区间来建立树状数组,然后一开始我以为题意是,给x点加val,它以下的所有节点都加-val;所以一开始就以 加 和 减 建立了两个树状数组,最后 减去就是答案,写完发现跟案例对不上啊,读了题目也没发现读错了,对于那句话 我理解错了,后来看了 这个:http://blog.youkuaiyun.com/keshuai19940722/ar原创 2014-11-22 21:40:51 · 871 阅读 · 0 评论 -
CodeForces 374C 记忆化搜索
题目题意:Inna喜欢Dima,所以他希望在一张n * m的 每个单元格印有'D'或者'I'或者‘M’或者‘A’ 的桌子上 尽量多的走出 某个路径 中包含DIMA 这个单词数量最多,必须从'D'开始走,并且'D'只能到'I',然后‘I’只能到'M',然后‘M’只能到‘A’,然后'A'只能到'D',这样走,若走不出DIMA这个单词 输出 poor dima若存在环的话 输出原创 2014-11-27 23:41:43 · 1195 阅读 · 0 评论 -
CodeForces 396A 数论 组合数学
好久没做数论的东西了,一个获取素数的预处理跟素因子分解写错了,哭瞎了,呵呵,首先ai最大值为10^9,n为500,最坏的情况 m最大值为500个10^9相乘,肯定不能获取m了,首选每一个ai肯定是m的一个因子,然后能分解就把ai给分解素因子,这样全部的ai都分解了 就能得到m的 所有素因子 以及 所有素因子的个数,题目求的 是n个因子的 不同序列的个数,所以每次 只能选出n个因子,这n个因子原创 2014-11-06 22:08:36 · 999 阅读 · 0 评论 -
Codeforces Round #220 (Div. 2) D 树状数组 && 二分
/*题目*/题意:给了n,m,然后一个包含m个数的数组nnum,数组默认从小到大排序,然后是 n个操作,输入一个数x,若x为0,把0加到这个字符串的末尾,若x为1,把1加到这个字符串的末尾,若x为-1,那么把字符串里的 下标 与 nnum数组里的元素相等的 给删除,字符串一开始是空的,问你最后字符串里有什么,若为空 就输出 POOR STACK这题目看这操作一般都很容易联想到线段原创 2014-11-29 20:11:32 · 693 阅读 · 0 评论 -
CodeForces 372B 脑洞大开的DP递推
题目:做了两个多小时,脑洞大开,给了一个01矩阵,求以a,b,为左上角,c,d为右下角的矩阵内有多少包含部分全为0的子矩阵对于这道题目,一开始就想到了DP递推,感觉而已,虽然准,可是做不出啊,想好了递推式子可是细节部分没办法去处理。看了CF上的题解,顿时脑洞大开,这个做法真的是太厉害了,这方法代码简洁明了,同时也提醒到了我,在方程假设出来后,对于转移的细节处理,其实一开始我想到过这个递原创 2014-12-03 23:39:48 · 917 阅读 · 0 评论 -
CodeForces 475D CGCDSSQ RMQ
通过这道题目还是学到了不少东西的,当时刚拿到这个题目的时候时间已经不多了,因为前面有个C坑到了,看了个大概,然后就往线段树和树状数组方面去想了,对于gcd的区间求一个前缀,再搞一个后缀 瞎弄弄,后来发现错了,题目求的是区间个数。。。又浪费了一段时间,然后回头再看看,大致就想到了暴力枚举,n是10^5,大不了离线先暴力的高出答案,想到一般发现 若假定一个询问输入的数 为 X,那么另一个 能够 y原创 2015-04-01 19:48:22 · 803 阅读 · 0 评论 -
Codeforces Round #245 (Div. 1)B 递推DP
1000 * 1000的图,交点就一个,而且如何相交于一点 画一画就会发现就两种情况,所以首先想到的是可以暴力枚举交点,然后由交点往前推,相交过后两个人继续朝自己目的地前进,所以可以先 暴力枚举 并 递推出每一个点 到这个图的 四个顶点的 最大值,然后根据相交的两种情况取最优的一个即可int mp[1000 + 55][1000 + 55];int dp1[1000 + 55][原创 2014-08-29 18:36:30 · 717 阅读 · 0 评论 -
Codeforces Round #250 (Div. 1) D 线段树
看看type = 2的操作,对于区间[l,r]内的元素对x取模,由于取模肯定不能和取模,所以只能每个元素取模,看上去不是区间更新,但是仔细一看,若区间[l,r]内所有的元素都小于x,那么这一区间不需要管,所以还是存在区间整段操作,所以需要lazy,这里也算是一个剪枝了,剩下的就是type = 3的 单点更新,还有type = 1的区间求和,整体操作不难int n,m;ll nnum原创 2014-09-02 21:39:48 · 968 阅读 · 0 评论 -
Codeforces Round #261 (Div. 2) D 树状数组应用
看着题意:[1,i]中等于a[i]的个数要大于[,jn]中等于a[j]的个数 且iint n;int aa[1000000 + 55];int bb[1000000 + 55];int c[1000000 + 55];map mp;ll lowbit(ll x) { return x&(-x);}void add(int i,int val) { while原创 2014-08-16 20:36:55 · 904 阅读 · 0 评论 -
Codeforces Round #252 D 置换群的简单应用
题目:http://codeforces.com/contest/441/problem/D 对于这道题目,也只能用 长知识 来安慰自己了,数学知识面有点狭窄,一开始在往逆序数方面想,发现不行,后来又强行模拟去搞,发现有漏的情况,后来看了 巨巨博客发现了新知识推荐题解:http://www.cnblogs.com/xiaohongmao/p/3777794.html原创 2014-08-01 21:30:14 · 859 阅读 · 0 评论 -
Codeforces Round #251 (Div. 2) D 二分
题目:http://codeforces.com/contest/439/problem/D是个不错的题目,首先多画几个不难发现,若要满足题目条件有可能 a数组的最小值要不断增大,也有可能b数组的最大值不断减小,一开始直接用了优先队列,发现了不对的地方,因为没一次 有两个情况 要么a加要么b减,所以不能直接来,多画几个不难发现,我们需要找到一个值 x是的 a中所有元素都大于等于x,而b原创 2014-08-03 21:08:20 · 707 阅读 · 0 评论 -
CodeForces 449C Jzzhu and Apples 数学+素数
这道题目晚上本来就花了很多把都××了,着实觉得自己思路没错啊,回顾一下思路,给你n个数,分成两两组合一对,分成最多组如何分,但是组合的两个数 不能互素,所以呢 偶数肯定是好的了,所以先放着,先把素数给搞定,10^5所以枚举所有包含该素数因子的数,如果刚好分组则最好,不然的话其中有偶数的踢掉一个给下面的偶数处理部分,最后再处理偶数的部分,这样肯定满足组数最多,完全没有问题,后来方法确实是没问题啊,只原创 2014-07-20 21:31:34 · 945 阅读 · 0 评论 -
Codeforces 448E Divisors
数学型的题目吧,一开始太过于想去构造,发现不行,现在一直忙着补题,终于补到了这道,特意去看了后面很大的案例,发现了后面全是1,想想应该是数学思维型题目,对于1肯定要特殊处理,而且 在K超过 100000的情况下肯定全为1,因为每一次 k从0开始 k若比原来大1的话,肯定答案中会比原来多一个1,所以10^5那肯定就有10^5个1 了,若k为0肯定就是n本身了,剩下的部分 对于一开始就把n给分解,当然原创 2014-07-22 22:32:42 · 1137 阅读 · 0 评论 -
Codeforces Round #253 DIV1 C 贪心
http://codeforces.com/contest/442/problem/C题意很easy,基本上肯定有坑坑洼洼的样子,看题目案例,从第三个跟第二个没有凹的案例来看的话,多写几个以及多画画过程稍微推一下就会发现,除了最大的两个数以外都可以得到,然后就是凹的情况了,凹的情况肯定是唯一的,把中间的数除去得到一个值,但是凹凸有结合该怎么办,猜一把先把凹的单独一个个给解决了,产生没有凹的序列原创 2014-07-30 15:15:59 · 718 阅读 · 0 评论 -
Codeforces 223C Partial Sums 数论+组合数学
题意很简单,求不是那么好求的,k很大 要操作很多次,所以不可能直接来的,印象中解决操作比较多无非线段树 循环节 矩阵 组合数等等吧,这道题目 也就只能多画画什么 的了 就以第一个案例为主吧 ,3 1 2 3k我们依据画的次数来自己定好了下面的每个数表示这个位置的 数由最初的 数组num[]中多少个数加起来得到的当k为0的时候呢,就是1 1 1k为1的时候呢1 2原创 2014-07-23 22:15:26 · 1340 阅读 · 0 评论 -
Code Forces 414B 挺不错的递推动规
http://codeforces.com/problemset/problem/414/B题目挺不错的,留个纪念,活动脑筋不错的题目#include#include#include#include#include#include#include#include#include#include#include#include#include#de原创 2014-07-15 21:05:57 · 763 阅读 · 0 评论 -
Codeforces Round #250 (Div. 1) B 并查集
坑!神坑!深坑!,WA了几十把,最终答案 (ans * 2)/(n * 1.0 * (n - 1)) 要是写成(ans * 2)/(n *(n - 1)*1.0)就是WA,不明白为啥,愤怒的我 全改成double就可以了,若前面变量用了int的 答案必须是前一种写法,题目不是特别难,没啥思路画一画就有思路了,10^5的n去扫肯定是要超时的,那就想想一次性的10^5,发想通过m是可以的,建边,原创 2014-08-18 15:08:27 · 809 阅读 · 0 评论 -
Code Forces 448C Painting Fence 贪心递归
补题咯,最近好多题要补啊,各种比赛被虐,来不及补题了都,这题 是长记性的题目,不算难吧,比较灵活考基本功的,看题目每次大家都具有的可以先去掉,然后分段一层一层的处理,这个贪心思想画一画就能够发现了,接下来就是怎么应用了,直接用深搜递归就可以了,当时写错了,还是漏了一些,现在补题才发现,长记性咯http://codeforces.com/contest/448/problem/C原创 2014-07-18 21:09:25 · 875 阅读 · 0 评论 -
CodeForces 283C Coin Troubles 分析+背包思想
很灵活的题目,题意简单,看到又是钱币问题,类似于那种给了一定数目T,有n种钱币,每种的价值,让你组合成总价值为T的方案数,但是加了一些限制条件,那就是某些种类钱币数量必须大于另一些种类的,加了个限制条件 我就脑残了,唉智商看来是真不够啊 ,后来看了别人的分析倘若种类a的钱币数量必须要大于种类b的数量,那么如果我要 去 m张b种类的钱币,其实同时也是相当于已经取了m张a种类的,因为a必须大于b的原创 2014-07-28 20:30:39 · 899 阅读 · 0 评论 -
Coder-Strike 2014 - Round2 D 2048 (DP 记忆化搜索)
参考了 http://blog.youkuaiyun.com/keshuai19940722/article/details/24723417 他的开头的一点小分析,当然还有题意啦,难得看到CF的题目有点长,看了好久加YY才弄出题意,但是还是没有推出来状态转移方程,因为题目说向开头移动,我倒着推没有推出来,于是 正着尝试了一把 记忆化搜索,一路搜索过来遇到的只有0,2,4而已,扫到当前一格 还得考虑当原创 2014-09-10 18:53:13 · 833 阅读 · 0 评论 -
POJ3254 Corn Fields 状态压缩DP
看了这位博主的经历http://blog.youkuaiyun.com/lenleaves/article/details/7972224感觉有些差不多,因为CF比赛状压被虐 所以开始刷刷题,从最简单的开始复习吧,细节处理很差,唉DP方程跟一般的有些不一样,dp[i][j]表示在状态i的情况下 到第j行的摆放有多少种,然后总数就是 dp[i][n - 1]求和,以第一行为边界往下推,第一行原创 2014-08-13 22:54:30 · 842 阅读 · 0 评论 -
Codeforces Round #224 (Div. 2) B 数学推理
挺有意思的一道题目,一开始发现了循环节,做了一下,发现许多小地方要补,比较繁琐,做了几个小时的无用功吧,但是循环节肯定可以只是我写搓了,后来又推了公式,发现可以的首先当b=x的时候,这个时候只有c--,但是答案要求的 是多少次,在b=x,所以第二部分对答案有影响,但是 设方程的话 就不需要多设一个未知数,因为 第一部分肯定 是要进行(c - a)次才行推一下b第一步: b1 =原创 2014-08-11 14:40:40 · 781 阅读 · 0 评论 -
CodeForces Round#229 DIV2 C 递推DP
对这道题目也只好说呵呵了,没注意k的范围最大才10,所以昨晚纠结了很久,没什么好的方法来处理,后来无奈想去翻翻题解,发现人家开头就来了句,因为k的范围比较小 所以.........我只好暂停马上回头看看题目,是的,k比较小所以完全可以先在询问前预处理DP一遍,DP就比较清晰了,dp[i][j] (i>=0 && i=i && j int n,k,w;char s[100000原创 2014-08-13 15:16:26 · 680 阅读 · 0 评论 -
Codeforces Round #224 (Div. 2) D 暴力搜索加记忆化
题意读了半年,英语太渣,题意是摆两个棋子在棋盘上作为起点,但是起点不能在#上,然后按照图的指示开始走, 右 ^上 v下,走的时候只能按照图的指示走,如果前方是 #的话,可以走进去,但是 走进去之后便不能再走了,走的途中两个棋子不能相碰,但是最终都走到同一个#里是没事的,并且若是能走 无限步的话 输出 -1, 例如 > 一开始被输出-1给困住了,因为除了 .> <这样以外 还可以刚原创 2014-08-11 21:13:47 · 879 阅读 · 0 评论 -
Codeforces Round #221 (Div. 2) D
有点郁闷的题目,给了2000ms,但是n,m的范围已经是5000了,5000 * 5000一般在别的OJ已经是超了2000ms,一开始不敢敲,看了下别人有n*m的潜逃循环,原来CF的机子如此的强大,一开始题意没看清错了,原来任意行可以交换,列不行那就先dp出 每一行的 每一个位置包括它本身以及前面的连续出现1的长度,然后再对列进行处理,因为列是不能变的,所以对应列是固定的,那么就对列枚举,然后原创 2014-08-15 14:40:33 · 665 阅读 · 0 评论 -
CodeForces 471C MUH and House of Cards
看题目的Hint 图形就知道题意了,对着图形,稍微观察一下就会发现,每一层需要的卡牌数目为 2 * n + (n - 1)个,然后大致就有个思路,暴力枚举,但是仅仅这样没法子枚举,这个公式 只代表其中一层,不可能对每一层都枚举吧,可以化简一下 公式就是 3 * n - 1,这样就会发现 每次差1就是3的倍数了,然后每一层都差1,如果有i层的话,那么其实就是差了i,这样就很容易想到了,假设共有卡牌原创 2015-03-18 21:52:42 · 764 阅读 · 0 评论