YZJ的牛肉干

Description

今年的ACM暑期集训队一共有18人,分为6支队伍。其中有一个叫做

YZJ的大佬,在共同的集训生活中,大家建立了深厚的友谊,

YZJ准备做点什么来纪念这段激情燃烧的岁月,想了一想,

YZJ从家里拿来了一块上等的牛肉干,准备在上面刻下一个长度为

n的只由"Y,Z,J"三种字符组成的字符串(可以只有其中一种或两种字符,但绝对不能有其他字符),

YZJ学长同时禁止在串中出现ZZ相邻的情况,他认为,"

ZZ"看起来就像骂人的话语,影响不好。

YZJ的崇拜者,能帮学长算一下一共有多少种满足要求的不同的字符串吗?

Input

输入数据包含多个测试实例,每个测试实例占一行,由一个整数n组成,(0<n<400<n<40)。

Output

对于每个测试实例,请输出全部的满足要求的涂法,每个实例的输出占一行。

Sample Input 1

  1. 1
  2. 2

Sample Output 1

3

8

  • 思路如下

这题考的 是 递推(只能为递推,如果不是递推 情况太多太复杂了 ),重要的是我们要找到其中各项之间的规律。

我们先观察 第一项为3,第二项为8,第三项的方案数位22,

此时第三项的值为前两项的值的和乘以2。

此时我们猜测规律是 除前两项之外,某项之和等于前两项之和的二倍

  • 题解如下
  1. #include<stdio.h>
  2. int main()
  3. {
  4. long long int ar[45];
  5. ar[1] = 3;
  6. ar[2] = 8;
  7. for(int i = 3;i <40;i++)
  8. {
  9. ar[i] = 2*(ar[i-1] + ar[i-2]);
  10. }
  11. int n;
  12. while (~scanf("%d",&n))
  13. {
  14. printf("%lld\n",ar[n]);
  15. }
  16. return 0;
  17. }

签到题它又来了

Description

现在要求按照以下方式排序(默认排序都是从小到大)

现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复;还知道这个长方形的宽和长,编号、长、宽都是整数;现在要求按照一下方式排序(默认排序规则都是从小到大);

1.按照编号从小到大排序

2.对于编号相等的长方形,按照长方形的长排序;

3.如果编号和长都相同,按照长方形的宽排序;

4.如果编号、长、宽都相同,就只保留一个长方形用于排序,删除多余的长方形;最后排好序按照指定格式显示所有的长方形;

Input

第一行有一个整数

0

<

n

<

10000

0<n<10000,表示接下来有

n

n组测试数据;

每一组第一行有一个整数

0

<

m

<

1000

0<m<1000,表示有

m

m个长方形;

接下来的

m

m行,每一行有三个数 ,第一个数表示长方形的编号,

第二个和第三个数值大的表示长,数值小的表示宽,相等

说明这是一个正方形(数据约定长宽与编号都小于10000);

Output

顺序输出每组数据的所有符合条件的长方形的 编号 长 宽

  1. Sample Input 1
  2. 1
  3. 8
  4. 1 1 1
  5. 1 1 1
  6. 1 1 2
  7. 1 2 1
  8. 1 2 2
  9. 2 1 1
  10. 2 1 2
  11. 2 2 1

Sample Output 1

1 1 1

1 2 1

1 2 2

2 1 1

2 2 1

解题思路

这题 主要是要用结构体去存储各种数据类型,然后用sort函数对结构体进行排序,这题的难点 一是在与编写sort函数所需的比较函数(编写的时候 应该明白 当比较函数 返回值 为 false 是才进行交换),其次是 要对完全相同的数据进行去重操作(只输出一次),要想去重,只需在用for循环输出的时候,室某个元素 与前一个元素进行 比较如果完全相同,就不输出,否则输出。。

