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. non-JRMP server at remote endpoint

    #在相应的domain的domain.xml文件添加下面红色设置,并重启domain <admin-service system-jmx-connector-name="system& ...

  2. Fortran学习笔记4(循环语句)

    Fortran学习笔记4 Fortran学习笔记4 逻辑运算 循环 Do语句 Do-While循环 循环控制 循环应用实例 逻辑运算 if命令需要和逻辑运算表达式搭配才能起到很好的效果.下面分别列出F ...

  3. LeetCode 买卖股票的最佳时机 II

    给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你可以尽可能地完成更多的交易(多次买卖一支股票). 注意:你不能同时参与多笔交易(你必须在再次 ...

  4. [LUOGU] P2679 子串

    一开始用一个f数组转移,发现不太对,状态有重叠部分 f[i][j][k]表示考虑了s的前i位,匹配到t的第j位,用了k个子串,且s的第i位必选 g[i][j][k]表示考虑了s的前i位,匹配到t的第j ...

  5. 【Git版本控制】git---从已有分支拉出新的分支

    参考博文:git---从已有分支拉出新分支

  6. zabbix:告警、恢复消息次数

    之前zabbix配置告警,存在告警信息发送多次并且恢复信息也跟着发送多次了,导致企业微信流量不够用,没有找到恢复信息单独的设置项 动作中的步骤我个人理解为:1-5的意思是发送5条告警消息      3 ...

  7. perl学习二:简单变量

    字符串变量:${}1.单引号:不进行变量替换,不进行转义,字符串可以跨行.2.双引号:变量替换(贪婪匹配原则).支持转义字符(转义字符可以另外看)3.反引号 字符串的特殊表示方法:qq(...) q( ...

  8. laravel服务容器(IOC控制反转,DI依赖注入),服务提供者,门脸模式

    laravel的核心思想: 服务容器: 容器:就是装东西的,laravel就是一个个的对象 放入:叫绑定 拿出:解析 使用容器的目的:这里面讲到的是IOC控制反转,主要是靠第三方来处理具体依赖关系的解 ...

  9. 【chm】【windows】win7下chm打开不显示内容

    修改chm属性里面,‘解除锁定’即可.点击chm文件,右键选择属性,点击最下方的解除锁定,保存,退出重新打开即可. ​

  10. php各种主流框架的优缺点总结

    ThinkPHP ThinkPHP(FCS)是一个轻量级的中型框架,是从Java的Struts结构移植过来的中文PHP开发框架.它使用面向对象的开发结构和MVC模式,并且模拟实现了Struts的标签库 ...