自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 Java面试题 将数组随机打乱顺序,生成一个新的数组

思路:每次随机获得一个数,将其对应的元素与“最后一个元素”交换位置 随机数随着遍历,最大范围依次减一,所谓“最后一个元素”也在变化 结果如图所示: 代码如下: import java.util.Arrays;public class RandomTest { public static void main(String[] args) { int[] a = {1,2,3,4,5,6,7,8,9,10}; System.out.println("随机排序前的a数组:"+Arr

2020-11-18 18:48:10 2931

原创 2018蓝桥杯国赛B组C++决赛试题 第二题 激光样式 题解

2.标题:激光样式x星球的盛大节日为增加气氛,用30台机光器一字排开,向太空中打出光柱。安装调试的时候才发现,不知什么原因,相邻的两台激光器不能同时打开!国王很想知道,在目前这种bug存在的情况下,一共能打出多少种激光效果?显然,如果只有3台机器,一共可以成5种样式,即:全都关上(sorry, 此时无声胜有声,这也算一种)开一台,共3种开两台,只1种30台就不好算了,国王只好请你帮忙了。要求提交一个整数,表示30台激光器能形成的样式种数。//0表示关灯,1表示开灯...

2020-07-11 15:07:26 758 3

原创 CODE[VS] 3116 高精度练习之加法 题解

由题意得:1.输入两个位数不超过500的正整数,输出两数之和2.核心思路是,将输入的两个正整数都转化成字符串a,b进行处理3.代码如下:#include<iostream>#include<cstring>using namespace std;char a[501],b[501];int ans[501];int add(char a[]...

2019-05-09 15:09:13 271

原创 POJ 2370 Democracy in danger 题解

由题意得:1.输入一个数n,表示这个队伍的组数2.输入每组的人数(都是奇数,共n个)3.过半的组员合格则这个组合格,过半的组合格则这个队伍合格4. 输出这个队伍合格所需要的最少的合格人数5.代码如下:#include<iostream>#include<cstring>#include<algorithm>using name...

2019-05-04 11:45:52 205

原创 HDU 2138 How many prime numbers 题解

由题意得:1.输入一个数n,并随后输入n个数2.输出n个数中素数的个数3.代码如下:#include<iostream>#include<cmath>using namespace std;bool sieve(int num){ if(num==1) return false; else{ int t=sqrt(num);//...

2019-04-26 10:32:11 198

原创 HDU 2107 Founding of HDU 题解

由题意得:1.输入一个小于100的整数n,并接着输入n个整数2.输出n个整数中最大的数即老总的AC战斗力(每次输入时更新最大值即可)3.代码如下:#include<iostream>#include<algorithm>using namespace std;int main(){ int n,m; while(cin>&...

2019-04-19 11:24:52 192

原创 HDU 1701 ACMer 题解

由题意得:1:该题有n组测试数据,第一行输入n的个数2:每组数据输入下限P和上限Q两个百分数3:输出最小的学生总数量(由于P、Q都是限制范围的百分数,需要乘以学生总数量才能得到具体人数。学生数量从最小的1开始取,每次加1。由于人数是整数,所以P、Q的具体值都要取整。当下限P的具体值第一次小于上限Q的具体值时,这时的学生总数就是最小的)4:代码如下:#include&...

2019-04-12 11:44:33 197

原创 HDU 2151 Worm 题解

由题意得:1.简单的动态规划问题,定义一个二维数组,前者表示时间,后者表示当前时间所在的位置2.由于可以任意移动到左右两边一个单位的地方,所以转态转移方程为dp[i][j]=dp[i-1][j+1]+dp[i-1][j-1],(i表示时间,j表示位置),最后的dp[m][t]即为结果3.代码如下:#include&lt;iostream&gt;#include&lt;cst...

2018-12-16 10:47:40 164

原创 The Triangle POJ 1163 题解

由题意得:1.输入一个“n”,再输入n行数字,每行数字的个数与行数相等2.由于是输出最大的和,由上往下找最大和,路线是越来越多;而由下往上找最大和,路线就是越来越少3.代码如下:#include&lt;iostream&gt;#include&lt;algorithm&gt;using namespace std;#define maxn 101int n,dp[ma...

2018-12-09 23:36:54 184

原创 HDU 1003 Max Sum 题解

由题意得:1.输入“t”,意为测试数据为t组2.每组数据的第一个数“n”表示这组数据的数字个数为n3.每组数据输出三个数,第一个数为最大连续数列的和,后面两个数分别表示该数列的起始位置与终止位置4.代码如下:#include&lt;iostream&gt;#include&lt;cstdio&gt;using namespace std;int main(){ ...

2018-12-02 10:25:51 210

原创 CODE[VS] 5090 众数 题解

由题意得:1.输入一个“n”,再输入n个无序正整数2.可以将输入数进行处理,也可以不进行排序处理 这里用不排序的方法3.每输入一个数在对应的数组位置的值上加一,记录出现次数最大的次数count4.遍历数组,当数组位置对应的值与count相等时,输出当前遍历的次数5.代码如下:#include&lt;stdio.h&gt;#include&lt;string.h&gt...

2018-11-25 12:16:10 224

原创 HDU 3787 A+B 题解

由题意得:1.由于有逗号的输入,肯定是字符串输入2.遍历A、B两个字符串,将每个“0~9”的字符转换为整型,存入到sum1和sum2中,最后输出两数之和3.由于A、B的范围在(-10^9~10^9),所以用int就足够了4.代码如下:#include&lt;cstdio&gt;#include&lt;cstring&gt;int main(){ char s...

2018-11-18 20:36:06 199

原创 HDU 2203 亲和串 题解

由题意得:1.输入两组字符串,第一组为父串,第二组为子串2..因为是父串循环移位,所以字符串的不能出现类似第一位字符与第三位字符换位的情况3.既然如此,那就再复制一份父串,添在原父串后面,使父串延长一倍。这样,在新的父串里面就会出现原父串循环移位出现的任何情况4.如果子串在新父串中能找到首次出现的地址,就说明输入的两组字符串是亲和串;若找不到,就不是。当然如果,子串长度大于父串...

2018-11-11 09:47:13 233

原创 CODE[VS] 1164 统计数字 题解

 由题意得:1.输入n,再输入n个自然数2.从小到大输出 输入的自然数及其输入次数3.由要求从小到大可得 输入的自然数应该排序4.代码如下:#include&lt;iostream&gt;#include&lt;algorithm&gt;using namespace std;long n,a[1000000];int main(){ cin&gt...

2018-11-04 11:46:12 332

原创 HDU 1722 Cake 题解

 由题意得:1.此题求的只是快输,不要求求出每块蛋糕的具体份额。2.换个思路,转化为将一个矩形分为p或q份,需要画几条线的问题。其中会有n条线多余,或者说是会被覆盖(n为p与q的最大公约数)。3.代码如下:#include&lt;iostream&gt;using namespace std;int Gcd(int m, int n){ return n=...

2018-10-28 14:05:08 240

原创 CODE[VS] 1097 校门外的树 题解

由题意得:1.此题的思路是:总数—全部符合要求的数=答案2.简单的用总数减去区域的值,很可能会有重复的区域被多次减去3.所以将总数存入一个数组,将符合要求的数都标记为“1”(数组中的数未赋值时,默认为“0”),这样就算有重复的区域被再次标记为“1”,也没有影响4.代码如下:#include&lt;iostream&gt;using namespace std;int...

2018-10-21 09:57:02 876

原创 HDU 1710 Binary Tree Traversals 题解

由题意得:1.输入二叉树的前序遍历和中序遍历,输出这个二叉树的后序遍历2.前序遍历的顺序是:根-左子树-右子树  中序遍历的顺序是:左子树-根-右子树   后序遍历的顺序是:左子树-右子树-根3.根据前后遍历找到根后(由定义得:前序遍历的第一个为主根),可以将二叉树分为两个部分(左子树、右子树)4.重复上一个步骤,直到遍历完所有数字5.后序遍历就是将每次找到的根存入数组...

2018-10-14 14:11:06 243

原创 HDU 2077 汉诺塔IV 题解

由题意得:1.此题相较于传统的汉诺塔问题,多了一个新限制——从左(右)边到最右(左)边时,必须经过中间;少了一个旧限制——允许最大的盘子放到最上面2.问题就变成了三个步骤:(一)将(n-1)个盘子从最左边移到中间,(二)然后加“2”,(三)最后再将这(n-1)个盘子从中间移到最右边3.由于最大的盘子能够承载其余任意盘子,相当于不存在,所以从前后两面来看,(一)与(三)的步数是一样的...

2018-10-07 14:24:28 180

原创 CODE[VS] 2046 孪生素数 3 题解

由题意得:1.输入一个数“n”,找出“n”以内的所有满足要求的素数对2.以从小到大的顺序筛选,当“i”为素数时,判断“i+2”这个数是否为素数。如果是,计数器加一,不是,进行下一步筛选3.代码如下:#include&lt;iostream&gt;using namespace std;bool sieve(int num){ for(int i=2; i*i&...

2018-09-30 22:30:28 214

原创 HDU 2064 汉诺塔III 题解

由题意得:1.与传统的汉诺塔相比   多了一个限制——每次只能移动的相邻的杆上2.当“n”为“2”时,次数为“8”  从前三项的次数 “2  8  26”中不难得出推导公式   F[n]=3*F[n-1]+23.递归很耗时,容易超时,最好不用4.代码如下:#include&lt;iostream&gt;using namespace std;long long ha...

2018-09-23 15:41:42 228

原创 HDU 2058 The sum problem 题解

由题意得:1.输入第一个数“n”,作为首项与公差都为“1”的末项2.输入第二个数“m”,输出序列和为“m”的所有子序列,既找到首项“a1”与项数"len"3.由等差数列求和公式 S=n*(a1+an)/2=a1*n+n*(n-1)*d/2 得:a1*len=m-len*(len+1)/2   所以m-len*(len+1)/2与len存在倍数关系4.m=((x+1)+(x+2)...

2018-09-16 19:49:31 184

原创 CODE[VS] 1706 求合数和 题解

由题意得:1.就是输入上限,“0”为下限,输出范围内所有的合数之和2.先用等差公式求得范围内所有数的和,再筛选出素数,求得所有素数的和3.两数之差再减“1”(因为“1”既不是素数也不是合数)的结果4.代码如下:#include&lt;cstdio&gt;int n,p[1000],prime[1000];int sieve(int n){ int i,j,...

2018-09-09 18:48:07 429

原创 HDU 2050 折线分割平面 题解

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2050由题意得:1.题意很简单,就是找规律2画图得:f[1]=2;     f[2]=7=f[1]+5=f[1]+2*3-1    f[3]=16=f[2]+9=f[2]+2*5-1;   f[4]=29=f[3]+13=f[3]+2*7-1;……3所以:.f[n]=f[n-1]+2*(...

2018-08-05 09:23:02 148

原创 HDU 2041 超级楼梯 题解

由题意得:1.这算是斐波那契数列2.第一项与第二项的值为‘1’,从第三项开始,每一项的值为前两项之和3.代码如下:#include&lt;iostream&gt;using namespace std;int n,num,a[41];int main(){ cin&gt;&gt;n; a[1]=a[2]=1; for(int i=3;i&lt...

2018-07-29 10:10:09 246

原创 HDU 2037 今年暑假不AC 题解

由题意得:1..结构体排序2.关键点在 结束时间3.代码如下:#include&lt;cstdio&gt;#include&lt;iostream&gt;#include&lt;algorithm&gt;using namespace std;struct pro{    int s,e;} time[100];bool cmp(pro a, pro b)...

2018-07-22 12:20:58 301

原创 HDU 2051 Bitset 题解

由题意得:1.简单地说 就是十进制转化为二进制2.由于需要转化的十进制数的范围较大,所以为了能够顺利转化,我们可以将所转换而成的二进制数 一位一位的输出3.代码如下:#include<stdio.h>void bitset(int num){ int a[20],i=0; while(num) { a[i++]=num...

2018-07-10 09:54:50 168

原创 HDU 2040 亲和数 题解

由题意得:1.目标很明确,就是算真因数之和2.如果输入两个数中,任意一个数等于另一个数的真因数之和,这两个数就是亲和数3.代码如下:#include&lt;stdio.h&gt;int proper_factor(int num){    int i,sum=0;    for(i=1;i&lt;num;i++)    {        if(num%i==0)...

2018-07-08 13:21:56 331

原创 HDU 2029 Palindromes _easy version 题解

由题意得:1.题意很简单,就是判断是否是“回文串”2.配合适当的方法就很简单3代码如下:#include&lt;stdio.h&gt;#include&lt;string.h&gt;int main(){    char str1[1000],str2[1000];    int n;    scanf("%d",&amp;n);    while(n--)...

2018-06-30 12:15:07 367

原创 HDU 2018 母牛的故事 题解

由题意得:1.此题是递归类型2.此题也是数学中的函数问题3.函数为:f(x)=x(x&lt;5)&amp;&amp;f(x)=f(x-1)+f(x-3)(x&gt;=5)4.代码如下:#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;int cow(int n){    if(n&lt;5) return n;   ...

2018-06-23 10:06:06 195

原创 HDU 2015 偶数求和 题解

由题意得:1.由于全是偶数求平均值,所以结果全是整数,用“int”就行了2.若“n/m”为整数,“以2位首项,依次取m个数的和”为被除数,“m”为除数,输出“n/m”个数;若“n/m”不为整数,“以最后‘n%m’个数的和为被除数”,“n%m”为除数,再输出最后一个数3.不管“n%m”是否为整数,破题关键都在最后一次输出4.这种多次输出的题,记得一定要更新数据!#inclu...

2018-06-17 10:05:31 340

原创 HDU 2010 水仙花数 题解

由题意得:1.输入两个数,输出这两个数之间的水仙花数2.这道题的坑 不是“怎样找到水仙花数”,而是 如何将找到的水仙花数“按照指定格式输出”3.注意注意:输出最后一个水仙花数的时候 它的后面没有空格!!!4.代码如下:#include&lt;stdio.h&gt;#include&lt;math.h&gt;int main(){ int m,n,num,t,...

2018-06-09 09:47:21 348 1

原创 HDU 2005 第几天? 题解

由题意得:1.感觉很简单……2.需要按格式输入年月日3.每输入一行就输出一行4.代码如下:#include&lt;stdio.h&gt;int main(){    int year,month,day,sum;    while(~scanf("%d/%d/%d",&amp;year,&amp;month,&amp;day))     {        su...

2018-06-03 10:53:17 186

原创 HDU 1092 A+B for Input-Output Practice (IV) 题解

由题意得:1.这是一道求和的题2.每行输入一个“n”,后面紧跟输入n个数3.每行只有一个和4.当输入的“n”为“0”的时候,程序结束5.代码如下:(注意:别忘了更新“sum”!)#include&lt;stdio.h&gt;int main(){ int n,i,num,sum=0; while(scanf("%d",&amp;n)&amp;&a...

2018-05-27 09:39:13 1236 4

原创 HDU 1037 Keep on Truckin' 题解

由题意得:1.输入三个数,输出一个数2.输入的每个数与168比较大小3.如果这个数小于或等于168,则输出“CRASH '这个数'\n”(这个换行符把我坑惨了!如果你们下次遇到问题,不妨想想是不是需要加一个换行符……)4.如果这三个数都大于168,则输出“NO CRASH”(这次不用加换行符……反正我没加也过了……)5.代码如下:#include&lt;stdio.h...

2018-05-19 09:54:22 228

原创 HDU 1000 A + B Problem 题解

由题意得:1.“Input”中的“integers”表明该题用整型“int”2.“Input”中的“Each line”和“Output”中的“For each case”表明该题有多次输入、输出,并且输出要换行3.(题并不难,就是要细心)代码如下:#include&lt;stdio.h&gt;int main(){    int a,b;    while(~sca...

2018-05-12 08:55:34 241

原创 CODE[VS] 3837 台风 题解

由题意得:1.其实这是一道数学题,求出淹没时间就行了2.注意是淹没,“淹没”!=“持平”(时间以“1”为单位)3.由于要输出两行,所以要注意换行4.代码如下:#include &lt;stdio.h&gt;int main(){    int h,n,x,t;    scanf("%d%d%d%d",&amp;h,&amp;n,&amp;x,&amp;t); ...

2018-05-06 09:12:54 139

原创 CODE[VS] 1475 m进制转十进制 题解

由题意得:1.输入两个数字,前者表示需要转化的数字,后者表示该数字是多少进制的2.由于有的进制超过了“10”,所以第一个数字里可能有字母,因而不能用基本整型,需用字符型;而输出的数字由于涉及到精度问题,所以需要用浮点型3.用switch将第一个数字从右到左一次输入进行计算求和,最后输出和4.代码如下:#include&lt;stdio.h&gt;#include&lt;...

2018-04-29 09:25:07 152

原创 CODE[VS] 3337 Little Pony and Crystal Mine 题解

由题意得:1.输入数字n,即输出图案的层数2.先输出“*”,再输出“D” 3.图案分为上下两段对称图形4.上端“*”数量与递减,而“D”数量递增,每层符号数量与层数有关5.代码如下:#include&lt;stdio.h&gt;int main(){    int n,m,i,j;    scanf("%d",&amp;n);    m=n/2+1;...

2018-04-16 12:34:39 262

原创 CODE[VS] 2741 n里的质数 题解

由题意得:1.输入一个数n,作为上限2.由于是输出素数,所以“2”是输出的第一个数3.将“2~n”之间的每个数都标记为“0”4.将每个数进行判断是否为合数,若是,则更新标记为“1”5.输出标记为“0”的数6.代码如下:#include&lt;stdio.h&gt;int main(){    int n,i,j,flag;    scanf("%d",&...

2018-04-14 09:30:55 193

原创 CODE[VS] 3136 小明系列 I 题解

由题意得:1.每行的数字的差 为公差为1的等差数列 每行的首项为所在行数2.每行数字的第一个数字 为(所在行数)*(所在行数+1)/23.每行数字的个数 为第一行为n 下面每行递减一个4.代码如下:#include&lt;stdio.h&gt;int main(){    int n,i,j,k=0;    scanf("%d",&amp;n);    for(...

2018-04-08 12:51:15 460

空空如也

空空如也

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

TA关注的人

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