题解如下

  1. #include<stdio.h>
  2. #include <algorithm>
  3. using namespace std;
  4. struct Rec
  5. {
  6. int hao,len,wei;
  7. };
  8. bool cmp_sort(Rec &a,Rec &b)
  9. {
  10. if(a.hao<b.hao)
  11. {
  12. return true;
  13. }
  14. else if(a.hao==b.hao&&a.len<b.len)
  15. {
  16. return true;
  17. }
  18. else if(a.hao==b.hao&&a.len==b.len && a.wei<b.wei)
  19. {
  20. return true;
  21. }
  22. return false;
  23. }
  24. int main()
  25. {
  26. int n;
  27. scanf("%d",&n);
  28. while (n--)
  29. {
  30. int m;
  31. scanf("%d",&m);
  32. Rec rec[m+100];
  33. for(int i=0;i<m;i++)
  34. {
  35. int l,w;
  36. scanf("%d%d%d",&rec[i].hao,&l,&w);
  37. if(l<w)
  38. {
  39. int temp=l;
  40. l=w;
  41. w=temp;
  42. }
  43. rec[i].len=l;
  44. rec[i].wei=w;
  45. }
  46. sort(rec,rec+m,cmp_sort);
  47. for(int i = 0; i < m;i++ )
  48. {
  49. if(i == 0)
  50. printf("%d %d %d\n",rec[i].hao,rec[i].len,rec[i].wei);
  51. else if(rec[i].hao== rec[i-1].hao && rec[i].len == rec[i-1].len && rec[i].wei == rec[i-1].wei)
  52. {
  53. //
  54. }
  55. else
  56. printf("%d %d %d\n",rec[i].hao,rec[i].len,rec[i].wei);
  57. }
  58. }
  59. printf("\n");
  60. return 0;
  61. }

扫雷

Description

hg学长上程序设计课的时候非常喜欢玩扫雷。

现在

hg学长有一个初始的雷矩阵,他希望聪明的你帮他生成一个扫雷矩阵。

扫雷矩阵的每一行每一列都是一个数字,每个数字的含义是与当前位置相邻的8个方向中,有多少个雷(在下图中,雷用表示);

如果当前位置就是雷的话,仍输出一个


比如初始的雷矩阵如下:

…**

..

..

对应的数字矩阵为:

0122

13**

44

23

Input

第一行两个整数n,m,代表矩阵有n行m列(1≤n,m≤10001≤n,m≤1000)接下来共n行,每行m个字符

Output

输出共

n

n行

m

m列,为扫雷矩阵。

Sample Input 1

4 4



…**

..

..

Sample Output 1

0122

13**

44

23

Sample Input 2

3 4





..

Sample Output 2

1111

23

23

  • [ ]思路如下

这题的思路很明确,就是判断二维数组中某个元素的是否为 '.'符号,如果是就统计这个元素上下左右的 ‘’ 个数,并存到一个相同大小的二维 char数组中,否则就直接把 '’ 存入到二维char数组中。

  • [ ]题解如下
  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<iostream>
  4. using namespace std;
  5. int main()
  6. {
  7. int n,m;
  8. scanf("%d%d",&n,&m);
  9. char ar[n][m];
  10. for(int i=0;i<n;i++)
  11. {
  12. for(int j=0;j<m;j++)
  13. {
  14. cin>>ar[i][j];
  15. }
  16. }
  17. char ans[n][m];
  18. //printf("\n\n");
  19. for(int i=0;i<n;i++) //两层for循环去遍历数组的元素
  20. {
  21. for(int j=0;j<m;j++)
  22. {
  23. int count=0;
  24. if(ar[i][j] == '.')
  25. {
  26. if(i-1>=0&&ar[i-1][j] == '*')
  27. count++;
  28. if(i+1<n&&ar[i+1][j] == '*')
  29. count++;
  30. if(j-1>=0&&ar[i][j-1] == '*')
  31. count++;
  32. if(j+1<m&&ar[i][j+1] == '*')
  33. count++;
  34. if(i-1>=0&&j-1>=0 &&ar[i-1][j-1] == '*')
  35. count++;
  36. if(i+1<n&&j+1<m&&ar[i+1][j+1] == '*')
  37. count++;
  38. if(i-1>=0&&j+1<m&&ar[i-1][j+1] =='*')
  39. count++;
  40. if(i+1<n&&j-1>=0&&ar[i+1][j-1]=='*')
  41. count++;
  42. // printf("%d\n",count);
  43. ans[i][j]=count+'0';
  44. }
  45. else
  46. {
  47. ans[i][j]='*';
  48. }
  49. }
  50. }
  51. for(int i=0;i<n;i++)
  52. {
  53. for(int j=0;j<m;j++)
  54. {
  55. printf("%c",ans[i][j]);
  56. }
  57. printf("\n");
  58. }
  59. return 0;
  60. }

