●算法很美
算法不是很枯燥,本专栏中介绍算法的奇淫技巧~~~
acDream_
这个作者很懒,什么都没留下…
展开
-
HDU杭电OJ经典100题2000-2099_Java版详细题解(持续更新)
今年寒假打算用Java把杭电2000-2099全部AC(现在持续更新),如下是题目链接,之后是我的题解,全部做完后我会把所有AC的题解打包上传的题号 题名 题号 题名 2000 ASCII码排序 2001 计算两点间的距离 2002 计算球体积 2003 求绝对值 2004 成绩转换 2005 第几天? 2...原创 2018-08-05 14:18:22 · 13849 阅读 · 2 评论 -
全国高校绿色计算大赛模拟赛第二阶段题解
第1关:气温预测挑战任务根据每日气温数组,请重新生成一个数组,新数组对应位置的是你需要再等待多久温度才会升高的天数。如果之后都不会升高,请用0来代替。例如:给定一个数组 temps = {34,35,33,25,44,19,18,17} 新生成的数组应该为[1, 3, 2, 1, 0, 0, 0, 0]。temps数组第一天温度是34℃,第二天是35℃,所以对应新生成数组位置的数据...原创 2018-09-27 21:43:33 · 1505 阅读 · 0 评论 -
全国高校绿色计算大赛-模拟赛第一阶段题解
第1关:求和挑战任务这次“绿盟杯”大赛,小明作为参赛选手在练习的时候遇到一个问题,他要对一个范围的两个数进行数位的累加,例如有两个数 15,19 则 他们的数位和应该为:1+5+1+6+1+7+1+8+1+9,结果为40。你来帮他解决这个问题吧。编程要求补充完善右侧代码区中的getSum(int num1,int num2)函数,实现对两个数num1和num2的数位和相加,最...原创 2018-09-26 21:02:36 · 5350 阅读 · 0 评论 -
关于错排公式的推导与应用
错排问题,又称更列问题,是组合数学中的问题之一。对于它的研究最早可以追溯到十八世纪,当时他被数学家尼古拉·伯努利和欧拉研究,因此在历史上也被称为伯努利--欧拉的错装信封问题。这个问题有许多具体的版本,比如在写信时讲n封信装到n个不同的信封里,有多少种全部装错信封的情况?再比如n个人各写一张贺卡相互赠送,有多少种赠送方法?这些经典的题目都是典型的错排问题。 相信看过上面对于错排问题的简单的介绍...原创 2018-08-11 22:07:58 · 475 阅读 · 0 评论 -
大数加法【顺序栈】
大数加法问题:编程实现两个大数的加法运算思路:1.根据加法的规则我们都是从个位开始加的,所以这里可以使用栈2.记录进位,下次相加的时候加上3.若进位最后还有剩余,要添加到字符串中4.逆序输出package 大数加法;import java.util.Scanner;public class BigIntegerDemo { public static Strin...原创 2018-10-30 19:08:56 · 334 阅读 · 0 评论 -
为什么使用二分查找的速率要比按其他比例分割的查找速率要快???
在说任意比例分割查找之前我们先来谈谈黄金分割查找与二分查找:在二分查找中,我们是取中旬等于左向右和的中间值,即用等分的方法进行查找。那为什么一定要等分呐?能不能进行“黄金分割”?也就是中间=左+ 0.618(右 - 左),当然中间要取整数。我们来分析一下,假设有一段1米长的绳子,其中有Ñ个点,我们找其中的一个点的话,我们按黄金分割比例分割来的话,数学期望是0.618 * 0.618 ...原创 2018-10-22 20:33:08 · 1456 阅读 · 0 评论 -
Brute-Force模式匹配算法两种实现方式
1.public static int indexOf(String mainStr,String subString,int start) { if((mainStr.length()<subString.length()) || mainStr==null || subString==null ) { return -1; } for (int i = start...原创 2018-10-10 20:56:41 · 1008 阅读 · 0 评论 -
求迷宫最短路径【队列+回溯】
求迷宫的最短路径(0表示通路,1表示受阻)问题:有一个迷宫,求从入口到出口的最短路径,其中0表示通路,1表示受阻,规定向下是X轴,向右是Y轴输入:第一个数迷宫x轴的长度,第二个数迷宫y轴的长度,紧接着入口点的坐标和出口的坐标,之后是一个迷宫输出:迷宫所走的路径的坐标样例:INPUT:6 81 16 80 1 1 1 0 1 1 11 0 1 0 1 0 ...原创 2018-10-09 00:10:58 · 5682 阅读 · 2 评论 -
第3周问题 (楼号m和n之间的最短移动距离)
每周一题之3 楼号m和n之间的最短移动距离[问题描述] X星球居民小区的楼房全是一样的,并且按矩阵样式排列。其楼房的编号为1,2,3... 当排满一行时,从下一行相邻的楼往反方向排号。 比如:当小区排号宽度为6时,开始情形如下: 1 2 3 4 5 6 12 11 10 9 8 7 13 14 15 ..... 我们的问题是:已知了两个楼号m和n...原创 2019-01-27 18:42:27 · 628 阅读 · 0 评论 -
第2周题目 Mineweep(扫雷)
每周一题之2 Mineweep(扫雷)PC/UVa IDs: 110102/10189,Popularity: ASuccess rate: high Level: 1测试地址:https://vjudge.net/problem/UVA-10189[问题描述]Have you ever played Minesweeper? It’s a cute little gam...原创 2019-01-26 10:27:01 · 448 阅读 · 0 评论 -
第1周问题(3n+1问题)
3n+1问题PC/UVa IDs: 110101/100Popularity: ASuccess rate: low Level: 1测试地址:https://vjudge.net/problem/UVA-100[问题描述]考虑如下的序列生成算法:从整数 n 开始,如果 n 是偶数,把它除以 2;如果 n 是奇数,把它乘 3 加1。用新得到的值重复上述步骤,直到 n =...原创 2019-01-25 21:07:09 · 683 阅读 · 0 评论 -
51nod_NOIP普及组预科班模拟赛Java题解
A: 题解:package a51nodWeb.NOIP普及组模拟赛;import java.util.Scanner;public class A { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(Syste...原创 2018-08-12 11:37:09 · 286 阅读 · 0 评论 -
02-线性结构2 一元多项式的乘法与加法运算 (java)
02-线性结构2 一元多项式的乘法与加法运算 (20 分)设计函数分别求两个一元多项式的乘积与和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。...原创 2018-09-16 23:19:23 · 828 阅读 · 0 评论 -
PTA 自测-5 Shuffling Machine(DS)
自测-5 Shuffling Machine(20 分)Shuffling is a procedure used to randomize a deck of playing cards. Because standard shuffling techniques are seen as weak, and in order to avoid "inside jobs" where empl...原创 2018-08-20 21:48:30 · 332 阅读 · 0 评论 -
PTA 自测-4 Have Fun with Numbers(DS)
自测-4 Have Fun with Numbers(20 分)Notice that the number 123456789 is a 9-digit number consisting exactly the numbers from 1 to 9, with no duplication. Double it we will obtain 246913578, which happen...原创 2018-08-20 21:41:31 · 307 阅读 · 0 评论 -
PTA 自测-3 数组元素循环右移问题(DS)
自测-3 数组元素循环右移问题(20 分)一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0A1⋯AN−1)变换为(AN−M⋯AN−1A0A1⋯AN−M−1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格...原创 2018-08-20 21:38:36 · 462 阅读 · 0 评论 -
PTA 自测-2 素数对猜想(DS)
自测-2 素数对猜想(20 分)让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<105),请计算不超过N的满足猜想的素数对的个数。输入格式:输入在一行给出正整数N。输出格式:在一行中输...原创 2018-08-20 21:34:58 · 223 阅读 · 0 评论 -
PTA 自测-1 打印沙漏(DS)
自测-1 打印沙漏(20 分)本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印***** *** * ********所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉...原创 2018-08-20 21:33:05 · 333 阅读 · 0 评论 -
题解1074:数字整除
原题链接:数字整除解题思路:我是懒人,直接Java大数,题目给的信息也没用上注意事项:参考代码:123456789101112131415161718192021222324252627282930package cWeb.buleCup; import java.math.BigInteger;import java.util.Scanner; public class C1074 { ...原创 2018-06-29 18:33:21 · 403 阅读 · 0 评论 -
题解1073:弟弟的作业
原题链接:弟弟的作业解题思路:注意事项:参考代码:12345678910111213141516171819202122232425262728293031public static boolean isTrue(String sz) { if(sz.charAt(sz.length()-1)=='?') { return false; } int result =...原创 2018-06-29 13:02:51 · 750 阅读 · 0 评论 -
题解1099:校门外的树
解题思路:有树的地方都设为1,没树设为0注意事项:参考代码:1234567891011121314151617181920212223242526272829303132333435363738394041package cWeb.buleCup; import java.util.Scanner;/** * 未成功 * @author Geek * @version 1.0 * @...原创 2018-06-29 12:25:36 · 578 阅读 · 0 评论 -
问题 1461: [蓝桥杯][基础练习VIP]FJ的字符串
package cWeb.buleCup;import java.util.Scanner;public class C1461 { public static StringBuffer getStr(int i) { if(i==1) return new StringBuffer("A"); else return getStr(i-1).append((cha...原创 2018-06-27 21:06:56 · 239 阅读 · 0 评论 -
问题 1115: DNA
package cWeb.buleCup;import java.util.Scanner;public class C1115 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); int N = ...原创 2018-06-27 20:50:30 · 336 阅读 · 0 评论 -
题解1232:查找最大元素 (Java描述)
原题链接:查找最大元素解题思路:注意事项:参考代码:public class 查找最大元素 {public static void main(String[] args) {// TODO Auto-generated method stubScanner in = new Scanner(System.in);while(in.hasNext()) {StringBuffer str = new...原创 2018-06-22 09:06:19 · 705 阅读 · 0 评论 -
题解1180:不容易系列 (Java描述)
原题链接:不容易系列解题思路:注意事项:参考代码:public class 不容易系列 {public static void main(String[] args) {// TODO Auto-generated method stubScanner in = new Scanner(System.in);int N = in.nextInt();int a;while (N > 0) {...原创 2018-06-22 09:05:52 · 349 阅读 · 0 评论 -
题解1260:逆反的01串 (Java描述)
原题链接:逆反的01串解题思路:注意事项:参考代码:public static void main(String[] args) {// TODO Auto-generated method stubScanner in = new Scanner(System.in);while(in.hasNext()) {StringBuffer str= new StringBuffer("");str....原创 2018-06-22 09:05:22 · 589 阅读 · 0 评论 -
题解1161:【回文数(二)】 (Java描述)
原题链接:【回文数(二)】解题思路:注意事项:居左写的我觉得有问题,011011二进制输入我感觉我是对的参考代码:public class 回文数2 {public static String nv(String num) {return new StringBuffer(num).reverse().toString();}public static boolean isHw(String nu...原创 2018-06-22 09:04:55 · 332 阅读 · 0 评论 -
题解1236:母牛生小牛 (Java描述)
原题链接:母牛生小牛解题思路:找规律 1 1 1 2 3 4 6 9 13注意事项:参考代码:public class Main {public static void main(String[] args) {// TODO Auto-generated method stubScanner in = new Scanner(System.in);int N = in.nextInt();in...原创 2018-06-22 09:04:32 · 1048 阅读 · 0 评论 -
题解1787:小O的数字 (Java描述)
原题链接:小O的数字解题思路:不是很好的解法,但是很暴力注意事项:参考代码:public static void main(String[] args) {// TODO Auto-generated method stubScanner in = new Scanner(System.in);String num = null;// 一行一行去打印电子数字char[][] nums = new ...原创 2018-06-22 09:03:55 · 305 阅读 · 0 评论 -
题解1249:简单编码 (Java描述)
原题链接:简单编码解题思路:注意事项:参考代码:Scanner in = new Scanner(System.in);String bm;StringBuffer bmBuffer;while(in.hasNext()) {bm=in.next();bmBuffer = new StringBuffer(bm);if(bm.equals("END")) {break;}else {for(int...原创 2018-06-22 09:03:16 · 233 阅读 · 0 评论 -
题解1197:发工资咯 (C语言描述)
原题链接:发工资咯解题思路:枚举法拿出数去减去面额 之后判断是否大于等于0 若大于等于0就跳出循环 继续下一个数的判断注意事项:若有不明白的地方请在下方评论参考代码:#include <stdio.h>int main(){int num;int gz[100];int mg[6]={100,50,10,5,2,1};int i,k,len;while(scanf("%d",&...原创 2018-06-22 09:02:07 · 1100 阅读 · 0 评论 -
题解1196:去掉空格 (C语言描述)
problem:http://www.dotcpp.com/oj/problem1196.html参考代码:#include<stdio.h>#include<string.h>int main(){char zf[81]={0};int n,j,len;while(gets(zf)!=NULL){len=strlen(zf);for(n=0;n<len;n++){i...原创 2018-06-22 09:01:35 · 1726 阅读 · 0 评论 -
问题 1011: C语言程序设计教程(第三版)课后习题6.1
解题思路:使用牛顿迭代法 解出公约数之后使用 两个数之积=公约数*公倍数注意事项:参考代码:#include<stdio.h>int main(){int a,b,t;scanf("%d%d",&a,&b);int j;j=a*b;while(a%b!=0){t=b;b=a%b;a=t;}printf("%d %d",b,j/b); return 0;}...原创 2018-06-22 09:00:35 · 1061 阅读 · 0 评论 -
素数环(nyoj-488)
488-素数环内存限制:64MB时间限制:1000ms特判: No题目描述:有一个整数n,把从1到n的数字无重复的排列成环,且使每相邻两个数(包括首尾)的和都为素数,称为素数环。为了简便起见,我们规定每个素数环都从1开始。例如,下图就是6的一个素数环。输入描述:有多组测试数据,每组输入一个n(0<n<20),n=0表示输入结束。输出描述:每组...原创 2019-03-30 19:34:08 · 325 阅读 · 0 评论 -
The Triangle(POJ - 1163)
The TrianglePOJ - 116373 88 1 02 7 4 44 5 2 6 5(Figure 1)Figure 1 shows a number triangle. Write a program that calculates the highest sum of numbers passed on a...原创 2019-04-17 21:27:20 · 209 阅读 · 0 评论 -
Best Cow Line(POJ - 3617)
Best Cow LinePOJ - 3617FJ is about to take hisN(1 ≤N≤ 2,000) cows to the annual"Farmer of the Year" competition. In this contest every farmer arranges his cows in a line and herds them past...原创 2019-04-10 10:10:06 · 259 阅读 · 0 评论 -
Cleaning Shifts(POJ - 2376)
Cleaning ShiftsPOJ - 2376Farmer John is assigning some of his N (1 <= N <= 25,000) cows to do some cleaning chores around the barn. He always wants to have one cow working on cleaning thi...原创 2019-04-09 20:58:02 · 321 阅读 · 0 评论 -
Radar Installation(POJ-1328)
Radar InstallationPOJ - 1328Assume the coasting is an infinite straight line. Land is in one side of coasting, sea in the other. Each small island is a point locating in the sea side. And any r...原创 2019-04-06 23:13:51 · 283 阅读 · 0 评论 -
Intervals(POJ-1201)
IntervalsPOJ - 1201You are given n closed, integer intervals [ai, bi] and n integers c1, ..., cn.Write a program that:reads the number of intervals, their end points and integers c1, ..., c...原创 2019-04-06 11:49:17 · 415 阅读 · 0 评论 -
Ultra-QuickSort (POJ - 2299)
Ultra-QuickSort POJ - 2299In this problem, you have to analyze a particular sorting algorithm. The algorithm processes a sequence of n distinct integers by swapping two adjacent sequence elemen...原创 2019-04-04 15:56:15 · 237 阅读 · 0 评论