自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (1)
  • 收藏
  • 关注

原创 HDU 6298(找规律+思维)

题意给一个数正整数 nnn,问是否存在三个数x,y,z,x,y,z,x,y,z, 他们能整除nnn且x+y+z=nx+y+z=nx+y+z=n。如果不存在输出−1-1−1,否则输出x×y×zx\times y \times zx×y×z,如果有多个值,输出最大的那个。分析这个我们可以枚举几个例子,首先nnn最小从3开始nnnxxxyyyzzz31114...

2019-01-11 14:44:07 326

原创 BZOJ 刷题计划

水题练手巨水无比(4)12143816模拟/枚举/暴力(15)4063傻子模拟;1968小学生暴力;1218前缀和暴力;3856读英文;4106直接算;1800暴力判断;2208暴力判断(要会邻接表);1028枚举;1789&1830高能暴力;2241暴力;2120神奇的暴力;4145子集暴力;4029模拟处理;1086DFS树;1224暴力;...

2018-12-19 18:55:41 513

原创 Gym 101194H 2016 EC-Final H题

题意  给一个n∗mn*mn∗m 的格子矩阵,现在要在这些格子里面填数,填的数字是 [1,k][1,k][1,k] 中的整数,每个数可以填多次。定义好格子:一个格子所在的行和列中的每个格子中的数都严格小于该格子中的数。假设 AgA_gAg​ 为矩阵中好格子数量为 ggg 时填数的方案数,现在要输出 ∑g=0n∗m(g+1)Ag\sum_{g=0}^{n*m}(g+1)A_g∑g=0n∗m​(g+...

2018-12-10 13:38:01 240

原创 POJ 1061 (扩展欧几里得)

题意有两只青蛙在圆环上,圆的周长为LLL,出生点分别为xxx,yyy。第一只青蛙每次可以跳mmm距离远,第二只青蛙每次可以跳nnn距离远,现在问你如果两只青蛙同时一直往一个方向跳,是否能过碰面。能的话输出跳的次数,不能碰面就输出“Impossible”分析  首先我们列几个式子分析一下,假设他们跳了ttt次且都往右边跳,那么对于第一只青蛙AAA有如下等式 la=mt+xl_a=mt+xla​...

2018-12-05 21:55:05 219

原创 UVA11300(数学思维题)

题意  nnn 个人围成一桌,每个人都有 aia_iai​ 个金币,他们可以将一部分金币分给左手边的一个人和有手边的一个人。设每个人分给其他人的金币数量为 xix_ixi​,求所有的 xxx 加起来最小是多少。注意,每个人只能将金币给他相邻的人。题目保证金币总和能被 nnn 整除。分析  设第iii个人给他左边伙计的金币数量为xix_ixi​,当 xi<0x_i<...

2018-11-26 17:23:55 155

原创 # 剑指offer 面试题(3)

数组中重复的数字题意在长度为n的数组里的所有数字都在0~n-1的范围内。数组中有些数字是重复的,但不知道有几个是重复的,也不知道重复了几次。请找出数组中任意一个重复的数字。分析一开始没注意读题,他只让找到一个任意的重复的数字即可。最暴力的方式是枚举每一个数,看看数组中有没有其他的数与之相同。这里的代码中,duplicate函数为solve函数,有三个 参数,numbers表示输入的数组,...

2018-11-06 11:50:10 128

原创 2018 徐州网络赛 Hard to prepare (递推)

题意有n个人围成一圈,现有一个k位二进制数,表示第i种帽子,所以一共有2k2k2_k种帽子。现在将这些个帽子分配给n个人,要求相邻的两个人之间的帽子所代表的二进制数,他们的同或和要大于0,问一共有多少种分配方法。分析看起来也像是一个高中的组合数学题目。手动模拟一下可以发现,对于每一个二进制数,有且仅有一个与之对应的二进制数跟他的同或和为0,因此如果每个人旁边只有一种帽子不能放,其他...

2018-09-14 20:14:43 186

原创 POJ 1426(模运算+bfs)

题意给一个数n(n<=200),找到一个n的倍数x,x的十进制表示形式中只有1和0分析如果这个倍数很小的话我们可以直接bfs每一位,然后找到能整除的即可,但显然最后的数肯定超过了范围。我们还能发现由n个1组成的数一定是满足题意的,但是题目又要求结果的长度不能超过100。换个思路想想,整除,就是余数为0,按照最开始的bfs的思路的话,我们是存了整个数,然后将整个数去模n看余...

2018-09-13 10:11:05 272

原创 HDU 5883(欧拉图+模拟)

题意给一个n个结点,m条边的图,每个点都有一个值。现在让你找出一条路径使得每条边经过且只经过一次。如果路径是P1-P2-…-Pn则定义分数x=p1^p2^…^pn(异或)。问能获得最大的分数是多少。如果没有这样的路径,则输出impossible分析一笔画问题,如果每个结点的度数为偶数,则能找到一条欧拉回路,且起点(也是终点)是任意的的;如果只有两个结点的度数为奇数,其他所有结点的度...

2018-09-06 14:27:41 129

原创 HDU 4699(栈)

题意现在要求模拟一个文档编辑,有5种操作,I x:在光标后面插入一个数字x,且光标后以一位,相当于输入;D:删除光标前面的一个数字,相当于backpack;L:将光标向左移动一位;R:光标向右移动一位;Q x:查询前x个数字的最大前缀和,保证x在光标位置之前。分析由于每次操作都是在光标所在的位置,而且只改变一位。所以我们可以用光标模拟栈顶指针,将光标左边的数字,也就是有效数字存进一...

2018-09-04 16:35:32 421

原创 POJ 2484(博弈论)

题意有n个石子摆成一圈,Bob和Alice两个人轮流取,Alice先取。每次可以取一个或者连续的两个,当两个石子中间的石子被取走以后中间留下空位,中间有空位的两个石子不算连续。输入n,输出最后谁会获胜。分析先枚举几个看看情况。首先n=1,2的时候Alice可以一次性拿完,肯定是Alice赢。n=3的时候Alice无论怎么取,Bob都可以直接拿走剩下的,所以是Bob赢n=4...

2018-09-02 15:12:09 238

原创 HDU 1846(巴什博奕模板)

题意假定有n个石子堆成一堆,两个人轮流取石子,最后没有石子可取的人为输,问谁最后能赢。分析首先0肯定是必败态,而1,2…m都是必胜态,因为他们都可以一次性取完。然后m+1是必败态,因为无论进行何种操作都是必胜态。依次类推,m+1+1…m+1+m,都是必胜态。且m+1+m+1也就是2(m+1)是必败态。所以如果n能被m+1整除,则n是必败态,否则先手必胜。代码#inc...

2018-09-02 11:03:43 184

原创 HDU 2149(巴什博奕变形)

这个题和HDU 2188题意是一样的,只是输出的时候不同,具体题意和分析见这里注意这两个题的m,n的意义是相反的,这里统一用2188的 这个题要输出第一步出的价格,经过我们上面的分析,从n开始往下走每次减去m+1的时候都是必胜态,所以模拟一下会发现n%(m+1)得到的就是第一步走的必胜态,所以一定是这个。但是还有一点,如果n...

2018-09-02 10:50:47 131

原创 HDU 2188(巴什博奕)

题意开始总数为0,两个人轮流取数,最大的数不超过m,优先使总数达到n的人取胜。现在给定n和m,问谁能赢分析这个题跟标准的巴什博奕还是有一点点的区别,这里先讲下什么是巴什博奕。假定有n个石子堆成一堆,两个人轮流取石子,最后没有石子可取的人为输,问谁最后能赢。首先0肯定是必败态,而1,2…m都是必胜态,因为他们都可以一次性取完。然后m+1是必败态,因为无论进行何种操作都是必胜态。依次类...

2018-09-02 10:15:28 152

原创 POJ 2304(博弈论)

题意给定两个数a和b,每次可以选择用大的数减去小的数的k倍,得到新的数,这个数必须大于0。就是不能把他减成负数。每个人轮流操作,输出最后谁能赢。分析先看如果b至多可以减去两个a的情况。则如果b减去2a,也就是减的比a小是必败态,那么我就是必胜态。如果减得比a小时必败态,那么我就只减去一个a,轮到我的对手的话就到了b刚好大于a的这种情况,所以他只能选择让b减得比a小也就是必败态。同理...

2018-09-01 20:20:21 271

原创 Wannafly23 A(尺取法模板)

题意给一个字符串,问包含26个小写字母的子串中,最短的长度是多少分析尺取法的模板题,子串是连续的,而且题目保证了一定存在这样的子串。那么取两个指针,后一个指针往后扫。一旦有满足题意的子串,就让前面的指针也往后扫,直到后面的指针扫不够了,在这个过程中,两个指针表示的就是当前的子串。指针每次变动一个我们就check一下是否包含26个字母,然后取最小的即可。代码#incl...

2018-09-01 09:37:46 158

原创 POJ 1930(模拟+思维)

题意给一个小于1大于0的无限循环小数,将其化成分数,输出分母最小的情况。分析首先题目给定了数字最长是9位,组成是0.abcde…这样的形式,所以可以直接读取中间的数字并用ll存起来。然后遍历9种循环情况,分别求出他们的分数形式。下面说下如何化成分数。隐约记得这个是小学课本上的东西,首先将这个数乘pow(10,循环节的长度),然后减去这个整数,举个例子,0.923333…这里我们...

2018-08-21 15:54:00 212

原创 POJ 3293(素数筛变形+思维)

题意对于一个正整数,如果它模4得1,则称这个数为H数;如果H数是质数,则称为质H数;如果一个H数是由两个质H数相乘得到的,就称之为H-semi-prime数。现在给定一个n,求1-n有少个H-semi-prime数。分析利用素数筛的思想,枚举两个H数,让其从小到大相乘,一开始从5*5,5*9..取的两个数一定是质H数,得到的就是要求的数,然后打个标记。在代码中,v数组保存的信息,如...

2018-08-19 21:14:28 226

原创 POJ 3126(素数筛+BFS)

题意给两个四位质数a,b, 每次只改变a的某一位,且得到的数a’必须是素数,问最少需要操作多少次才能使a变成b,不能则输出Impossible分析一个很纯的BFS的题目,先用素数筛打表,每次以O(1)的时间判断是否为素数。注意两个细节,千位不能是0,各位如果是偶数的话就没有必要搜索了。代码#include <iostream>#include <...

2018-08-19 20:14:25 649

原创 UVA 10006(快速幂+暴力)

题意给你一个数n,问你这个数是不是卡迈克尔数。如果一个数是合数且满足对于每一个比它小的数a都有an=a(模n下)an=a(模n下)a^n=a(模n下);分析暴力判断即可,但是要注意先判断是否是质数,如果是质数一定不是卡迈克尔数,就不需要进行费马检验了。否则亲测超时。代码#include <iostream>#include <cmath>usin...

2018-08-19 15:25:12 198

原创 POJ 2385(线性DP)

题意现在有两棵树,在1~t分钟内,其中一棵树会掉落一个苹果。一开始你在第一棵树下,每次你只能接住当前在的那棵树上掉落的苹果,或者花费1个体力点瞬移到另一棵树下,接住那个苹果。你总共有w个体力点。给定t,w,每分钟苹果的掉落情况,问你最多能获得多少个苹果。分析状态定义为 dp[i][j]:前t分钟在花费j个体力点的情况下能获得的最多苹果数。 状态转移方程 dp[i][j]=max(...

2018-08-17 12:48:51 178

原创 POJ3176&&HDU2084 (线性dp数字三角形)

题意给一个数n,输入一个n阶的数字三角形,开始从三角形顶端出发,每次向下走一步,只能走和他相邻的两个格子,每个格子有一个积分。问你最多能获得多少积分。分析入门级别的dp题,这里还是详细说下状态和转移吧。 首先dp[i][j]表示,从顶端到达(i,j)这个点的最大分数(要算上这个点的分值)。因为每次只能走下面相邻的两个,对于第一个数和最后一个数只能从上面一个走,所以直接加,中间的数...

2018-08-16 21:12:36 129

原创 HDU6383(二分最大最小数)

题意给一个n个数的数列,给一个操作:对于任意两个数a,b(下标不同即可),一个数减2,另一个数加1. 给一个好的序列的定义:如果这个数列最大的数和最小的数相差<=1且每个数都大于0。经过若干次操作后,将这个数列变成好数列,问在所有的情况中,最小数的最大值是多少。分析最小数的最大值= =,显然的二分法,当时竟然没有一脸就反应过来,贼难受。解法是枚举这个最小数,设其为x,x最...

2018-08-16 20:27:36 381

原创 UVa11388(gcd+水题)

题意给连个数G,L,求出另外两个数a,b,使得gcd(a,b)=G,lcm(a,b)=L,如果有多种情况,输出a最小的情况分析简单分析一下可以得到gcd(G,L)=G,lcm(G,L)=L,那么会不会有其他的a比G更小呢,显然不会。因为G是a和其他数的最大公因数,只可能是G<=a.所以最后判断一下G能否整除L即可,不能则输出-1,否则输出G,L.代码#incl...

2018-08-16 19:29:22 208

原创 HDU6397 (组合问题+容斥原理)

题意给三个数n,m,k, 在0~n-1中选出m个数排成一排使得他们的和等于k,这m个数可以相同,只要排列不同即可。求一共有多少种排列方式是满足题意的。分析先说下整体思路:对于没有0~n-1这个限制条件的话我们可以很快的用隔板法求出总的个数是C(m-1,k+m-1),然后可能x个数超过了n-1,那么我们减去只有1个数超过的情况,再加上超过了2个数的情况….也就是容斥原理。最后求得即可...

2018-08-16 19:17:30 966 4

原创 Uva 10943(水题+排列组合)

题意给定两个数n,k,求把k个小于n的非负整数相加之和为n,这样的情况一共有多少种。分析这个题相当于给n个1,让你把这n个1分成k份。如果每个数至少是一的话,我们可以看成是在n个1中间差k-1个板子,两端不能插,一共就有k-1个地方可以插,就是c(m-1,k-1)。如果每个数可以是0,那我们可以先向k+m个数中间插m-1个板子分成m份,然后每一份都减去1,就是答案。代码...

2018-08-16 19:13:45 283

原创 UVa11401(枚举转换推公式+思维)

题意给一正整数n,问你从1–n中选出3个不同的数能组成三角形,问你有多少种情况分析分析一下,这个题好像跟计算几何中的那种给你三个点的坐标,问你能组成多少个不同的三角形好像有点像。直接枚举肯定会炸,而且还有条件没有挖出来,他要求的是1–n中的数,而且还不同。那假设三条边为a,b,c,我们不妨设a<b<ca<b<caa+b<ca+b<ca+bb−a&...

2018-08-16 19:11:09 193

原创 UVa11538 (水题+找规律)

题意给一个m行n列的方格,让你在方格里面放两个皇后,红皇后和白皇后,两个皇后在同一行,同一列或者同一对角线就可以互相攻击,问你有多少种让他们互相攻击的方案。分析首先问题可以分成三部分之和,在同一行,在同一列和在同一对角线三种情况。这三个是相互独立的。对于同一行和同一列很好求,同一对角线找规律可以发现会有m+n−1m+n−1m+n-1个。然后每个对角线都是1,2,3...n,n......

2018-08-16 19:08:08 336

原创 UVa11401(容斥原理入门题)

题意给一个m行n列的方阵,然后在这些方阵里面放k个石子,问第一行,第一列,最后一行,最后一列都必须有石子的方案有多少种分析这里我们假设第一行,第一列,最后一行,最后一列不放石子的方案分别为A,B,C,D。那么由容斥原理可以得到题目要求的总量等于ANS=SUM−(A+B+C+D)+(AB+AC+AD+BC+BD+CD)−(ABC+ABD+ACD+BCD)+(ABCD)ANS=SUM−...

2018-08-16 19:07:00 225

原创 codeforces 470 Primal Sport

题意给定一个数x0,取小于x0的任何一个素数p1。将这个素数扩大到n1倍,使其恰好大于等于x0。然后将扩大后的这个数也就是n1*p1设置为x1。同样的操作,任取一个小于x1的素数p2。将其扩大到n2倍使得他刚好大于等于x1。设这个扩大到n2倍的数设为x2。现在告诉你x2的值,让你输出最小的可能的x0分析我们将上面的 叙述用数学表达式写出来就是 p1 < x0 <= ...

2018-03-20 17:38:04 164

原创 蓝桥 K好数

题意 给两个数K和L,表示一个L位的K进制数,定义K好数为:这个L位数的任意相邻的两位的两个数都不能相邻。换句话说就是他们的差的绝对值不能为1。求这样的数一共有多少个分析 动态规划问题,dp[i][j]表示第i位为j的情况下一共有多少个k好数。那么很明显dp[i][j]=sum(dp[i-1][m])(m范围是0…K且m不与j相邻)。   但是这有个问题,很显然dp[i][j]的i至...

2018-03-20 10:45:24 138

原创 最大最小公倍数

题意 给一个数n,在1–n中任选3个数,求出这个三个数的最小公倍数。然后求出这个最小公倍数的最大值。分析   按照常理来说,最大的应该是n, n-1, n-2这三个数,如果这三个数恰好互质,那再好不过。然而恰好当n为奇数时,这三个数互质。下面来解释下为什么。首先这三个数时连续的三个数。也就是n,n-1,n-2。因为n是奇数,所以奇偶奇不可能有2这个因数。那再看3,这三个连续的数最大...

2018-03-19 17:38:37 2812 2

原创 HDU 1260 Tickets

题意有k个人买票,可以一个一个的买,有k种等待时间cost[i],也可以相邻的两个人一起买,有k-1种等待时间dcost[i],问如何买票可以使得总时间最小。分析对于第i个人来说他买票有三种可能,自己单独买,和上一个相邻的伙计一起买,和下一个伙计一起买。但是他和下个人一起买与下个一个人和他一起买是一样的情况。因此这里只考虑上一个人的。这里这样定义dp数组dp[i]:第i个人买票时和他前...

2018-02-08 11:29:34 91

原创 HDU 1087 Super Jumping! Jumping! Jumping!

题意输入一个数n,后面跟n个数。选择里面的递增的一些数,使其和最大。分析dp[i]选择第i个时和最大。很显然要求dp[i]的话必须知道前面最大的那个dp[k],但是有个限制条件就是要递增,也就是说a[k]dp[i]=max(dp[k]+a[i])   这里之前遇到过一个小问题,就是忘记初始化dp数组为a[i]了,因为如果i前面没有满足条件的a[k]的话,那由转移代码可以看出dp[

2018-01-20 15:31:39 102

原创 HDU 1069 Monkey and Banana

题意  给定n(n分析  首先,对于每一种木块的长宽高都有6种不同的排列方式,也就是说每个木块有6种摆放方式。因此当我们挑选木块的时候还需要选择排列方式,那这里就直接将排列方式也当成一种木块,那么搭建方式只能按照长宽高来。这样就最多有180个木块了。   动态规划解题,我们自顶向下的来看,摆出来的最高组合体长宽从上到下一定是递增的,我们不妨先将上述的木块排序,到时候在挑选的时候对

2018-01-20 14:11:02 150

原创 HDU 1029 Ignatius and the Princess IV

题意输入一个基数m和m个数,求里面一个数,这个数出现次数大于等于(m+1)/2分析简单做法   分析可知,要这个输出现的次数大于等于(m+1)/2,那么如果将这m个数排序,因为他出现的次数大于了一半,因此中位数一定是特殊的数,做法是先排序,在输出。#include #include using namespace std;#define INF 0x7fffffffi

2018-01-19 20:40:52 104

原创 HDU 1024 max sum plus plus

题意给两个数m和n,然后再给出n个数。在1到n个数中从中选出m个区间,每个区间求和,然后再吧m个区间求和使得这个和最大。区间的要求是不允许与其他的区间有任何交集,一个数也不行,另一个要求是这个区间可以是一个数。输出是这个最大和分析动态规划问题,我们要在n个数中取m个区间和最大,那么可以看看最后一个数是怎么取的。假设取的最后一个数j使得这几个个区间和最大,那么这个区间和最大情况可以分为两

2018-01-19 19:45:58 95

原创 POJ1127 Jack Straws(poj 1127)

poj 1127题解

2017-12-05 10:00:51 319

原创 POJ 3320 (尺取法)

poj3320题解

2017-10-07 11:10:35 487

原创 挑战3.2.1 Subsequence (poj 3061)

poj 3061

2017-10-06 14:10:50 189

人工智能作业野人与传教士--搜索算法

中国地质大学武汉计算机学院计算机科学与技术专业人工智障作业

2018-10-09

空空如也

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

TA关注的人

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