万德隆购物

Description

众所周知万德隆超市中有一自动扶梯,一次lly去购物时实验了一下他沿开动上行的自动扶梯走上楼时,数得走了n级,当他用同样的速度相对扶梯沿向下开动的自动扶梯走上楼时,数得走了m级,lly想让你们帮他编程求出当自动扶梯静止时自动扶梯露出的级数是多少。

Input

输入n,mn,m(1≤n≤m≤4001≤n≤m≤400)

Output

输出包含一个整数(答案向下取整:比如你计算结果为24.2要输出24)

Sample Input 1

16 48

Sample Output 1

24

Sample Input 2

16 400

Sample Output 2

30

  1. 这题是可以说是初中物理题,分析lly 再上楼与下楼的时候,lly相对楼梯的速度是相同的,而路程是相同,所以lly上楼的时间与下楼的时间只比为n m ,由于人 上下楼梯的路程是相同的,所以建立方程求解:

  • [ ]题解如下
  1. #include<cstdio>
  2. int main() {
  3. double n,m;
  4. scanf("%lf%lf",&n,&m);
  5. double ans=2*m*n/(m+n); printf("%d\n",int(ans));//强制转换自动向下取整 return 0;
  6. }

  1. 卖火柴的lly
  2. Description
  3. 继去年的
  4. riba2534的拷问(1)riba2534的拷问(2)llylly也想和zjriba2534riba2534一样强,所以llylly仿照riba2534的拷问riba2534的拷问给你n根火柴棍,问你可以拼出多少个形如“A+B=C”的等式?等式中的ABC是用火柴棍拼出的整数(若该数非零,则最高位不能是0)。
  5. 用火柴棍拼数字0-9的拼法如图所示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jEwrGNch-1573733533486)(evernotecid://2C354EAE-828A-4D61-888B-9453DC360564/appyinxiangcom/25418762/ENResource/p321)]

  1. 注意:加号与等号各自需要两根火柴棍如果AB,则A+B=CB+A=C视为不同的等式(ABC&gt;=0nn根火柴棍必须全部用上Input
  2. 共一行,有一个整数n0n24n0n24)。
  3. Output
  4. 共一行,表示能拼成的不同等式的数目。
  5. Sample Input 1
  6. 14
  7. >Sample Output 1
  8. >2
  9. >Sample Input 2
  10. >18
  11. >Sample Output 29
  12. Hint
  13. 对于样例1:
  14. 2个等式为:
  15. 0+1=11+0=1
  16. 对于样例2:
  17. 9个等式为:
  18. 0+4=4
  19. 0+11=11
  20. 1+10=11
  21. 2+2=4
  22. 2+7=9
  23. 4+0=4
  24. 7+2=9
  25. 10+1=11
  26. 11+0=11
  1. **思路如下**
  2. >这题,既然是要找出形如A+B=C这样的等式,那最简单的办法就是分别枚举ABC。接下来的问题就是: ABC的枚举范围是什么呢?我们只需要在0~1111之间枚举就可以了。为什么呢?因为题目中最多 只有24根火柴棒即m<=24。除去“+”和“-”占用的4根火柴棍,那么最多剩下20根火柴棍。而0-9这十个数 字中,1需要用到的火柴棍最少,只需要2根火柴棍。而20根火柴棍最多能组成101。因此A+B=C这个 等式中A,B,C中任意一个数都不能超过1111。接下来就暴力求解就阔以了。
  3. * [ ]**题解如下**
  4. ```c
  5. #include<stdio.h>
  6. /* 方法一:这是最暴力的方法
  7. 我们一开始先用一个数组去存储除 每个数字所用的火彩棒数,用了 9层for循环,每三层for循环 表示一个数,而每一个数的开头不能是0,我们先假设 开头一开始可以为零,例如我们通过 a,b,c 表示一个整数,若a为0,我们最后把a为零所占用的 火柴棒的数量去掉(另外两个数 也同理可以表示出来),最后通过两个等式同时成立 1.所用的火柴棒数==所给的火柴棒数,并且 前两个数字之和 ==第三个。*/
  8. int main()
  9. {
  10. int n;
  11. scanf("%d",&n);
  12. n=n-4;
  13. int ar[10];
  14. ar[0]=6;
  15. ar[1]=2;
  16. ar[2]=5;
  17. ar[3]=5;
  18. ar[4]=4;
  19. ar[5]=5;
  20. ar[6]=6;
  21. ar[7]=3;
  22. ar[8]=7;
  23. ar[9]=6;
  24. int sum_count=0;
  25. for(int i=0;i<=7;i++)
  26. {
  27. if(i!=3&&i!=5&&i!=6&&i!=8&&i!=9)
  28. for(int j=0;j<=9;j++)
  29. {
  30. for(int k=0;k<=9;k++)
  31. for(int a=0;a<=7;a++)
  32. {
  33. if(a!=3&&a!=5&&a!=6&&a!=8&&a!=9)
  34. for(int b=0;b<=9;b++)
  35. {
  36. for(int c=0;c<=9;c++)
  37. for(int x=0;x<=7;x++)
  38. {
  39. if(x!=3&&x!=5&&x!=6&&x!=8&&x!=9)
  40. for(int y=0;y<=9;y++)
  41. {
  42. for(int z=0;z<=9;z++)
  43. if(i*100+j*10+k+a*100+b*10+c==x*100+y*10+z)
  44. {
  45. int count_zero=0;
  46. if(i==0)
  47. {
  48. count_zero++;
  49. if(j==0)
  50. {
  51. count_zero++;
  52. }
  53. }
  54. if(a==0)
  55. {
  56. count_zero++;
  57. if(b==0)
  58. {
  59. count_zero++;
  60. }
  61. }
  62. if(x==0)
  63. {
  64. count_zero++;
  65. if(y==0)
  66. {
  67. count_zero++;
  68. }
  69. }
  70. if(ar[i]+ar[j]+ar[k]+ar[a]+ar[b]+ar[c]+ar[x]+ar[y]+ar[z]-6*count_zero==n)
  71. {
  72. sum_count++;
  73. }
  74. }
  75. }
  76. }
  77. }
  78. }
  79. }
  80. }
  81. printf("%d",sum_count);
  82. return 0;
  83. }
  1. /*方法二:看似不那么暴力*/
  2. #include <cstdio>
  3. int fun(int x) {
  4. int ans=0,f[10]= {6,2,5,5,4,5,6,3,7,6}; //存储给每个数字所用的火柴数
  5. while(x/10!=0) { //把每一位进行分割
  6. ans+=f[x%10]; //并把分割出来的这一位数 作为f数组下标,
  7. x=x/10; } //这里的 ans 是表示某个数 占用火柴棒的总数
  8. ans+=f[x];
  9. return ans; }
  10. int main() {
  11. int a,b,c,m,ans=0;
  12. scanf("%d",&m);
  13. for (a = 0; a<= 1111; a++) {
  14. for(b=0; b<= 1111; b++) { //两层for循环去遍历所 a b的取值
  15. c=a+b;
  16. if((fun(a)+fun(b)+fun(c))==m-4) { //等式成立方案数加1
  17. ans++;
  18. } }
  19. }
  20. printf("%d\n",ans);
  21. return 0;
  22. }

  1. 进位
  2. Description
  3. 很多小学生在学习加法时,发现“进位”特别容易出错。你的任务是计算两个三位数在相加时需要多少次进位。你编制的程序应当可以连续处理多组数据,直到读到两个0(这是输入结束标记)。
  4. Input
  5. 输入两个正整数
  6. m,n.(m,n,都是三位数)
  7. Output
  8. 输出
  9. m,n,相加时需要进位多少次。
  10. Sample Input 1
  11. 123 456
  12. 555 555
  13. 123 594
  14. 0 0
  15. Sample Output 1
  16. 0
  17. 3
  18. 1
  19. Hint
  • [ ]思路如下

这题 已经明确是两个 三位数,是否进位我们要看,对应位相加是否大于9.

一种思路是我们 一字符串的方式输入到一个char 数组中,然后两个char数组对应转存到,两个int数组中,对应相加,看着一位是否大于9,如果大于 方案数加1,并把下一位的值加1.

  • [ ]题解如下

  1. #include<stdio.h>
  2. #include<algorithm>
  3. #include<string.h>
  4. using namespace std;
  5. int main()
  6. {
  7. char ar[10],br[10];
  8. scanf("%s%s",ar,br);
  9. int LEN_ar=(int)strlen(ar);
  10. int LEN_br=(int)strlen(br);
  11. while (ar[0]!='0'&&br[0]!='0'&&LEN_ar!=1&&LEN_br!=1)
  12. {
  13. int temp[100];
  14. for(int i=1;i<=3;i++)
  15. {
  16. temp[i]=ar[3-i]-'0'+br[3-i]-'0';
  17. }
  18. int digit=3;
  19. int jin_wei=0;
  20. for(int i=1;i<digit;i++)
  21. {
  22. if(temp[i]>9)
  23. {
  24. jin_wei++;
  25. temp[i+1]+=temp[i]/10;
  26. temp[i]%=10;
  27. }
  28. }
  29. while (temp[digit]>9)
  30. {
  31. jin_wei++;
  32. temp[digit+1]=temp[digit]/10;
  33. temp[digit]%=10;
  34. digit++;
  35. }
  36. printf("%d\n",jin_wei);
  37. scanf("%s%s",ar,br);
  38. }
  39. return 0;
  40. }

\最直接的题

Description

众所周知lly最喜欢出题面长而题意绕的题,这是lly出的最直接的一题lly给你n个数,让你求使这n个数完全相等的最小代价,现在你有两个可以选择的操作:选择一个数,让这个数减1或者加1,代价为1。

选择一个数,让这个数减2或者加2,代价为0。

Input

输入一个n,表示第二行有

n个数(1≤n1061≤n≤10 6 )。

第二行有

n

n个不大于10510 5 的正整数。

Output

输出包含一个整数作为答案。

Sample Input 1

3

1 2 3

Sample Output 1

1

Hint

样例解释:

全部变成3

1 + 2 = 3 代价为0

2 + 1 = 3 代价为1

全部变成1

2 - 1 = 1 代价为1

3 - 2 = 3 代价为0

这两种方案总代价都是最小的,最小总代价为1

另外:你可以选择暴力,但是一定会返回时间超限。

  • 思路如下

这题很简单,只要明白,奇数与奇数、偶数与偶数之间的相互转化是不耗费代价的,奇数与偶数之间转化一定耗费代价(且,最少都耗费一个 代价)

那么我们就有两种选择 要么把所有的 奇数变为偶数,或 把所有的偶数转化为奇数。要想耗费最少

应该 转化的最少。实际上这题就变成了 统计 n个树中 奇数与偶数的个数分别是多少!!!

  • 题解如下
  1. #include<stdio.h>
  2. #include<algorithm>
  3. using namespace std;
  4. int main()
  5. {
  6. long long int n;
  7. scanf("%lld",&n);
  8. long long int ar[n];
  9. for(int i=0;i<n;i++)
  10. {
  11. scanf("%lld",&ar[i]);
  12. }
  13. //sort(ar,ar+n);
  14. long long int count_ji=0;
  15. for(int i=0;i<n;i++)
  16. {
  17. if(ar[i]%2!=0)
  18. {
  19. count_ji++;
  20. }
  21. }
  22. if(count_ji>n-count_ji)
  23. {
  24. printf("%lld",n-count_ji);
  25. }
  26. else
  27. printf("%lld",count_ji);
  28. return 0;
  29. }

淘宝盖楼

Description

又是疯狂的双十一前兆,

lly学长每天都会收到很多小姐姐的淘宝盖楼助力,YY小姐姐就是其中的一个,YY小姐姐每天会找很多人助力,但是YY小姐姐很在意别人的等级,如果某个人等级太低了的话YY小姐姐则不会浪费时间去找此人帮助,现在YY小姐姐依次询问n个人的等级,请问你能算出在这n个人中YY小姐姐能收获到多少级的助力吗,值得一提的是,YY小姐姐是不会选择等级低于自己所选择过的任何一个人的。另外,因为在这之前YY小姐姐没有得到任何人的助力,所以YY小姐姐一定会选择第一个人为自己助力。

要声明的是,现实生活中就算你等级再低也不会被嫌弃,因为1级也有可能在最后时刻翻盘QAQ。

Input

第一行给定一个n,表示询问n个人的等级(

1≤n≤1061≤n≤10 6 )。

第二行依次给定n个数,分别表示所询问的第i个人的等级ai



(1≤ai≤1051≤a i​ ≤10 5)。

Output

输出包含一个整数作为答案。

Sample Input 1

5

3 3 2 4 6

Sample Output 1

16

Source

nuoyanli

  • [ ]题解如下
  1. #include<stdio.h>
  2. //当前最大,就取这个值,并且更新最大值,否则按上一个最大,
  3. int main()
  4. {
  5. long long int n;
  6. scanf("%lld",&n);
  7. long long int ar[n];
  8. for(int i=0;i<n;i++)
  9. {
  10. scanf("%lld",&ar[i]);
  11. }
  12. long long int count=ar[0];
  13. long long int last_count=ar[0];
  14. for(int i=1;i<n;i++)
  15. {
  16. if(ar[i]>=last_count)
  17. {
  18. count+=ar[i];
  19. last_count=ar[i];
  20. }
  21. }
  22. printf("%lld",count);
  23. return 0;
  24. }

货车

Description

有一个大货车,负责把物品从

A

A仓库运往

B

B仓库,先把

A

A仓库的货物按从小到大顺序装上车。

然后运输途中有很多商店,在货车经过商店的时候,有两种操作:

把物品放到车厢里面。

把车厢里面物品拿出来一个。

货车的仓库是非常狭窄的,先放进去的货物只能等后放进去的货物移走之后才能搬出来。

当货车到达

B

B仓库的时候,把物品全部搬出。

Input

第一行输入n和m,n表示在A仓库的货物的数量(物品编号1~n

n),m表示

A——

B途中商店的数量。(1≤n≤100,5≤m≤1001≤n≤100,5≤m≤100)接下来m行,一个数表示操作类别1或2(对应题目操作)。若操作类别为1,后面还会有一个被操作的物品编号k(1≤k≤1001≤k≤100)。

(可能会有编号相同的物品)。

Output

输出一行,表示物品在到达

B

B仓库的时候的搬出顺序(有多个物品用空格隔开)。

若到达

B

B仓库没有货,则输出“NO”(没有引号)。

Sample Input 1

10 7

1 13

2

1 2

1 4

2

2

1 5

Sample Output 1

5 10 9 8 7 6 5 4 3 2 1

Source

hg

  1. //无脑 模拟题,这题 会用 stack 以及它的STL函数 enmpy()、top()、pop()、push()。就可以模拟这个过程
  2. #include<stdio.h>
  3. #include<iostream>
  4. #include<stack>
  5. using namespace std;
  6. int main()
  7. {
  8. int n,m;
  9. scanf("%d%d",&n,&m);
  10. stack<int> sta;
  11. for(int i=1;i<=n;i++)
  12. {
  13. sta.push(i);
  14. }
  15. for(int i=0;i<m;i++)
  16. {
  17. int lei_xing;
  18. scanf("%d",&lei_xing);
  19. if(lei_xing == 1)
  20. {
  21. int hao;
  22. scanf("%d",&hao);
  23. sta.push(hao);
  24. }
  25. else
  26. {
  27. sta.pop();
  28. }
  29. }
  30. if(!sta.empty())
  31. {
  32. while (!sta.empty())
  33. {
  34. printf("%d",sta.top());
  35. sta.pop();
  36. printf(" ");
  37. }
  38. }
  39. else
  40. {
  41. printf("NO");
  42. }
  43. return 0;
  44. }

Description

白河的河风轻轻地唱着歌唤醒了水上的涟漪,秋日的月光把河水映照了银白。

河边散步的

l

l

y

lly突然发现了一个石碑,上面刻着“LINANYOU”,下面还写着一个古老的年份。

l

l

y

lly不由得想起了自己的ID:nuoyanli

“这个ID也太像我了吧?难道我曾经来过这个世界,那个年份就是上一世的我降临或者离去的时间?”

l

l

y

lly不由得思考了起来。

“就算没有白浅夜华三生三世的爱情,有一个三生三世的灵魂也能羡煞众人啊!”单身十九年的lly想。

lly认为,如果某一个ID是他的ID的全排列的一种,且和他的ID不一样,

便认为这个ID是他的前世,现在告诉你这个ID和lly的ID,请你帮忙判断,这个ID是不是他的前世。

Input

输入的第一行包含一个整数n,代表字符串ID的长度。(1≤n≤2∗105)(1≤n≤2∗10 5 )接下来两行分别给出一个长度为n的字符串,可能包含所有大写字母及小写字母,先给lly的ID,下一行给出需要判断的ID。

Output

输出yes代表这个ID是lly的前世,no代表不是。

Sample Input 1

5

ACMnb

nbACM

Sample Output 1

yes

Sample Input 2

10

hgandllynb

hgandllynb

Sample Output 2

no

  1. //这一题思路 很简单 首先判读 用 strcmpo()函数判断
  2. //字符串是否完全相等,如相等,就是 no ,否则在判断 用sort()对两个字符数组进行排序,看 ,然后再看两个数组是否完全相同,如果完全相同 就是 yes
  3. #include<stdio.h>
  4. #include<algorithm>
  5. #include<string.h>
  6. using namespace std;
  7. int main()
  8. {
  9. int n;
  10. scanf("%d",&n);
  11. char ar[n],br[n];
  12. scanf("%s%s",ar,br);
  13. int same=0;
  14. if(strcmp(ar,br)==0)
  15. {
  16. same=1;
  17. }
  18. sort(ar,ar+n);
  19. sort(br,br+n);
  20. int flag=1;
  21. for(int i=0;i<n;i++)
  22. {
  23. if(ar[i]!=br[i])
  24. {
  25. flag=0;
  26. }
  27. }
  28. if(flag==1&&same==0)
  29. {
  30. printf("yes");
  31. }
  32. else
  33. printf("no");
  34. return 0;
  35. }

2019NYIST计科第四次周赛的更多相关文章

  1. 2019NYIST计科第七次周赛总结

    2019NYIST计科第七次周赛总结 文章目录 2019NYIST计科第七次周赛总结 [秤取物体重量( 二进制枚举法)](https://blog.csdn.net/qq_34261446/artic ...

  2. 北工大耿丹学院16级计科院3班C语言课程助教学期总结

    很荣幸得到邹老师,周老师,以及北工大耿丹学院各位老师的认可,担任计科院3班C语言课程助教,班主任为李光杰老师,很感谢李老师一学期的帮助,使得我更好的担任助教一职.我班学生31名,很愉快的与同学们度过一 ...

  3. 计科1111-1114班第一次实验作业(NPC问题——回溯算法、聚类分析)

    实验课安排 地点: 科技楼423 时间:  计科3-4班---15周周一上午.周二下午 计科1-2班---15周周一下午.周二晚上(晚上时间从18:30-21:10) 请各班学委在实验课前飞信通知大家 ...

  4. 基于SCRUM方法实践的西油计科党建设计与实现

    基于SCRUM方法实践的西油计科党建设计与实现 序言 所属课程 https://edu.cnblogs.com/campus/xnsy/2019autumnsystemanalysisanddesig ...

  5. 基于SCRUM方法实践的西油计科党建设计与实现-个人实践流程清单

    基于SCRUM方法实践的西油计科党建设计与实现 个人实践流程清单 一.Alpha版本冲刺个人在SCRUM团队任务清单: 时间 我这个三天做了什么 实际解决燃尽图项目数量 我遇到了什么问题 我下一个三天 ...

  6. 用HTML+CSS编写一个计科院网站首页的静态网页

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. Java课程设计-算术运算测试(D级) 齐鲁工业大学 计科20-1 王瀚垠 202003010033

    Java课程设计-算术运算测试(D级) 齐鲁工业大学 计科20-1 王瀚垠 202003010033 目录 1.项目简介 2.项目采用技术 3.功能需求分析 4.项目亮点 5.项目功能架构图和UML类 ...

  8. 1415-2 计科&计高 软件工程博客&Github地址汇总-修正版

    序号 标识 博客 代码 1 1121袁颖 joanyy joanyy 2 1122崔琪 chitty ChittyCui 3 1123吕志浩 lucy123 715lvzhihao 4 1124张静 ...

  9. 2017<java技术>预备作业计科冀浩然

    1.阅读邹欣老师的博客,谈谈你期望的师生关系是什么样的? 我期望的师生关系是相互融洽的,老师能够在上课的时候尽量多的教我们专业知识,可以尽量多和我们进行互动,课下能和我们如同朋友一般就可以了. 2.你 ...

随机推荐

  1. Yuchuan_Linux_C编程之五gdb调试

    一.整体大纲 二.gdb调试 1. 启动gdb start -- 只执行一步    n -- next    s -- step(单步) -- 可以进入到函数体内部    c - continue - ...

  2. .Net Core WebApi在Linux上启动和关闭

    测试机器:阿里云云主机1核2g 安装环境:centos-7 服务器:Nginx 1.17.1 测试默认已启动 已安装配置:.Net Core 3.1 测试默认安装 连接配置:x-ftp,x-shell ...

  3. Feign 在 SpringCloud 中的使用 四

    此处就单纯写一个消费者服务,通过Feign来调用生产者中的接口,生产者中的接口可以自己随便定义一个,前面博客中也有代码 1.导入springcloud Feign的jar包 <parent> ...

  4. ES6的Proxy

    最近在Javascript的设计编程中,用到的那个单例模式,感觉就类似一种代理的思想[其实就是缓存的一种机制],单例模式就是: function getSingle(fn){ var result; ...

  5. 内网渗透之跨边界传输 - 反弹shell

    大年初一,当然是更一篇重磅文章啦 反弹shell /bin目录下带sh的都是shell nc 1.正向连接,目标机监听自身端口,攻击机主动建立连接 目标机:nc -lvvp 端口 -e /bin/ba ...

  6. C#.Net全栈工程师之路-学习路径

    C#.Net全栈工程师之路-学习路径 按架构分: C/S架构: B/S架构: Mobile移动开发: 按技术点分: C#编程基础以及OOP面向对象编程: 数据库基础以及高级应用(MYSQL+MSSQL ...

  7. docker学习之路

    环境 : ubuntu 16.4 下载docker 首先使用命令行下载 docker wget -qO- https://get.docker.com/ | sh 启动 下载完成之后进行一个启动,但是 ...

  8. pytest、tox、Jenkins实现python接口自动化持续集成

    pytest介绍 pytest是一款强大的python测试工具,可以胜任各种级别的软件测试工作,可以自动查找测试用并执行,并且有丰富的基础库,可以大幅度提高用户编写测试用例的效率,具备可扩展性,用户自 ...

  9. Spring Boot从入门到精通(九)整合Spring Data JPA应用框架

    JPA是什么? JPA全称Java Persistence API,是Sun官方提出的Java持久化规范.是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. ...

  10. Simulink仿真入门到精通(五) Simulink模型的仿真

    5.1 模型的配置仿真 由各种模块所构建的可视化逻辑连接,只是模型的外在表现,模型仿真的核心驱动器是被称作解算器(Solver)的组件,相当于Simulink仿真过程的心脏,驱动着模型仿真,它在每一个 ...