ACM竞赛
起风了_唯有努力生存
继续加油
展开
-
Discovering Gold (概率dp(基础))
【题目来源】:https://vjudge.net/problem/LightOJ-1030 【题意】 有一个1*n的图形,每一个方格编号从1~n,有各自的金钱的数量,起点为1,给出一个六面的骰子,摇动骰子得到点数x,向右移动x步,得到相应的金钱,若是移动x步超过了n,则需要重新摇动,直到不大于n为止。 问:从方格1开始摇动骰子,到达方格n的金钱的期望是多少。 【思路】 推荐一篇博客:ht原创 2017-06-11 21:06:51 · 504 阅读 · 0 评论 -
A Dangerous Maze(概率与期望(求时间的期望))
【题目来源】:https://cn.vjudge.net/problem/LightOJ-1027 【题意】 处在一个迷宫里,面前有n扇门,每一扇都可能带离你走出迷宫,若能带离,那么会花费一个时间值,表示为正值, 若不能带离,那就是返回到初始的位置,也会花费一个时间,表示为负值,问,若是能够走出迷宫,需要花费时间的期望值。 【思路】 这是我做的第一道概率与期望题,起初感觉并不是多好理解,但是原创 2017-06-11 12:56:29 · 1001 阅读 · 0 评论 -
Count the string (kmp的next数组运用)
【题目来源】:https://cn.vjudge.net/problem/HDU-3336 【题意】 给出一个字符串,假设这个字符串长度为n,那么这个字符串的所有前缀字符串在原字符出现次数是多少。 举个例子: s: “abab” The prefixes are: “a”, “ab”, “aba”, “abab” res=2+2+1+1=6。 【思路】 起初并没有想到用next数组原创 2017-06-09 18:58:19 · 246 阅读 · 0 评论 -
Simpsons’ Hidden Talents (kmp运行题)
【题目来源】:https://vjudge.net/problem/HDU-2594 【题意】 求第一个字符串的前缀和第二个字符串的后缀的字符最大匹配量。 如: riemann marjorie 得:rie 字符数量是3、 【思路】 起初以为这道题依旧是有关于next数组的题,然后就有了一系列的代码应运而生。自己试的样例都过了,wrong的一塌糊涂。 额,初学者的我只知道kmp原创 2017-06-09 09:51:00 · 500 阅读 · 0 评论 -
Power Strings (kmp中next数组的运用)
【题目来源】:https://vjudge.net/problem/POJ-2406 【题意】 给出一个字符串,问其最小循环周期是多少。 【思路】 利用kmp中next数组的特殊性,也就是若字符串长度为len,则在1~len里,假设i在1~n,那么假设长度为i,那么其的最小循环周期是i-next[i]。 可以自行证明。 【代码】#include<set>#include<map>#i原创 2017-06-07 17:00:00 · 299 阅读 · 0 评论 -
The Minimum Length (kmp中next数组的运用)
【题目来源】:https://vjudge.net/problem/HUST-1010 【题意】 给出一段字符串,问最小周期是多少。。 【思路】 KMP中next数组裸题,对于next数组,当前长度减去当前的next数值等于最小周期。 【代码】#include<set>#include<map>#include<stack>#include<cmath>#include<queue原创 2017-06-07 11:02:37 · 301 阅读 · 0 评论 -
Period(kmp中next数组的运用)
【题目来源】:https://vjudge.net/problem/HDU-1358 【题意】 给出一个长度为n的字符串,问,在字符1~n个里,前缀是周期串的是哪个?输出i,并且输出这i个字符里最小周期的个数k,并且,k不能是1。 举个例子说明一下: abcabcabcabc 那么输出: 6 2 9 3 12 4。 先是字符串:abcabc,是周期串,最小周期是3,k是2(也就是有原创 2017-06-07 10:16:01 · 597 阅读 · 1 评论 -
Cyclic Nacklace (kmp中next数组的运用)
【题目来源】:https://vjudge.net/problem/HDU-3746 【题意】 题意是给出一个字符串,要求变成一个周期串,最少需要几个字符? 【思路】 也不知道怎地,想到了next数组,数组里记录的数字可以看成是一个周期。 举例说明: 字符串abcabcabc next数组:0 0 0 1 2 3 4 5 6 而字符串abcabc next数组:0 0 0 1 2原创 2017-06-07 08:29:24 · 247 阅读 · 0 评论 -
剪花布条 (KMP算法(模板))
【题目来源】:https://vjudge.net/problem/HDU-2087 【题意】 问一个字符串在另外一个字符串里出现过几次,出现一次减去一次。 【思路】 本来想着不用kmp,但是觉得kmp需要练练手,索性用上了。 然后呢,相对于kmp模板来说只是改动了一点东西,本来kmp就是依照模板来敲的,但是题目要的结果不一样,就手动模拟了一下匹配的过程,然后就找到了要改的地方,只需要把每原创 2017-06-05 20:37:07 · 645 阅读 · 0 评论 -
Number Sequence (KMP算法(模板))
【题目来源】:https://vjudge.net/problem/HDU-1711 【题意】 给出两列数字,问第二个序列是否存在于第一个序列中,若存在,输出最小的左端点,不存在,输出-1 。 【思路】 字符串匹配问题。这几天会把这个专题做一下。。这是第一题。。。 起初学习KMP的时候,是在大一过完年刚来的时候,那时候感觉可以学的,但是学长的经验告诉我们,不适合我们学。 但是,现在的我觉原创 2017-06-05 11:26:35 · 417 阅读 · 0 评论 -
Kiki & Little Kiki 2(矩阵快速幂(推理))
【题目来源】:https://vjudge.net/problem/HDU-2276 【题意】 给出编号为0-n-1的灯的状态,0代表熄灭,1代表已开,并且这些灯有序围成一个圆,也就是说0号的左边是n-1号。 那么,给定一个游戏规则,每次操作之后,如果当前灯的左边灯状态是1,那么当前灯就要改变状态,如果是1,就要变成0,如果是0,反之。 那么经过m次操作之后,输出这些灯的状态。 分析样例:原创 2017-06-02 17:08:33 · 406 阅读 · 1 评论 -
Chinese Rings (矩阵快速幂(推理))
【题目来源】:https://vjudge.net/problem/HDU-2842 【题意】 九连环,环可以上下移动。游戏规则是想要取下第n个环,那么第n-1个环必须在上面,前n-2个环必须在上面。 一共有n个环,取完最少需要多少步骤。 【思路】 首先呢,要找到递推关系式。 假设我们要取的是n个,需要最少步骤F[n]那么要使得前n-2个往下移动,需要F[n-2]个,再去掉第n个,恢复原原创 2017-05-31 19:04:03 · 416 阅读 · 0 评论 -
Plant(矩阵快速幂(推理))
【题目来源】:https://vjudge.net/problem/CodeForces-185A 【题意】 每一个小三角形每次都会变成四个小小三角形,分别有3个朝上的,1个朝下的,问,第n次的图形里有多少个朝上的三角形。 【思路】 第一开始忽略了图形上的规律,妄图直接找数字上的关系,结果想当然的失败了。 然后呢,换了方向,发现,一个三角形总会分成四个小小三角形,具体来说,一个朝上的三角形原创 2017-05-31 10:00:15 · 412 阅读 · 0 评论 -
Problem of Precision(矩阵快速幂(推理))
【题目来源】:https://vjudge.net/problem/HDU-2256 【题意】 题意不再解释,相必都可以看得懂。。 【思路】 起初,我能想到的是找前一项和后一项的关系,直接通过矩阵快速幂求出来,我找到的关系是:前一项的a到下一项就变成了a²+b²,而b变成了2ab,就这样想了想,写出了关系矩阵: 接下来要考虑double的事,上网查了下double怎么取余,答案是增大一原创 2017-05-31 08:21:26 · 384 阅读 · 0 评论 -
Queuing(矩阵快速幂(递推and模板))
【题目来源】:https://vjudge.net/problem/HDU-2604 【题意】 f,m分别是female与male的缩写,假设有一个队列里面是这些字母缩写,长度为L,那么共有2^L种,如果含有fmf或者fff这种子队列的队列被称为0队列,其余的被称为E队列,问,长度为k的有多少种E队列。 【思路】 先推出前几项,得到: f[0]=0,f[1]=2,f[2]=4,f[3]=原创 2017-05-30 18:20:05 · 382 阅读 · 0 评论 -
Tr A (矩阵快速幂(模板))
【题目来源】:https://vjudge.net/problem/HDU-1575 【题意】 中问题意不在解释。 【思路】 很水的一个快速幂题,而且又是给出了一个矩阵,所以想到矩阵快速幂。。 然而,并没有在敲完代码后直接过,因为在代码里我用到了两个矩阵:ans和base,他们俩的含义就和快速幂的一样,但是呢,本题是T组输入,然后我把他们俩用结构体定义在了外面,base是一直在更新(因为是原创 2017-05-30 14:16:56 · 374 阅读 · 0 评论 -
A Simple Math Problem(矩阵快速幂(模板))
【题目来源】:https://vjudge.net/problem/HDU-1757 【题意】 求解数k对应的f(k)%m,关系式如题面所示。 【思路】 既然给出了递推式,又因为k的取值上限相当大,所以使用矩阵快速幂来实现f(k)的求解。这个时候就可以用到系数矩阵来表示题面给出的关系式。 什么是系数矩阵呢?举个例子(从麻省理工学院线性代数视频上看的): 假如有三个未知数:x,y,z;原创 2017-05-30 13:34:08 · 731 阅读 · 0 评论 -
读书好多读书读好书(技巧题,水)
题目来源:https://www.jisuanke.com/contest/753 【题意、代码】 给出一个时间t,有n本书,各自拥有一个时间耗费值,并且,如果,选定一本i书开始看,那么之后依次看i+1,i+2。。。 问有限的时间内最多看几本书。 思路就是预处理前缀和,从最开始开始遍历,依次把前缀和加上t,二分查找他们的和处在前几项和,依次更新maxx值。 【代码】#include<set原创 2017-05-27 17:39:11 · 502 阅读 · 0 评论 -
偶数加成记(水,sort)
题目来源:https://www.jisuanke.com/contest/753 【题意、思路】 中文题面不再解释。 用sum统计一下所有数的和,如果是偶数,直接输出,如果是奇数,对数组进行排序,选出最小的奇数,减去就可以了。 【代码】#include<set>#include<map>#include<stack>#include<cmath>#include<queue>#i原创 2017-05-27 17:34:15 · 439 阅读 · 0 评论 -
矩阵快速幂(裸,模板)
题目来源:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1137 【题意】 中文题意不在叙述,只是让求一个矩阵的乘法而已。 【思路】 终于可以做矩阵快速幂的题了,这个专题一直被我拖到现在,作为一个弱弱内心无比难受,终于可以把它学了,十分开心。 此题非常裸,直接重载一个乘号运算符就可以了,只不过矩阵乘法要知道怎么原创 2017-05-26 20:11:36 · 606 阅读 · 0 评论 -
Eeny Meeny Moo(约瑟夫环(暴力模拟(打表)))
题目来源:https://vjudge.net/problem/POJ-2244 【题意】 从第一个开始删去数字,问求得一个最小的m使得每次跳过m个,最后删去的数字是2。 【思路】 受了上一题的启发,依旧暴力模拟打表,最外层for循环循环数字的个数,而第二层for循环每次跳过的个数m,从2开始,因为1肯定是不可行的。然后里面的pre,next编号运算了。 模拟一下1 2 3 4 5 。原创 2017-05-26 14:26:02 · 485 阅读 · 0 评论 -
Joseph (约瑟夫环(打表))
题目来源:https://vjudge.net/problem/POJ-1012 【题意】 求一个最小的ans,使得,这个约瑟夫环每次跳过ans个元素时,会先删除掉后k个数字,比如:1 2 3 4 5 6,要求先删除4,5,6个数字后才能删除前面的数字,求出最小的ans值。 【思路】 首先考虑数据范围,0#include <iostream>#include <cstdio>using原创 2017-05-25 17:05:15 · 598 阅读 · 0 评论 -
In Danger(二分+打表+找规律(约瑟夫环))
题目来源:https://vjudge.net/problem/POJ-1781 【题意、思路】 因为这道题是在约瑟夫环题集出现的,但是刚写过一个裸模板题,发现这个数据最大是99000000,如果用vector模拟过程的话,肯定会超时,所以就打表找了下规律,然后打了1~99的表,输出的结果是(就是最终结果): 1 1 3 1 3 5 7 1 3 5 7 9 11 13原创 2017-05-24 19:48:54 · 450 阅读 · 0 评论 -
And Then There Was One (约瑟夫环(裸0.0))
题目来源:https://vjudge.net/problem/POJ-3517 【题意】 简单的约瑟夫环模板。 从数字m开始,往后数k个数字,删除,直到剩下一个数字,输出。 【思路】 用vector容器装下1~n所有数,每循环一次便删去一个,直到容器内只剩一个元素,输出。 【代码】#include<set>#include<map>#include<stack>#include<原创 2017-05-24 11:24:22 · 285 阅读 · 0 评论 -
Strange Way to Express Integers (模线性方程组(扩展欧几里得))
题目来源:https://vjudge.net/problem/POJ-2891 【题意】 给出两个a,r数组,求出一个尽可能小的数s保证对于每一组a[i],r[i],都符合s%a==r。 【思路】 模线性方程组模板题。 列式解释: S%a[1]==r[1]. 1 S%a[2]==r[2]. 2 式子1中S的通解是S=r[1]+k*a[1](k属于0,1,2…)原创 2017-05-23 15:48:08 · 401 阅读 · 0 评论 -
The Balance(扩展欧几里得模板题)
【题目来源】:https://vjudge.net/problem/POJ-2142 【题意】 求解ax+by=c的关于x,y的和最小的一组解。 【思路】 解决二元一次方程组,不多说,直接扩展欧几里得模板套上。 然后,题目要求求出的x+y的值(绝对值)最小,所以先求出x0,y0, 推出第一个x1(最小非负数),通过关系式来求解相应的y1。 推出第一个y2(最小非负数),通过关系式来求解原创 2017-05-23 12:41:11 · 806 阅读 · 0 评论 -
青蛙的约会(扩展欧几里得解同余方程)
题目来源:http://poj.org/problem?id=1061 【题意】 大致题意就是解一个方程:设次数为t,则:x+mt-y-nt=kL,化简一下就是:(n-m)t+kL=x-y;其中t,和k是未知数,那么所求结果就是最小的t。 根据扩展欧几里得符合贝祖公式可得(是不是很高大上,,hh,弱弱就不推公式了哈): ax+by==gcd(a,b)(其中a,b已知,x,y未知),也就是说a原创 2017-05-22 17:03:57 · 399 阅读 · 3 评论 -
Trailing Zeroes (III) (数论(二分查找值,规律))
题目来源:https://vjudge.net/problem/LightOJ-1138 【题意】 求一个尽可能小的数n,其阶乘的后面有q个0。 【思路】 一开始推得数学公式,然后想错了,,,错了几发。。也是蛮尴尬的。。 然后,找了小伙伴一起讨论了下,答案就出来了。。。 思路是这样的,若是满足一个数尽可能小,并且阶乘后面还有q个0,那么这个数一定是5的倍数,因为只有2*5才有0。。。根据原创 2017-05-19 21:19:24 · 512 阅读 · 0 评论 -
Help Hanzo (数论(素数(打表进阶(任意段区域打表)))))
题目来源:https://vjudge.net/problem/LightOJ-1197 【题意】 求a,b区间里的素数个数。 【思路】 第一时间,想到打表,心想到又遇见一道水题,,然后,很自然的去看数据范围,mmp,极限值,傻眼了。。。同时又看到b-a<=100000,一般这样的题,都是从小范围入手,于是就开始了探索。 结果,还是不会写,,于是就翻了博客,看了一半,迷迷糊糊,心想着学长的原创 2017-05-19 17:49:17 · 541 阅读 · 0 评论 -
Fantasy of a Summation(找规律,水)
题目来源:https://vjudge.net/problem/LightOJ-1213 【题意】 根据题面上的代码可以得知题意,他的意思就是让求一个类似于深搜的一个简单模拟,反正,,举个例子(语言能力表达不强)。。。 第二组样例: 2 3 32000,数组是1 2,那么题意的意思就是 1+1+1 1+1+2 1+2+1 1+2+2 2+1+1 2+1+2 2+2+1 2+2+原创 2017-05-19 09:36:42 · 331 阅读 · 0 评论 -
Large Division(大数取余)
题目来源:https://vjudge.net/problem/LightOJ-1214 【题意】 给出有符号数字a,和有符号数字b,判断a是否能被b整除。 【思路】 差点被这道题迷糊了,一开始想着用唯一分解定理来计算各自的因子数,然后观察a的因子数是否大于b的数量(这个方法肯定能行得通,就是太麻烦),所以我想着直接暴力,虽然暴力并不会有什么提高吧。 因为乘除与符号无关,所以直接忽略负号,原创 2017-05-17 16:43:39 · 297 阅读 · 0 评论 -
Mysterious Bacteria (素数筛法+唯一分解定理+gcd | |暴力)
题目来源:https://vjudge.net/problem/LightOJ-1220 【题意】 给出一个有符号整数x,给出式子x=b^p,求最大的p。 【思路】 最开始的方法就是暴力枚举次幂,用pow函数比如pow(n*1.0,1.0/2.0)就表示为n开2次方,然后得到一个数,取整,在乘以2次,得到ans,观察ans是否与n相等,若相等,说明可以作为一个最优解(为什么是最优解呢?因为我原创 2017-05-17 15:17:20 · 421 阅读 · 0 评论 -
Harmonic Number (II)(模拟找规律)
题目来源:https://cn.vjudge.net/problem/LightOJ-1245 【题意】 求前n项和,每一项是n/i; 【思路】 分解单个数,可以找到规律,举例说明。 当n为10时: i ___1 2 3 4 5 6 7 8 9 10 n/i 10 5 3 2 2 1 1 1 1 1 当n为12时: i ___1 2 3原创 2017-05-16 19:43:08 · 657 阅读 · 1 评论 -
Harmonic Number (数组打表(跳跃打表))
题目来源:https://cn.vjudge.net/problem/LightOJ-1234 【题意】 求前n项的倒数之和。 【思路】 暴力打表,但是是跳跃式(自创汉字组合)的数组打表,每隔一百个数字存一下。 【代码】#include<set>#include<map>#include<stack>#include<cmath>#include<queue>#include<c原创 2017-05-16 16:43:03 · 415 阅读 · 0 评论 -
Romantic(扩展欧几里得求逆元(裸题))
题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=2669 【题意】 给出两个数a,b,求出使得ax+by=1的x和y的值,其中,x是非负数。 【思路】 用扩展欧几里得求解同余方程,若有解,则函数exgcd返回值应该是1,所以若不是1,输出sorry,是1的话,还要考虑x的值,若是负值,就执行(x%b+b)%b,相应的,(y%a-a)%a。 【代原创 2017-05-16 15:51:47 · 449 阅读 · 0 评论 -
Partial Sum(湘潭邀请赛E题(部分和问题))
题目来源:http://202.197.224.59/OnlineJudge2/index.php/Problem/read/id/1264 【题意】 选定最多m的区间,使区间和最大。但是左右端点不能重复选取。还有一点蛮坑,lld要写成I64d。 【思路】 考虑成前缀和相减的问题,对前缀和进行排序,每次选取左右两边最小和最大各一个,相减,得结果。注意一点,数组从1开始输入,排序从0开始是为了原创 2017-05-15 15:46:37 · 619 阅读 · 2 评论 -
nim博弈(两种比较裸的题对比)
1、【题意】 有n堆水果,两人依次取,每次只能取一堆中的几个或者全部,最后一个去完的为胜。 【思路】 nim裸模板,直接异或就好。 【代码】#include<set>#include<map>#include<stack>#include<cmath>#include<queue>#include<cstdio>#include<string>#include<cstring>原创 2017-05-11 16:50:39 · 661 阅读 · 0 评论 -
NanoApe Loves Sequence Ⅱ(尺取法(技巧))
题目来源:https://vjudge.net/problem/HDU-5806 【题意】 给出一组数列,问此数列含有多少个区间的第k大的值不小于 m。 【思路】 作比赛时,没看懂题意。。。大写的尴尬。 然后强哥说E题可做,尺取法。。不久之前学过,还做了一道题,,,但是忘得是一干二净。 所以便是重新看了下。想了想,这道题的根本只有一点,只有已经统计过的数中有k个数是不小于m的,那么后面再原创 2017-05-11 15:08:30 · 732 阅读 · 0 评论 -
The Super Powers (数论,STL(set去重))
* 题目来源*:https://vjudge.net/problem/UVA-11752 【题意】 没有输入,只有输出。。。奇葩。。。 问:1-2^64-1中,输出每一个超级数(指至少是两个数的幂(大于1)) 【思路】 大佬们说,只有当一个数n可以换成m^x的时候,并且x是合数的时候,才满足超级数的定义,觉得十分有道理,举个例子,当n==16时,可以得到她是4和2的幂。 接着,越界怎么控原创 2017-05-10 16:24:40 · 417 阅读 · 0 评论 -
Farey Sequence(数论,欧拉函数(水))
题目来源:https://vjudge.net/problem/POJ-2478 【题意】 求F[n]的项数,其中,F数组里装的是互质的数。 【思路】 一提到互质,自然而然的想到了欧拉函数,然后,筛法求欧拉函数求前缀和,就过了,但是依旧wa了一发,原因是欧拉函数值得前缀和会超LL。 【代码】#include<map>#include<stack>#include<queue>#inc原创 2017-05-09 17:11:11 · 507 阅读 · 0 评论