自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Crazy

心向大佬,披荆斩棘。

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

原创 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 414

原创 Plant(矩阵快速幂(推理))

【题目来源】:https://vjudge.net/problem/CodeForces-185A 【题意】 每一个小三角形每次都会变成四个小小三角形,分别有3个朝上的,1个朝下的,问,第n次的图形里有多少个朝上的三角形。 【思路】 第一开始忽略了图形上的规律,妄图直接找数字上的关系,结果想当然的失败了。 然后呢,换了方向,发现,一个三角形总会分成四个小小三角形,具体来说,一个朝上的三角形

2017-05-31 10:00:15 405

原创 Problem of Precision(矩阵快速幂(推理))

【题目来源】:https://vjudge.net/problem/HDU-2256 【题意】 题意不再解释,相必都可以看得懂。。 【思路】 起初,我能想到的是找前一项和后一项的关系,直接通过矩阵快速幂求出来,我找到的关系是:前一项的a到下一项就变成了a²+b²,而b变成了2ab,就这样想了想,写出了关系矩阵: 接下来要考虑double的事,上网查了下double怎么取余,答案是增大一

2017-05-31 08:21:26 383

原创 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

原创 Tr A (矩阵快速幂(模板))

【题目来源】:https://vjudge.net/problem/HDU-1575 【题意】 中问题意不在解释。 【思路】 很水的一个快速幂题,而且又是给出了一个矩阵,所以想到矩阵快速幂。。 然而,并没有在敲完代码后直接过,因为在代码里我用到了两个矩阵:ans和base,他们俩的含义就和快速幂的一样,但是呢,本题是T组输入,然后我把他们俩用结构体定义在了外面,base是一直在更新(因为是

2017-05-30 14:16:56 371

原创 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 729

原创 读书好多读书读好书(技巧题,水)

题目来源:https://www.jisuanke.com/contest/753 【题意、代码】 给出一个时间t,有n本书,各自拥有一个时间耗费值,并且,如果,选定一本i书开始看,那么之后依次看i+1,i+2。。。 问有限的时间内最多看几本书。 思路就是预处理前缀和,从最开始开始遍历,依次把前缀和加上t,二分查找他们的和处在前几项和,依次更新maxx值。 【代码】#include<set

2017-05-27 17:39:11 501

原创 偶数加成记(水,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 437

原创 矩阵快速幂(裸,模板)

题目来源:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1137 【题意】 中文题意不在叙述,只是让求一个矩阵的乘法而已。 【思路】 终于可以做矩阵快速幂的题了,这个专题一直被我拖到现在,作为一个弱弱内心无比难受,终于可以把它学了,十分开心。 此题非常裸,直接重载一个乘号运算符就可以了,只不过矩阵乘法要知道怎么

2017-05-26 20:11:36 605

原创 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 484

原创 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 589

原创 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 448

原创 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 284

原创 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 400

原创 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 802

原创 青蛙的约会(扩展欧几里得解同余方程)

题目来源: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 398 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 510

原创 Help Hanzo (数论(素数(打表进阶(任意段区域打表)))))

题目来源:https://vjudge.net/problem/LightOJ-1197 【题意】 求a,b区间里的素数个数。 【思路】 第一时间,想到打表,心想到又遇见一道水题,,然后,很自然的去看数据范围,mmp,极限值,傻眼了。。。同时又看到b-a<=100000,一般这样的题,都是从小范围入手,于是就开始了探索。 结果,还是不会写,,于是就翻了博客,看了一半,迷迷糊糊,心想着学长的

2017-05-19 17:49:17 540

原创 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 329

原创 Large Division(大数取余)

题目来源:https://vjudge.net/problem/LightOJ-1214 【题意】 给出有符号数字a,和有符号数字b,判断a是否能被b整除。 【思路】 差点被这道题迷糊了,一开始想着用唯一分解定理来计算各自的因子数,然后观察a的因子数是否大于b的数量(这个方法肯定能行得通,就是太麻烦),所以我想着直接暴力,虽然暴力并不会有什么提高吧。 因为乘除与符号无关,所以直接忽略负号,

2017-05-17 16:43:39 293

原创 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 420

原创 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 656 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 411

原创 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 448

原创 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 616 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 659

转载 博弈总结

转载自:http://blog.csdn.net/zjqlovelyy/article/details/8507322有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理。下面我们来分析一下要如何才能够取胜。(一)巴什博奕(Ba

2017-05-11 16:31:15 276

原创 NanoApe Loves Sequence Ⅱ(尺取法(技巧))

题目来源:https://vjudge.net/problem/HDU-5806 【题意】 给出一组数列,问此数列含有多少个区间的第k大的值不小于 m。 【思路】 作比赛时,没看懂题意。。。大写的尴尬。 然后强哥说E题可做,尺取法。。不久之前学过,还做了一道题,,,但是忘得是一干二净。 所以便是重新看了下。想了想,这道题的根本只有一点,只有已经统计过的数中有k个数是不小于m的,那么后面再

2017-05-11 15:08:30 731

原创 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 415

原创 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 506

原创 Maximum GCD (暴力枚举+输入技巧)

