
算法
关于基本的算法的整理。包括:分治法,枚举法,动态规划,贪心算法等算法的举例。
m0_38056893
没怎么在用了,评论可能没回复
展开
-
3225 十进制到六进制
3255:十进制到六进制查看提交统计提示提问总时间限制: 1000ms内存限制: 65536kB描述进制转换: 将十进制(不超过int类型表示的范围)的数转换为六进制的数.输入输入为第一行是组数n,后面n行是需要进制转换的十进制数.输出进制转换后的n行六进制数。样例输入31346265样例输出211141121【思路】使用简单的堆栈实现十进制到六进制的转换。【代码】AC的C++代码如下:...原创 2018-05-06 18:04:42 · 261 阅读 · 0 评论 -
4003 十六进制转十进制
4003:十六进制转十进制查看提交统计提示提问总时间限制: 1000ms内存限制: 65536kB描述将十六进制数转换成十进制数输入第一行有一个整数T,表示共有T组数据接下来T行,每一行为一个16进制无符号正整数,位数不超过8位,数中的a-f均为大写字母,数前没有多余的0输出输出共T行,每一行是一组数据的十进制表示,数字前不得有多余的0。十进制数小于2^31样例输入4AFFFFE10001...原创 2018-05-06 17:58:26 · 300 阅读 · 0 评论 -
2735 八进制到十进制
2735:八进制到十进制查看提交统计提示提问总时间限制: 1000ms内存限制: 65536kB描述把一个八进制正整数转化成十进制。输入一行,仅含一个八进制表示的正整数a,a的十进制表示的范围是(0, 65536)。输出一行,a的十进制表示。样例输入11样例输出9【思路】掌握格式化的输入输出即可。【代码】AC的C++代码如下:#include <iostream>using name...原创 2018-05-06 17:56:20 · 437 阅读 · 0 评论 -
2734 十进制到八进制
2734:十进制到八进制查看提交统计提示提问总时间限制: 1000ms内存限制: 65536kB描述把一个十进制正整数转化成八进制。输入一行,仅含一个十进制表示的整数a(0 < a < 65536)。输出一行,a的八进制表示。样例输入9样例输出11【思路】掌握格式化的输入输出即可。【代码】AC的C++代码如下:#include <iostream>using namesp...原创 2018-05-06 17:54:06 · 319 阅读 · 0 评论 -
2750 鸡兔同笼
2750:鸡兔同笼查看提交统计提示提问总时间限制: 1000ms内存限制: 65536kB描述一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物。输入一行,一个正整数a (a < 32768)。输出一行,包含两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用一个空格分开。如果没有满足要求...原创 2018-05-06 17:49:36 · 336 阅读 · 0 评论 -
4029 数字反转
4029:数字反转查看提交统计提示提问总时间限制: 1000ms内存限制: 65535kB描述给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例 2) 。输入输入共 1 行,一个整数 N。输出输出共 1 行,一个整数,表示反转后的新数。样例输入样例 #1:123样例 #2:-380样例输出...原创 2018-05-06 17:47:16 · 302 阅读 · 0 评论 -
2723 不吉利日期
2723:不吉利日期查看提交统计提示提问总时间限制: 1000ms内存限制: 65536kB描述在国外,每月的13号和每周的星期5都是不吉利的。特别是当13号那天恰好是星期5时,更不吉利。已知某年的一月一日是星期w,并且这一年一定不是闰年,求出这一年所有13号那天是星期5的月份,按从小到大的顺序输出月份数字。(w=1..7)输入输入有一行,即一月一日星期几(w)。(1 <= w <= ...原创 2018-05-06 17:44:02 · 909 阅读 · 0 评论 -
2887 能被3,5,7整除的数
2887:能被3,5,7整除的数\查看提交统计提示提问总时间限制: 1000ms内存限制: 65536kB描述输入一个整数,判断它能否被3,5,7整除,并输出以下信息:1、能同时被3,5,7整除(直接输出3 5 7,每个数中间一个空格);2、能被其中两个数整除(输出两个数,小的在前,大的在后。例如:3 5或者 3 7或者5 7,中间用空格分隔)3、能被其中一个数整除(输出这个除数)4、不能被任何数...原创 2018-05-06 17:41:19 · 505 阅读 · 0 评论 -
4139 不定方程求解
4139:不定方程求解查看提交统计提示提问总时间限制: 1000ms 内存限制: 65536kB描述给定正整数a,b,c。求不定方程 ax+by=c 关于未知数x和y的所有非负整数解组数。输入一行,包含三个正整数a,b,c,两个整数之间用单个空格隔开。每个数均不大于1000。输出一个整数,即不定方程的非负整数解组数。样例输入2 3 18样例输出4【思路】c不大于1000,要求ax + by = c...原创 2018-05-06 16:59:12 · 1978 阅读 · 0 评论 -
HDU1720 A+B Coming
【题目】【思路】本来写了一个函数实现16进制到10进制数的转换没有成功,最后查资料发现C/C++中能控制输入输出的进制类型。【代码】AC的C语言代码如下:#include int main(){ int a, b; while(scanf("%x%x", &a, &b) != EOF) { //设置输入的格式为十六进制 printf("%原创 2018-03-29 18:52:03 · 388 阅读 · 0 评论 -
不使用堆栈实现八进制,十进制,十六进制的输出--sprintf()函数
不使用堆栈实现八进制,十进制,十六进制的输出--sprintf()函数(1)语法: #include int sprintf( char *buffer, const char *format, ... );sprintf()函数和printf()类似, 只是把输出发送到buffer(缓冲区)中.返回值是写入的字符数量。(2原创 2018-04-15 18:37:24 · 905 阅读 · 0 评论 -
判断字符是否为数字的函数--int isdigit( int ch )
判断字符是否为数字的函数--int isdigit( int ch )C++中,有用于判断字符是否为字母的函数--int isdigit( int ch )。【包含的头文件】需要引入的头文件:#include 【功能】如果参数是0到9之间的数字字符,函数返回非零值,否则返回零值。char c; scanf( "%c", &c ); if( isdigit(c)原创 2018-03-29 16:13:02 · 9124 阅读 · 0 评论 -
判断字符是否为字母的函数--int isalpha( int ch )
判断字符是否为字母的函数--int isalpha( int ch )C++中,有用于判断字符是否为字母的函数--int isalpha( int ch )。【包含的头文件】需要引入的头文件:#include 【功能】如果参数是字母字符,函数返回非零值,否则返回零值。 char c; scanf( "%c", &c ); if( isalpha(c原创 2018-03-29 15:16:59 · 12018 阅读 · 0 评论 -
STL中的全排列函数next_permutation
STL中用于数列全排列的函数next_permutation(1)函数原型如下:bool next_permutation(iteratorstart,iteratorend);(2)范例:#include #include #include //没有添加头文件 #include ,不能直接输出string类型的变量!!!using namespace std;原创 2018-03-28 09:33:52 · 255 阅读 · 0 评论 -
素数的判定
【代码】#include using namespace std;bool isPrime(int n){ if (n <= 1) return false; for (int i = 2;i * i <= n;i++) { if (n % i == 0) return false; }原创 2018-03-26 16:14:42 · 179 阅读 · 0 评论 -
Fibonacci数列(递推实现)
【思路】核心为递推式:从第三项开始,每一项都是前两项的和。则将一临时变量取为前两项和并赋值给第二项,将第二项赋值给第一项。即:fn = f1 + f2 ; f2 = fn ; f1 = f2 ; 为核心代码。【代码】#include using namespace std;typedef long long LL;LL fibonacci(int n){ int f1原创 2018-03-25 15:14:54 · 1471 阅读 · 0 评论 -
HDU2018 母牛的故事
【题目】【思路】将前几天母牛的总数列出(如下图),观察规律。得出规律:第四天开始,母牛数目等于前一天数目加上前三天的数目。 天数1234567母牛数12346913原创 2018-04-04 16:13:37 · 228 阅读 · 0 评论 -
HDU2013 蟠桃记
【题目】【思路】每天吃掉前一天剩下的一半多一个,反过来考虑:后一天的桃子数目是前一天多一个再乘以两倍。即可得出以下递推式:f(n)= 2* (f(n-1)+ 1)。【代码】AC的C++代码如下:#include using namespace std;int main(){ int n; while (cin >> n) {原创 2018-03-27 12:53:03 · 418 阅读 · 0 评论 -
CCF 100003. 上楼梯
【题目】题目描述楼梯有N级台阶,上楼可以一步上一级台阶,也可以一步上两级台阶。编一程序,计算共有多少种不同的走法。输入一行,一个整数n(1 <= n <= 30),表示台阶的级数输出一个整数,走法的种数样例输入3 样例输出3方案1:走三次,每次一步方案2:先走一级,再走两级方案3:先走两级,再走一次【分析】需要一个计算走法种数的函数,参数传入台阶的级数。当台阶数为1时,只有一种走...原创 2018-03-24 10:30:45 · 432 阅读 · 0 评论 -
2016蓝桥杯C/C++初赛--网友年龄
2016蓝桥杯C/C++初赛--网友年龄原创 2018-03-18 22:26:05 · 626 阅读 · 0 评论 -
2015蓝桥杯C/C++初赛--方程整数解
第一题:方程整数解方程: a^2 + b^2 + c^2 = 1000这个方程有正整数解吗?有:a,b,c=6,8,30 就是一组解。 你能算出另一组合适的正整数解吗?请填写该解中最小的数字。 【分析】暴力法穷举破解,求出所有解。#include <iostream>using namespace std;int main(){ for(int a=1;a<=32;...原创 2018-03-18 22:13:48 · 1750 阅读 · 3 评论 -
2014蓝桥杯C/C++初赛--猜年龄
第一题:猜年龄小明带两个妹妹参加元宵灯会。别人问她们多大了,她们调皮地说:“我们俩的年龄之积是年龄之和的6倍”。小明又补充说:“她们可不是双胞胎,年龄差肯定也不超过8岁啊。”请你写出:小明的较小的妹妹的年龄。【分析】暴力法直接求出。【代码】#include <iostream>using namespace std;int main(){ int a,b; for(int i...原创 2018-03-18 19:12:28 · 780 阅读 · 0 评论 -
2012蓝桥杯省赛(C/C++)A组--海盗比酒量
2012蓝桥杯省赛(C/C++)A组--海盗比酒量原创 2018-03-18 18:27:48 · 258 阅读 · 0 评论 -
2012蓝桥杯省赛(C/C++)A组--古堡算式
第二题 古堡算式福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA 他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!” 华生:“我猜也是!” 于是,两人沉默了好久,还是没有算出合适的结果来。 请你利用计算机的优势,找到破解的答案。 把 ABCDE 所代表的数字写出来。 答案写在“解答.txt”中,不要...原创 2018-03-18 18:22:03 · 428 阅读 · 0 评论 -
2012蓝桥杯省赛(C/C++)A组--奇怪的比赛
第四题:奇怪的比赛 某电视台举办了低碳生活大奖赛。题目的计分规则相当奇怪: 每位选手需要回答10个问题(其编号为1到10),越后面越有难度。答对的,当前分数翻倍;答错了则扣掉与题号相同的分数(选手必须回答问题,不回答按错误处理)。 每位选手都有一个起步的分数为10分。 某获胜选手最终得分刚好是100分,如果不让你看比赛过程,你能推断出他(她)哪个题目答对了,哪个题目答错了吗...原创 2018-03-18 18:04:03 · 502 阅读 · 0 评论 -
二分搜索算法(Java代码实现)
二分搜索算法(Java代码实现)(1)判断是否适合分治法实现(2)实现二分搜索的Java代码如下:public class Main { public static void main(String[] args) { int[] arr = { 11, 22, 33, 44, 55, 66, 77 }; int index1 = Binary(arr, 12, 0, arr.leng...原创 2018-03-06 19:03:23 · 8632 阅读 · 1 评论 -
归并排序(Java代码实现)
归并排序归并排序采用的是分治(divide-and-conquer)法思想。(1)基本思想:将待排序元素分成大小大致相同的2个子集合,分别对2个子集合进行排序,最终将排好序的子集合合并成为所要求的排好序的集合。 (2)执行过程:(3)算法思路:(4)Java代码实现如下:public class Main { public static void main(String[] args) { ...原创 2018-03-06 18:27:33 · 55826 阅读 · 20 评论 -
最长公共子序列问题
最长公共子序列问题若给定序列X={x1,x2,…,xm},则另一序列Z={z1,z2,…,zk},是X的子序列是指存在一个严格递增下标序列{i1,i2,…,ik}使得对于所有j=1,2,…,k有:zj=xij。例如,序列Z={B,C,D,B}是序列X={A,B,C,B,D,A,B}的子序列,相应的递增下标序列为{2,3,5,7}。给定2个序列X和Y,当另一序列Z既是X的子序列又是Y的子序列时,称Z...原创 2018-03-19 16:35:08 · 1207 阅读 · 0 评论 -
关于18位身份证号码最后一位计算(Java实现)
关于18位身份证号码最后一位计算(Java实现) 现代的身份证号码长度都是18位的,但是只要知道前17位便可推出第18位数字或者字母(第18位为0,1,...,9和X中的一个)。也就是说,国内不存在前17位相同而第18位不同的身份证号码。(第18位)作为尾号的校验码,是由号码编制单位按统一的公式计算出来的。 计算方式如下(截图截自百度百科)【https://baike.baidu.c...原创 2018-02-27 14:07:46 · 9162 阅读 · 0 评论