![](https://img-blog.csdnimg.cn/20200901111135371.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
c/c++语言算法
c语言算法
VGtime
github peterroe
展开
-
搜索之-求细胞数量
题目描述一矩形阵列由数字 0 到 9 组成,数字 1 到 9 代表细胞,细胞的定义为沿细胞数字上下左右若还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。输入格式第一行两个整数代表矩阵大小 n 和 m。接下来 n 行,每行一个长度为 m 的只含字符 0 到 9 的字符串,代表这个 n×m 的矩阵。输出格式一行一个整数代表细胞个数。输入输出样例输入4 100234500067103456050020456006710000000089输出4说明/提示数据规模与约定对于原创 2020-06-07 14:01:01 · 464 阅读 · 0 评论 -
搜索之-Mzc和男家丁的游戏
题目描述mzc家很有钱(开玩笑),他家有n个男家丁(做过上一弹的都知道)。他把她们召集在了一起,他们决定玩捉迷藏。现在mzc要来寻找他的男家丁,大家一起来帮忙啊!由于男家丁数目不多,再加上mzc大大的找人【laopo】水平很好,所以一次只需要找一个男家丁。输入格式第一行有两个数n,m,表示有n行m列供男家丁躲藏,之后n行m列的矩阵,‘m‘表示mzc,‘d’表示男家丁,‘#’表示不能走,‘.‘表示空地。输出格式一行,若有解:一个数sum,表示找到男家丁的最短移动次数。若无解:输出“No Way原创 2020-06-05 21:26:59 · 343 阅读 · 0 评论 -
搜索之-离开中山路
题目背景《爱与愁的故事第三弹·shopping》最终章。题目描述爱与愁大神买完东西后,打算坐车离开中山路。现在爱与愁大神在x1,y1处,车站在x2,y2处。现在给出一个n×n(n<=1000)的地图,0表示马路,1表示店铺(不能从店铺穿过),爱与愁大神只能垂直或水平着在马路上行进。爱与愁大神为了节省时间,他要求最短到达目的地距离(a[i][j]距离为1)。你能帮他解决吗?输入格式第1行:一个数 n第2行~第n+1行:整个地图描述(0表示马路,1表示店铺,注意两个数之间没有空格)第n+2行原创 2020-06-05 21:08:31 · 265 阅读 · 0 评论 -
搜索之-好奇怪的游戏
题目描述爱与愁大神坐在公交车上无聊,于是玩起了手机。一款奇怪的游戏进入了爱与愁大神的眼帘:***(游戏名被打上了马赛克)。这个游戏类似象棋,但是只有黑白马各一匹,在点x1,y1和x2,y2上。它们得从点x1,y1和x2,y2走到1,1。这个游戏与普通象棋不同的地方是:马可以走“日”,也可以像象走“田”。现在爱与愁大神想知道两匹马到1,1的最少步数,你能帮他解决这个问题么?输入格式第1行:两个整数x1,y1第2行:两个整数x2,y2输出格式第1行:黑马到1,1的步数第2行:白马到1,1的步数输原创 2020-06-05 14:19:08 · 249 阅读 · 0 评论 -
搜索之-马的遍历
题目描述有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步输入格式一行四个数据,棋盘的大小和马的坐标输出格式一个n*m的矩阵,代表马到达某个点最少要走几步(左对齐,宽5格,不能到达则输出-1)输入输出样例输入3 3 1 1输出0 3 2 3 -1 1 2 1 4 1.深度优先搜索代码如下:#include<iostream>#includ原创 2020-06-05 13:56:10 · 413 阅读 · 0 评论 -
动规之-线形石子合并
题目描述有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并可以合并相邻的两堆石子,一次合并的代价为两堆石子的重量和w[i]+w[i+1]。问安排怎样的合并顺序,能够使得总合并代价达到最小。输入描述第一行一个整数n(n<=100)第二行n个整数w1,w2…wn (wi <= 100)输出描述一个整数表示最小合并代价样例输入44 1 1 4样例输出18代码如下:#include<bits/stdc++.h>using namespace std;转载 2020-05-25 11:15:04 · 221 阅读 · 0 评论 -
动规之-环形石子合并
题目描述在一个圆形操场的四周摆放 N 堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。试设计出一个算法,计算出将 N 堆石子合并成 1 堆的最小得分和最大得分。输入格式数据的第 1 行是正整数 N,表示有 N 堆石子。第 2 行有 N 个整数,第 i 个整数 ai 表示第 i 堆石子的个数。输出格式输出共 2 行,第 1 行为最小得分,第 2 行为最大得分。输入44 5 9 4输出4354代码如下:转载 2020-05-25 11:11:26 · 691 阅读 · 0 评论 -
动规之-加分二叉树
题目描述设一个n个节点的二叉树tree的中序遍历为(1,2,3,…,n),其中数字1,2,3,…,n为节点编号。每个节点都有一个分数(均为正整数),记第i个节点的分数为di,tree及它的每个子树都有一个加分,任一棵子树subtree(也包含tree本身)的加分计算方法如下:subtree的左子树的加分× subtree的右子树的加分+subtree的根的分数。若某个子树为空,规定其加分为1,叶子的加分就是叶节点本身的分数。不考虑它的空子树。试求一棵符合中序遍历为(1,2,3,…,n)且加分最高的二转载 2020-05-24 10:49:08 · 271 阅读 · 0 评论 -
动规之-尼克的任务
题目描述尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成。尼克的一个工作日为 n 分钟,从第 1 分钟开始到第 n 分钟结束。当尼克到达单位后他就开始干活,公司一共有 k 个任务需要完成。如果在同一时刻有多个任务需要完成,尼克可以任选其中的一个来做,而其余的则由他的同事完成,反之如果只有一个任务,则该任务必需由尼克去完成,假如某些任务开始时刻尼克正在工作,则这些任务也由尼克的同事完成。如果某任务于第 p 分转载 2020-05-17 14:45:24 · 314 阅读 · 0 评论 -
动规之-疯狂的采药(完全背包问题)
题目描述LiYuxiang 是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同种类的草药,采每一种都需要一些时间,每一种也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。”如果你是 LiYuxiang,你能完成这个任务吗?此题和原题的不同点:1 . 每种草药可以无限制地疯转载 2020-05-17 11:05:00 · 669 阅读 · 2 评论 -
动规之-[SHOI2002]滑雪
题目描述Michael 喜欢滑雪。这并不奇怪,因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael 想知道在一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子:1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9一个人可以从某个点滑向上下左右相邻四个点之一,当且转载 2020-05-17 10:28:06 · 389 阅读 · 0 评论 -
动规之-分组背包问题
题目描述自 01 背包问世之后,小 A 对此深感兴趣。一天,小 A 去远游,却发现他的背包不同于 01 背包,他的物品大致可分为 k 组,每组中的物品相互冲突,现在,他想知道最大的利用价值是多少。输入格式两个数 m,n,表示一共有 n 件物品,总重量为 m。接下来 n 行,每行 3 个数 ai,bi,ci,表示物品的重量,利用价值,所属组数。输出格式一个数,最大的利用价值。输入输出样...原创 2020-05-02 10:39:34 · 643 阅读 · 0 评论 -
动规之-5倍经验日(进阶01背包)
题目背景现在乐斗有活动了!每打一个人可以获得5倍经验!absi2011却无奈的看着那一些比他等级高的好友,想着能否把他们干掉。干掉能拿不少经验的。题目描述现在absi2011拿出了x个迷你装药物(嗑药打人可耻….),准备开始与那些人打了由于迷你装一个只能管一次,所以absi2011要谨慎的使用这些药,悲剧的是,没到达最少打败该人所用的属性药了他打人必输>.<所以他用2个药去打别...原创 2020-05-01 15:01:39 · 469 阅读 · 0 评论 -
动规之-开心的金明(简单01背包问题)
题目描述金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”。今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N元。于是,他把每件物品规定了一个重要度,分为5等:用整数1−5表示,第55等最重要。他还从因特网上查到了每件物品的价格(都是整数元)...原创 2020-05-01 14:28:03 · 542 阅读 · 0 评论 -
动规之-租用游艇
题目描述长江游艇俱乐部在长江上设置了 n 个游艇出租站 1,2,⋯,n。游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站 i 到游艇出租站 j 之间的租金为 r(i,j)(1≤i<j≤n)。试设计一个算法,计算出从游艇出租站 1 到游艇出租站 n 所需的最少租金。输入格式第一行中有一个正整数 n,表示有 n 个游艇出租站。接下来的 n−1 行是一个半矩阵...原创 2020-05-01 13:24:14 · 945 阅读 · 0 评论 -
动规之-P1048 采药(dp)
题目描述辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。”如果你是辰辰...原创 2020-04-24 17:00:46 · 641 阅读 · 0 评论 -
动规之-方格取数(dp+四维数组)
题目描述设有 N \times N×N 的方格图 (N \le 9)(N≤9),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字 0。如下图所示(见样例):A 0 0 0 0 0 0 0 0 0 0 13 0 0 6 0 0 0 0 0 0 7 0 0 0 0 0 0 14 0 0 0 0 0 21 0 0 0 4...原创 2020-04-21 10:37:00 · 467 阅读 · 0 评论 -
快速幂模板
题目描述给你三个整数 b,p,kb,p,k,求 b^p \bmod kbpmodk。输入格式输入只有一行三个整数,分别代表 b,p,kb,p,k输出格式输出一行一个字符串 b^p mod k=s,其中 b, p, k分别为题目给定的值, s 为运算结果。输入输出样例输入2 10 9输出2^10 mod 9=7说明/提示样例输入输出 1 解释2^10 =1024,1024mod9=7。数据规模与约定对于100% 的数据,0≤b,p< 2^31,1≤k≤2 ^31让转载 2020-06-01 10:05:18 · 261 阅读 · 0 评论 -
递归取数(递归)
样例输入3 2样例输出3 23 12 1代码如下:#include <stdio.h>int a[50];void combrecur(int n, int r){ int i,j; for (i=n;i>=r;i--)//kaishidijian { a[r]=i; if (r>1) combrecur(i-1,r-1); else {原创 2020-05-25 14:46:30 · 591 阅读 · 0 评论 -
喝可乐问题
每k瓶换一瓶#include<iostream>using namespace std;int main(){ int n,k; cin>>n>>k; int cola = n, bottle = 0, drink = n; while (cola + bottle>k) { cola = (cola + bottle) / k; bottle = (cola + bot转载 2020-05-15 17:15:02 · 287 阅读 · 0 评论 -
1971: 万物皆可盘
题目描述“干干巴巴,麻麻赖赖,一点都不圆润,盘他!”小唐长老最近迷上了一个相声节目,名字叫做《文玩》。这个节目中提出了一个理论——万物皆可盘。小唐长老也想盘一盘,那么到底盘些啥好呢,小唐长老把目光锁定到他的存钱罐上。他打算盘硬币。我们假设存钱罐中有n个硬币,都是一块钱面额的。小唐长老是个非常有仪式感的人,对于直接盘硬币是无法接受的。他准备去买m个精美的小袋子,将n个硬币分配到这m个袋子中(只...原创 2020-04-16 10:30:17 · 200 阅读 · 0 评论 -
1970: 翻天(二维数组的超灵活运用)
题目描述翻天游戏是在一个二维网格中进行,底下是地(‘#’表示),上面是天(‘.’表示)。游戏精灵开始站在最左边列(第一列)地的上面,它要逐列前进,达到最右端的列。从左边的第i列到右边的第i+1列时,如果第i列比第i+1列高,精灵可以一下子滑到第i+1列的地顶部。如果第i列比第i+1矮不超过d(精灵自身高度可以忽略),精灵自己可以爬上去。但是如果第i列比第i+1矮超过d时,精灵就可以使用它的特殊技...原创 2020-04-15 17:36:28 · 153 阅读 · 0 评论 -
猴子选大王(约瑟夫环问题)
题目描述n个人排成一圈,按顺时针方向依次编号1,2,3…n。从编号为1的人开始顺时针"一二"报数,报到2的人退出圈子。这样不断循环下去,圈子里的人将不断减少。最终一定会剩下一个人。试问最后剩下的人的编号。要求程序模拟题意来实现。输入不超过1000组数据。每组数据一行,每行一个正整数,代表人数n。 (1 <= n <= 1000)输出每组输入数据输出一行, 仅包含一个整数,...原创 2020-04-15 15:26:12 · 914 阅读 · 0 评论 -
旋转加密(简单二维数组旋转)
题目描述:小明开发了一种新的字符串加密方法。假定L为原字符串长度,M是不小于L的最小平方数,即存在整数K,使得KK=M。以自上而下、从左到右的方式将字符串填入KK的表格中,如果还有空闲的格子,用‘’填充。然后将表格顺时针旋转90度,再按自上而下、从左到右的方式读出表格中的所有字符(忽略‘’),得到的字符串即为加密后的字符串。举一个例子,原字符串为"iloveyouJack",L=12,则M=1...原创 2020-04-09 11:45:10 · 552 阅读 · 0 评论 -
小兔蹦蹦跳Ⅰ
题目描述:小兔位于X轴的x点,欲跳至X轴的y点。x,y均为整数。小兔每次沿x轴直线跳跃,每跳的长度均为正整数,假设小兔一共跳了n次才到目的地,每次跳的长度为F1,F2,…, Fn. 有规则如下:F1=Fn=1|Fi-Fi-1|<=1 , 2<=i<=n (注:| |是绝对值符号)我们的问题是给定x,y, 如何使得n最小。输入:包含多组数据,但不超...原创 2020-04-08 17:03:10 · 240 阅读 · 0 评论 -
15行代码解决8进制转2进制问题(递归)
Octal to Binary Converter题目描述We know that binary and octal are two different kinds of number systems whose bases are 2 and 8 respectively, i.e. they use 2 and 8 digits respectively to represent thei...原创 2020-04-08 15:23:45 · 289 阅读 · 0 评论 -
利用回溯法解决八皇后问题(递归)
利用回溯法解决八皇后问题(递归)1.用递归解决1.用递归解决#include <stdio.h>#include <math.h>int n,sum,a[20],b[20],c[40],d[40];void putdata()//输出数据{ for(int i = 1; i<=n; i++) { for(int j = 1; j<=n; j...原创 2020-03-13 12:51:13 · 285 阅读 · 0 评论 -
利用回溯法解决八皇后问题(循环)
利用回溯法解决八皇后问题(循环)2.用循环解决#include <stdio.h>#include <stdlib.h>int a[20],n,sum;void output()//输出{ int i,j; for(i = 1; i<=n; i++) { for(j = 1; j<=n; j++) ...原创 2020-03-13 19:34:59 · 368 阅读 · 1 评论 -
ADA Ⅱ型数
题目描述ADA Ⅱ型数是指能表达成p2与q3两者之乘积的整数,p和q均大于1且不相等。72=23*32, 是最小的ADA Ⅱ型数。给定一个整数n,判定其是否为ADA Ⅱ型数。输入少于4000行数据组成,每行一个整数n(0<n<2^31)。输出每个整数n对应一行输出,如果是ADA Ⅱ型数,则输出一行YES,否则输出一行NO。样例输入 Copy172样例输出 Copy...原创 2020-03-22 11:41:02 · 285 阅读 · 0 评论 -
贪心算法之-------求一组特殊数列的极差问题(快速排序+递归)
特殊数列的极差问题问题描述:本关任务:将 n 个正整数作成的一个数列,进行如下操作:每一次删除其中的两个数 a 和 b,然后在数列中加入一个数a×b+1,如此下去直至数列中剩下一个数。在所有按这种操作方式最后得到的数中,最大的记作 max,最小的记作 min,则该数列的极差定义为M=max-min,请你使用贪心算法设计编程输出他们的极差。测试输入:7 //输入7(n)个整数3 ...原创 2020-03-13 19:55:42 · 3514 阅读 · 3 评论 -
递推法之-------核电站问题(超简洁代码!!!)
核电站问题问题描述:一个核电站有N个放核物质的坑,坑排列在一条直线上。如果连续3个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质。现在,请你计算:对于给定的N,求不发生爆炸的放置核物质的方案总数。输入:输入文件只有多行,每行对应一个正整数N<=40;输出输出文件有多行,每行只有一个正整数,表示方案总数测试输入:123410预计输出24713504...原创 2020-03-17 21:49:48 · 2538 阅读 · 2 评论