Title(题目)

小朋友顺逆报数

Problem ID(题目编号)

(题目添加成功后由系统自动生成)

Time Limit(运行时间限制)

S(秒)

Memory Limit(内存限制)

MByte(兆)

Description(题目描述):

编号为1,2,…,n的n位小朋友依次排成一列,从1号开始1,2,…,m报数, 凡报到m者出列, 直至报数到队列尾部。此后, 又从队列尾部开始反向1,2,…,m报数, 凡报到m者同样出列。这样反复顺逆报数, 直至队列剩下m-1个小朋友为止。问:最后未出列的m-1位小朋友编号为多少?第p个出列的是哪位小朋友?

Input(输入描述):

输入n,m,p (1<=m<=20, m<=n<=500, 1<=p<=n-m+1)

Output(输出描述):

输出未出列的m-1位小朋友的编号

输出第p位出列的小朋友编号

Sample Input(输入样例):

100,3,50

Sample Output(输出样例):

4 77

25

Test Input(输入测试数据):

480,9,89

Test Output(输出测试数据):

6 49 78 184 265 376 413 475

116

Hint(提示信息):

Source(来源信息):

Code(测试代码):(要求用C语言)

 #include<stdio.h>

 int main()

 {

        int ln,x,t,s,i,n,m,p;

        static int a[];

        scanf("%d,%d,%d",&n,&m,&p);

        for(i=;i<=n;i++) a[i]=;

        ln=;x=;t=;

        while()

        {

               for(s=,i=;i<=n;i++)

               {

                      s=s+a[i];

                      if(s==m) {a[i]=;s=;ln++;}

                      if(ln==p&&x==) x=i;

                      if(ln==n-m+) {t=;break;}

               }

               if(t==) break;

               for(s=,i=n;i>=;i--)

               {

                      s=s+a[i];

                      if(s==m) {a[i]=;s=;ln++;}

                      if(ln==p&&x==) x=i;

                      if(ln==n-m+) {t=; break;}

               }

               if(t==) break;

        }

        for(i=;i<=n;i++)

               if(a[i]!=) printf("%d ",i);

        printf("\n");

        printf("%d\n",x);

        return ;

 }

Title(题目)

删除中的最值问题

Problem ID(题目编号)

(题目添加成功后由系统自动生成)

Time Limit(运行时间限制)

S(秒)

Memory Limit(内存限制)

MByte(兆)

Description(题目描述):

有一个很大的正整数n(位数不大于100),删除其中的s个数字,余下的数字按原次序组成一个新的正整数m。对给定的n, s, 寻找一种方案,使得组成的新数m最小。

Input(输入描述):

输入n

输入s (s<n的位数)

Output(输出描述):

输出m

Sample Input(输入样例):

83179254297017652

9

Sample Output(输出样例):

12017652

Test Input(输入测试数据):

36271467471259413861475862384788157954123651991367343325

29

Test Output(输出测试数据):

111115754123651991367343325

Hint(提示信息):

Source(来源信息):

Code(测试代码):(要求用C语言)

 #include<stdio.h>

 #include<string.h>

 int main()

 {

        int i,t,x,s,k,ln;

        char a[];

        scanf("%s",a);

        scanf("%d",&s);

        ln=strlen(a);

        i=;t=;x=;

        while(s>x&&t==)

        {

               if(a[i]>a[i+])

               {

                      for(k=i;k<=ln-x-;k++)

                             a[k]=a[k+];

                      x=x+;

                      i=-;

               }

               if(i==ln-x-) t=;

               i++;

        }

        for(i=;i<=ln-s-;i++)

               printf("%c",a[i]);

        return ;

 }

Title(题目)

真子串

Problem ID(题目编号)

(题目添加成功后由系统自动生成)

Time Limit(运行时间限制)

S(秒)

Memory Limit(内存限制)

MByte(兆)

Description(题目描述):

真子串是指从原字符串中通过删除某些字符但不破坏余下字符的顺序而形成的新字符串。输入n个字符串,统计出现某个字符串是另一个字符串的真子串的组数。

Input(输入描述):

输入n及n个字符串

Output(输出描述):

真子串数目

Sample Input(输入样例):

3

abc

cxajfkabjfkdc

xjfabkdc

Sample Output(输出样例):

3

Test Input(输入测试数据):

10

fjdakie

jfda;iea;fj

feiw

e

hi

jk

fjieawo;fj;ijfdias

djafsak;ieafa;iewe

hhhh

fjweioa;jf;aii

Test Output(输出测试数据):

15

Hint(提示信息):

Source(来源信息):

