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. 计算机应用第七次作业 html制作个人音乐播放站点

    计算机应用第七次作业 html制作个人音乐播放站点 请访问下边网址查看具体操作: http://www.cnblogs.com/qingyundian/p/7878892.html

  2. GIMP的Path的合并于复制

    1/Path的复制不能像图层一样简单的复制粘贴,只有通过merge的方法实现: 使要合并的Path处于可见状态,右击Path工具栏:   合并前与合并后比较: 2/向不同文件复制Path: 到另外一个 ...

  3. Mac单机模式安装启动Kafka

    1.下载kafka,网址: https://www.apache.org/dyn/closer.cgi?path=/kafka/2.0.0/kafka_2.12-2.0.0.tgz 2.移动tar包到 ...

  4. django第七天(模板的复用性,include标签和母版)

    django第7天模板 include标签 模板的共用 a 模板需要到使用到 登陆界面 b 模板需要使用到 登陆界面 可以把登陆界面提取到公共的模板c 为什么要用: 都需要使用相同的界面,减少代码冗余 ...

  5. PAT Basic 1043

    1043 输出PATest 给定一个长度不超过 10​4​​ 的.仅由英文字母构成的字符串.请将字符重新调整顺序,按 PATestPATest.... 这样的顺序输出,并忽略其它字符.当然,六种字符的 ...

  6. luogu1131 [ZJOI2007]时态同步

    num[x]表示x到达叶子最远路径. 每个子节点对答案的贡献是num[x] - (num[t] + edge[i].val) #include <iostream> #include &l ...

  7. Cookie测试的测试点

    1.禁止使用Cookie:设置浏览器禁止使用Cookie,访问网页后,检查存放Cookie文件中未生成相关文件: 2.Cookie寻出路径:按照操作系统和浏览器对Cookie存放路径的设置,检查存放路 ...

  8. sqoop导数据出现问题

    执行下面命令的时候报错 ./sqoop import \ --connect jdbc:mysql://mini1:3306/userdb \ --username root \ --password ...

  9. tp 路径表示

    本文实例分析了thinkphp常见路径用法.分享给大家供大家参考.具体如下: 这里介绍的标签主要有: __root__ __self__ __action__ __url__ __app__ __pu ...

  10. 【LeetCode】Intersection of Two Linked Lists(相交链表)

    这道题是LeetCode里的第160道题. 题目讲的: 编写一个程序,找到两个单链表相交的起始节点. 如下面的两个链表: 在节点 c1 开始相交. 示例 1: 输入:intersectVal = 8, ...