![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
敲代码的乔帮主
走在梦想的大道上,跌跌撞撞,时而悲伤,时而难过失落,是什么又让我扬起头继续向前呢?是心中的那一朵彼岸之花,牵使着你我之间的约定,成为我心中那一股永不可灭的骨气,终究是信仰。
展开
-
动态规划:求最长公共子串/最长公共子序列
最长公共子序列和最长公共子串区别 最长公共子串(Longest Common Substring)与最长公共子序列(Longest Common Subsequence)的区别: 子串要求在原字符串中是连续的,而子序列则只需保持相对顺序一致,并不要求连续。例如X = {a, Q, 1, 1}; Y = {a, 1, 1, d, f}那么,{a, 1, 1}是X和Y的最长公共子序原创 2017-06-18 21:03:01 · 709 阅读 · 0 评论 -
巴氏(bash)威佐夫(Wythoff)尼姆(Nim)博弈之模板
Bash(巴氏)博弈,这是比较简单的一种,原理就不解释了,相信大家都懂,代码很简短,只需要输入这一堆石子的数目,输赢立刻见分晓 #include<iostream> using namespace std; int main(void) { int cas,total,price; ...原创 2017-07-24 10:44:40 · 602 阅读 · 0 评论 -
杭电problem1004- Let the Balloon Rise
输入字符串,找出字符串出现次数最多的一个串AC代码: #include <stdio.h>#include <string.h>int main(){ int N=1,max,e,i,j; char color[1010][15]; int count[1010]= {1}; while(scanf("%d",&a...原创 2017-07-23 16:43:45 · 431 阅读 · 0 评论 -
杭电problem1018-大数(阶乘的位数问题)
思路:1.按照阶乘的定义算这个数的阶乘,然后再检查位数。一看题目条件肯定会超时。2.求一个数有N多少位,可用log10(N)+1,于是,求N!有多少位log10(1*2*3*……*n)=log10(1)+log10(2)+……+log10(N)+1就有了下面的程序(已通过)--------------------------------------------------------...原创 2017-07-18 18:20:40 · 369 阅读 · 0 评论 -
杭电problem1003-动态规划
贴AC源码: #include <iostream>using namespace std;int main(){ int t; cin>>t; if(t>=0&&t<=20) { for(int i=1;i<=t;i++) { int first,second,temp=1; int sum=0...原创 2017-07-13 18:37:12 · 414 阅读 · 0 评论 -
1.构造回文(2017.6.18)
题目: [编程题] 构造回文时间限制:1秒空间限制:32768K给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?输出需要删除的字符个数。输入描述: 输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000. 输出描述: 对于每组数据,输出一个整数,代表最少...原创 2017-06-18 19:07:55 · 467 阅读 · 0 评论 -
poj1061 青蛙的约会(扩展欧几里得算法求解同余方程)
青蛙的约会Description两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到...原创 2017-01-18 15:08:37 · 732 阅读 · 0 评论 -
sdnuACM1012区间合并问题
Description给定n个开区间,合并他们中的重合者,输出合并后的区间数量。Input第一行:n(1 <= n <= 1000)第2至第n+1行:每行两个整数,第i行的两个整数表示第i-1个区间的左边界和右边界。Output合并后所剩余的区间数量。Sample Input31 32 56 7Sample Output2 #in...原创 2016-10-24 13:15:43 · 2573 阅读 · 0 评论 -
sdnuACM1011盒子与球
Description现有r个互不相同的盒子和n个互不相同的球,要将这n个球放入r个盒子中,且不允许有空盒子。则有多少种放法?Inputn, r(0 <= n, r <= 10)。Output有多少种放法。Sample Input3 2Sample Output6 #include <stdio.h> #include ...原创 2016-10-24 13:04:35 · 684 阅读 · 0 评论 -
斐波那契数列(递归与非递归实现)
首先来说下递归,递归的思想是大事化小。斐波那契数列:1,1,2,3,5,8,13,21........设f(n)是第n个斐波那契数,当n<=2,斐波那契数都为1;当n>2,那么第f(n)个斐波那契数就等于前两个斐波那契数之和。递归的代码实现:#include<stdio.h>int fbnq(int n){ if (n <= 2)...原创 2019-02-25 10:47:35 · 982 阅读 · 0 评论 -
Lucas定理-saving beans
解决问题:求把m个果实放到n个树的方案数,并将答案对p求余。利用了Lucas定理和大组合数取模的过程。将题目转化为方程x1+x2+x3+...+xn = m 的解的数目,即n个树上的果子数之和等于m,利用插板法思想,就是把m分解成n个数之和,把m看成m个1,那么有m+1个空,以后每插入一个板子后,空都比之前多一个,m分成n个数之和只要插n-1个板子,然后板子先后插是没有差别的,...原创 2017-07-25 10:43:19 · 371 阅读 · 0 评论 -
杭电problem6043- KazaQ's Socks
#include<iostream>using namespace std;typedef long long int ll;int main(){ ll n,k; int num=0; while(cin>>n>>k) { cout<<"Case #"<<++num<&原创 2017-07-26 10:22:58 · 380 阅读 · 0 评论 -
八大排序算法(java实现)
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,原创 2017-11-16 10:26:55 · 501 阅读 · 0 评论 -
一头扎进《快速排序》
一头扎进《快速排序》今天去听了一个讲座,师姐很厉害,在她的演讲中她提到了很多东西,未能够及时消化,回来马上开始码文档。师姐今天提及快排,但是要求我们要用**非递归**来实现。以前并没有很在意这些细节,想着能理解写出来不就可以了吗,今天特来写博文认错。大家知道快排效率为O(N*logN),在这几种排序方法中也算是效率较为高的一种算法了,采用的是“分治法”的思想,百度上描述为“是C.R.A.Ho原创 2017-06-11 20:38:02 · 398 阅读 · 0 评论 -
保证一看就明白的KMP算法
最近花了些时间学习kmp算法(看毛片算法),对于没有基础的人来说,开始学一个东西都会非常痛苦,我也是这样。反反复复读了好久相关的文章,终于有些明白是怎么回事了,这里给大家推荐下我的学习路径。首先,我推荐大家看阮一峰的博客文章——字符串匹配的kmp算法。这篇文章篇幅不长,但写得非常清楚明白,文章中用例子给出了kmp到底是怎么操作的一个过程,不过并没有给出代码。我自己看懂了以后,就直接写了一个kmp,...原创 2018-07-10 00:03:41 · 1219 阅读 · 0 评论 -
Description 对于一本共有n页的书,它的页码从1开始编号,一直到n,页码中没有无用的0,则该书页码中分别共用到了多少个0,1,2,3,4,5,6,7,8,9?
#include<stdio.h> int main(){ int a[10] = {0}; int input,i,j,m; printf("输入总页数:\n"); scanf("%d",&input); for(i = 1;i <= input;i++) { ...原创 2016-10-23 11:24:26 · 5312 阅读 · 0 评论 -
快速幂入门
Description输入3个数a,b,c,求a^b mod c=?Input多组数据:每组数据,三个数a,b,c。Output对于每一组数据,输出一个数,即a^b mod c 的答案。Sample Input5 10 9Sample Output4 #include <cstdio> long long PowerMod(lo...原创 2017-02-07 16:18:20 · 453 阅读 · 0 评论 -
杭电ojproblem-4135容斥定理
Co-primeTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 626 Accepted Submission(s): 234 Problem DescriptionGiven a number N, you are...原创 2017-07-29 09:32:51 · 374 阅读 · 0 评论 -
杭电problem1005-Number Sequence
本题思路:给出的公式,第一个想到的是递归,使用递归实现,果然超内存,因为1 <= n <= 100,000,000(嘿嘿,我知道不用试也应该知道);接下来尝试使用栈的方式实现,超时了,至此偷懒不成功,开始寻找更好的方法吧。 最终通过网上各种查找,再加上自己的思考和摸索,理解如下: (1)很明显f(n)的取值范围为0~6 (2)在A,B给定的情况下,f(n)...原创 2017-07-26 11:14:37 · 1257 阅读 · 1 评论 -
2017山东省-D-Hex
利用 (1,1)+x*(1,0)+y*(2,1)+z*(1,1)=(a,b).求得 x+2*y+z=a-1;y+z=b-1; 得 x+y=a-b; y+z=b-1 y<=min(a-b,b-1)枚举y,解出,x,z,然后解出 c(x+y+z,x)*C(y+z,y)*C(z,z) ,表明走x个左方向 y个下方向和z个右方向有多少种方案, 用 res加上。 #incl...原创 2017-07-25 10:29:05 · 344 阅读 · 0 评论 -
杭电problem6033- Add More Zero
题意:给定m,求最大的k 满足10^k ≦ (2^m) -1 思路: 利用log公式,得到k <= ,即 k =取下限由于不存在 所以 #include <iostream> #include <cstdio> #include <cmath> using name...原创 2017-07-26 10:28:29 · 348 阅读 · 0 评论 -
深度优先搜索VS广度优先搜索 (含算法实现)
一:深度优先搜索DFS我们以图为例,图是由一些小圆点(顶点)和连接这些小圆点的直线(边)组成。例如:现在我们想要遍历这个图,我们可以从1号顶点开始,遍历就是将图中每一个顶点都访问一次。使用深度优先搜索会得到这么一个结果他们身上标注的数字就是他们的访问次序。这个次序还有一个非常好听的名字叫时间戳。下面我们来分析这个深度优先搜索的整个过程。过程分析:首先是从一个未曾走过的顶点作...原创 2019-09-22 15:25:44 · 3368 阅读 · 3 评论