Code(测试代码):(要求用C语言)

 #include<stdio.h>

 #include<string.h>

 int main()

 {

        int i,j,n,count=;

        char seq[][];

        int subseq(char s1[],char s2[]);

        scanf("%d",&n);

        getchar();

        for(i=;i<n;i++)

               gets(seq[i]);

        for(i=;i<n;i++)

               for(j=;j<n;j++)

                      count+=subseq(seq[i],seq[j]);

        printf("%d\n",count);

        return ;

 }

 int subseq(char s1[],char s2[])

 {

        int m,n;

        int i,j,s=;

        m=strlen(s1);n=strlen(s2);

        if (m>=n) return ;

        for(i=;i<m;i++)

               for(j=;j<n;j++)

                      if(s1[i]==s2[j])

                      {

                             s+=;

                             break;

                      }

        if(s<m) return ;

        else return ;

 }

Title(题目)

购票排队

Problem ID(题目编号)

(题目添加成功后由系统自动生成)

Time Limit(运行时间限制)

S(秒)

Memory Limit(内存限制)

MByte(兆)

Description(题目描述):

一场球赛开始之前,售票工作正在紧张的进行中。每张球票为50元。现有m+n个人排队等待购票,其中有m个人手持50元的钞票,另外n个人手持100元的钞票。求出这m+n个人排队购票,使得售票处不至于出现找不开钱的局面的不同排队种数。约定,拿同样面值钞票的人对换位置后为同一种排队。

Input(输入描述):

输入m,n (m<100, n<100)

Output(输出描述):

输出排队种数

Sample Input(输入样例):

15,12

Sample Output(输出样例):

4345965

Test Input(输入测试数据):

20,10

Test Output(输出测试数据):

15737865

Hint(提示信息):

Source(来源信息):

Code(测试代码):(要求用C语言)

 #include<stdio.h>

 #include<string.h>

 int main()

 {

        int i,j,m,n;

        long f[][];

        scanf("%d,%d",&m,&n);

        for(j=;j<=m;j++)

               f[j][]=;

        for(j=;j<=m;j++)

               for(i=j+;i<=n;i++)

                      f[j][i]=;

        for(i=;i<=n;i++)

               for(j=i;j<=m;j++)

                      f[j][i]=f[j-][i]+f[j][i-];

        printf("%ld\n",f[m][n]);

        return ;

 }

Title(题目)

序列相似度

Problem ID(题目编号)

(题目添加成功后由系统自动生成)

Time Limit(运行时间限制)

S(秒)

Memory Limit(内存限制)

MByte(兆)

Description(题目描述):

有两条字母序列(区分大小写),计算两者的相似度。这里,相似度定义为两者最长公共子序列的长度与其中较长字母序列的长度之比。例如序列s1=abcbdab和序列 s2=bdcaba的某个最长公共子序列为bcba,且长度为4,而s1的长度为7,s2的长度为6,那么s1和s2的相似度为4/7.

Input(输入描述):

输入数据有多组,每行输入两个字母序列,用空格隔开。每条序列长度不超过100。最后输入“0 0” 表示结束。

Output(输出描述):

输出每组序列的相似度,小数点后保留三位小数。

Sample Input(输入样例):

abc acbt

abcbdab bdcaba

0 0

Sample Output(输出样例):

0.500

0.571

Test Input(输入测试数据):

uefhuahfusdas fhadfhau

eywhfuiafhusdhufhal werujdcfhhh

nvbjhdfncjasdhdbc hjdasluuqwiubfhahlufkjchgsd

jaslhfljhulasdhfulihlasdafhulf fhasdjlhfdshfauefhlu

jhuewuhluihalf djhafjlhjafhjlhfalkh

abcdefghijklmn abcdefghijklmn

dfjaksjkdsalewuihfjasklhu lhfahdjklahfdjfhajskhfjka

uieqwhfuualuiahfusdjlh jladshfjlkashlaks

qwetyyerywquuuquu nnbnzbnvnnnnnzxcnmnmnzxv

jhfadshfjkaslhalj jkdlafshjflajldksalkhaflfhajl

0 0

Test Output(输出测试数据):

0.385

0.316

0.222

0.400

0.350

1.000

0.480

0.318

0.000

0.448

Hint(提示信息):

Source(来源信息):

Code(测试代码):(要求用C语言)

 #include<stdio.h>

 #include<string.h>

 int main()

 {

        int i,j,m,n,maxlen;

        char s[],t[];

        int c[][];

        while()

        {

               scanf("%s%s",s,t);

               if(strcmp(s,"")== &&strcmp(t,"")==) break;

               m=strlen(s);n=strlen(t);

               maxlen=m>n?m:n;

               for(i=;i<=m;i++) c[i][n]=;

               for(j=;j<=n;j++) c[m][j]=;

               for(i=m-;i>=;i--)

                      for(j=n-;j>=;j--)

                             if(s[i]==t[j])  c[i][j]=c[i+][j+]+;

                             else if (c[i][j+]>c[i+][j]) c[i][j]=c[i][j+];

                             else c[i][j]=c[i+][j];

               printf("%.3f\n",c[][]/(float)maxlen);

        }

        return ;

 }