题目来源:https://vjudge.net/problem/UVA-11827 【题意】 给出一些数,求任意两个数之间的最大公因数的最大值。 【思路】 由于数据比较小,暴力即可。 【代码】#include<map>#include<stack>#include<queue>#include<cstdio>#include<algorithm>#include<cstring>

2017-05-09 16:36:10 672

原创 Primes (素数筛法)

题目来源:https://vjudge.net/problem/HDU-2161 【题意】 判断一个数是否为素数,特别的,题中认为2不是素数。 【思路】 一般的素数筛法进行完之后,在后面加一句赋值语句:vis[2]=1。代表2不是素数。 【代码】#include<map>#include<stack>#include<queue>#include<cstdio>#include<a

2017-05-09 14:54:01 677

原创 GCD - Extreme (II) (数论,欧拉函数)

题目来源:https://vjudge.net/problem/UVA-11426 【题意】 求在1-n之间所有任意两个数的的最大公因数的和。 【思路】 做完这道题,依旧感觉头脑懵懵的,看了好多篇博客方才看懂了这道题的解法,因为之前做过几道数论题,关于素数的比较多,这到题因为最大公因数就自然而然的想到了素数筛法,一直在找所谓的规律。最后终于崩溃了。。。 便搜了博客慰藉我不安的心灵,但是很多

2017-05-09 14:42:13 1186

原创 Pairs Forming LCM (素数,唯一分解定理)

题目来源:https://vjudge.net/problem/LightOJ-1236 【题意】 求a,b的最小公倍数是n的个数。 【思路】 想到了素数,想到了唯一分解定理,但是唯独没有想到最小公倍数的另外一种定义(我也没见过不是):假设有数a,b,他们的最小公倍数的值就等与两着的素因子指数最大的相乘。例如,12与8,12可以拆成2 2 3,而8则是2 2 2,所以里面一共包含了两种素因子

2017-05-09 10:57:08 395

原创 Goldbach`s Conjecture (数论,素数打表)

题目来源:https://vjudge.net/problem/LightOJ-1259 【题意】 问一个大于2的偶数可以由多少组素数和组成。 坑点:素数打表的判断是否为素数的数组一定要是bool型,不然MLE。 【思路】 素数打表,然后判断就可以了。 【代码】#include<map>#include<stack>#include<queue>#include<cstdio>#

2017-05-08 17:54:56 292

原创 Leading and Trailing(数论基础)

题目来源:https://vjudge.net/problem/LightOJ-1282 【题意】 求一个数n的k次方后的前三位与后三位。并且后三位要求控制格式。 【思路】 很早之前的思路是后三位找规律,求周期,前三位用字符串模拟。然后我模拟了好久,,,放弃了,然后就是在数论这套专题里遇见了,上次忘了补题,这次就细心的分析了下,学习了网上的大神代码,结果,大佬们用的是log函数,因为前三位如

2017-05-08 16:08:37 580

原创 Aladdin and the Flying Carpet (算术基本定理)

题目来源:https://vjudge.net/problem/LightOJ-1341 【题意】 给出两个数a,b,问不小于b的因子乘积等于a的有多少组合。 【思路】 起初用sqrt(a)暴力了一发,TLE了,然后再一看,虽然a的范围是10^12把,但是T组数据的T却是4000,4000*1000000,,,不超时能行么。。。默默的鄙视下自己。 然后,另外一种方法就出来了,算术基本定理(

2017-05-05 17:00:06 325

原创 欧拉函数的一些模板+注释

将要学习数论,选择一套题来拓展知识面。机缘巧合之下就理解了埃氏素数筛法,和线性筛法的相似之处,特记下模板以及理解。 简单说一下欧拉函数(来源百度百科):在数论,对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目(φ(1)=1)。比如:φ(10)=4,那么与他互质的数有哪些呢? 1,3,7,9。 而求欧拉函数值有一个通式:φ(x)=x*(1-1/x1)(1-1/x2)… 而这些x1,x2等

2017-05-05 14:25:58 476

原创 Bi-shoe and Phi-shoe (数论(欧拉函数))

题目来源:https://vjudge.net/problem/LightOJ-1370 【题意】 给出一行数,求对应的数的欧拉函数值大于给出的数的数的最小和。 【思路】 因为一些数的欧拉函数值相同,所以题面才会要求求最小和,进而根据欧拉函数的一个性质,φ(n)=n-1,前提是n是素数。假设现在题面给出了一个数x,那么如果x+1是素数,那么最小的值就是x+1,如果不是素数,那就往后找一个最近

2017-05-05 11:00:53 1466

原创 Little Artem and Dance(思路)

题目来源:https://cn.vjudge.net/problem/CodeForces-668B 【题意】 对从1 到 n的递增序列进行两种操作,输出操作之后的序列。 其中第一种操作(代号为1)是,将序列往后推迟x位,第二种(代号为2)操作是将奇数位的数与相邻偶数位的数进行交换。 【思路】 由于数据超级大,所以,不可能进行数组模拟,所以,就要想着找规律。 然后找着找着会发现只要知道1

2017-05-04 17:53:30 364

空空如也

空空如也

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

TA关注的人

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