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. shell脚本,批量创建10个系统帐号并设置密码为随机8位字符串。

    [root@localhost wyb]# cat user10.sh #!/bin/bash #批量创建10个系统帐号wangyb01-wangyb10并设置密码(密码为随机8位字符串). > ...

  2. mac系统快捷键大全详细介绍(全部)

    对于使用苹果电脑的操作系统的新人来说,快捷键是个很麻烦的问题,要一个个的找到快捷键也不是很容易的问题,今天这篇文章就解决了到处找快捷键的麻烦. 第一种分类:启用快捷键 按下按键或组合键,直到所需的功能 ...

  3. Java--容器/集合类(Collection)理解和使用

    .数组和集合的比较 数组:长度固定,用来存放基本类型的数据 集合:长度不固定,用来存放对象的引用 二.集合类的基本概念 1.java.util包中提供了一些集合类,这些集合类也被称为容器. 常用的集合 ...

  4. 初涉最小表示法&&bzoj1398: Vijos1382寻找主人 Necklace

    把最小表示法的坑填了 Description 给定两个项链的表示,判断他们是否可能是一条项链. Input 输入文件只有两行,每行一个由0至9组成的字符串,描述一个项链的表示(保证项链的长度是相等的) ...

  5. 【Java_多线程并发编程】基础篇——线程状态扭转函数

    1. wait() sleep() yield() join()用法与区别 本文提到的当前线程是指:当前时刻,获得CPU资源正在执行的线程. 1.1 wait()方法 wait()方法定义在Objec ...

  6. jQuery实现Ajax

    jQuery.ajax([settings]) type:类型,“POST”或“GET”,默认为GET url:发送地址 data:连同请求发送到服务器的数据 dataType:预期服务器返回的数据类 ...

  7. Spring,Mybatis,Springmvc框架整合项目(第一部分)

    一.说在前面的话 本篇博文实现一个注册登录小项目,使用spring,mybatis,springmvc框架进行整合,我们创建的是一个maven工程,主要是方便jar包版本的管理.项目使用eclispe ...

  8. Android开发工具——Gradle知识汇总

    1.什么是构建工具 Eclipse大家都知道是一种IDE(集成开发环境),最初是用来做Java开发的,而Android是基于Java语言的,所以最初Google还是希望Android能在Eclipse ...

  9. luogu2051 [AHOI2009]中国象棋

    巨水,调了好久,心态爆炸 #include <iostream> #include <cstring> #include <cstdio> using namesp ...

  10. BZOJ 4318 OSU! ——期望DP

    这次要求$x^3$的概率和. 直接维护三个值$x$ $x^2$ $x^3$的期望. 概率的平方不等于平方的概率. #include <map> #include <ctime> ...