12/10 C语言程序设计竞赛 后五题的更多相关文章

  1. C语言程序设计入门学习五步曲(转发)

    笔者在从事教学的过程中,听到同学抱怨最多的一句话是:老师,上课我也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手.发生这种现象的原因有三个: 一.所谓的看懂听明白,只是很肤浅的 ...

  2. Aizu 2249Road Construction 单源最短路变形《挑战程序设计竞赛》模板题

    King Mercer is the king of ACM kingdom. There are one capital and some cities in his kingdom. Amazin ...

  3. 华东交通大学2018年ACM“双基”程序设计竞赛 C. 公式题 (2) (矩阵快速幂)

    题目链接:公式题 (2) 比赛链接:华东交通大学2018年ACM"双基"程序设计竞赛 题目描述 令f(n)=2f(n-1)+3f(n-2)+n,f(1)=1,f(2)=2 令g(n ...

  4. 2018年江西理工大学C语言程序设计竞赛(初级组)一

     C语言竞赛初级组第一.二场答案:https://www.cnblogs.com/xingkongyihao/p/10046918.html  A: 逆序对 时间限制: 1 s      内存限制:  ...

  5. C语言程序设计I—第五周教学

    第五周教学总结(29/9-7/10) 本周为国庆节放假,周六周日提前补课,计算机专业已补,软件专业未补,由于国庆放假冲课不补,因此,软件专业在整体进度上落后计算机一次课,估计我要特别抽时间才能将进度拉 ...

  6. Just oj 2018 C语言程序设计竞赛(高级组)D: 四边形面积

    D: 四边形面积 时间限制: 1 s      内存限制: 128 MB      提交 我的状态 题目描述 有一个四边形,现在需要求它的面积 输入 输入四行,每行两个数整数xx, yy (1≤x,y ...

  7. C语言程序设计II—第五周教学

    第五周教学总结(25/3-31/3) 教学内容 本周的教学内容为:第七章 数组 7.3 字符串. 课前准备 在博客园发布作业:2019春第五周作业 第四周作业讲解视频:A Programing Vid ...

  8. 2014江西理工大学C语言程序设计竞赛高级组题解

    1001 Beautiful Palindrome Number 枚举回文数字前半部分,然后判断该数字是否满足,复杂度为O(sqrt(n))! 1002 Recovery Sequence  本题的核 ...

  9. 2015年江西理工大学C语言程序设计竞赛(初级组)

    JankTao相亲记 解法:排序 #include<stdio.h> #include<string.h> #include<iostream> #include& ...

随机推荐

  1. Linux基础学习-基本命令

    基本命令 date命令 参数 作用 %t 跳格 %H 小时(00-23) %I 小时(00-12) %M 分钟(00-59) %S 秒(00-59) %j 今年中的第几天 [root@qdlinux ...

  2. 小型LAMP搭建

    一.dns的搭建 安装dns服务 yum install bind 修改dns的主配置文件 [root@234c17 named]# vim /etc/named.conf // // named.c ...

  3. 【Gradle】Downloading https://services.gradle.org/distributions/gradle-3.3-bin.zip 失败

    提示连接超时 Downloading https://services.gradle.org/distributions/gradle-3.3-bin.zip 失败 这时候需要单独去官网下载包,然后放 ...

  4. element使用心得

    Table Table 常用属性解释 数据过滤,filter过滤器 <el-table-column width="200" show-overflow-tooltip la ...

  5. systemverilog之OOP

    what is oop terminology an example class default methods for classes static attibute assigment and c ...

  6. 四、10分钟ToPandas_0.24.2

    # Author:Zhang Yuan整理,版本Pandas0.24.2 # 0. 习惯上,我们会按下面格式引入所需要的包: import pandas as pd import numpy as n ...

  7. Linux Shell脚本教程:30分钟玩转Shell脚本编程

    http://c.biancheng.net/cpp/shell/ Linux在线体验: http://compileonline.com/ Linux命令查询: http://man.linuxde ...

  8. CSS布局基础--BFC

    1,什么是BFC BFC(Block Formatting Context)块级格式化上下文,它就是一个环境,HTML元素在这个环境中按照一定规则进行布局.一个环境中的元素不会影响到其他环境中的布局. ...

  9. luogu1963 [NOI2009]变换序列

    #include <iostream> #include <cstring> #include <cstdio> using namespace std; int ...

  10. 北京师范大学第十五届ACM决赛-重现赛

    Another Server 时间限制:1秒 空间限制:262144K 题目描述 何老师某天在机房里搞事情的时候,发现机房里有n台服务器,从1到n标号,同时有2n-2条网线,从1到2n-2标号,其中第 ...