12/10 C语言程序设计竞赛 后五题
|
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语言程序设计竞赛 后五题的更多相关文章
- C语言程序设计入门学习五步曲(转发)
笔者在从事教学的过程中,听到同学抱怨最多的一句话是:老师,上课我也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手.发生这种现象的原因有三个: 一.所谓的看懂听明白,只是很肤浅的 ...
- Aizu 2249Road Construction 单源最短路变形《挑战程序设计竞赛》模板题
King Mercer is the king of ACM kingdom. There are one capital and some cities in his kingdom. Amazin ...
- 华东交通大学2018年ACM“双基”程序设计竞赛 C. 公式题 (2) (矩阵快速幂)
题目链接:公式题 (2) 比赛链接:华东交通大学2018年ACM"双基"程序设计竞赛 题目描述 令f(n)=2f(n-1)+3f(n-2)+n,f(1)=1,f(2)=2 令g(n ...
- 2018年江西理工大学C语言程序设计竞赛(初级组)一
C语言竞赛初级组第一.二场答案:https://www.cnblogs.com/xingkongyihao/p/10046918.html A: 逆序对 时间限制: 1 s 内存限制: ...
- C语言程序设计I—第五周教学
第五周教学总结(29/9-7/10) 本周为国庆节放假,周六周日提前补课,计算机专业已补,软件专业未补,由于国庆放假冲课不补,因此,软件专业在整体进度上落后计算机一次课,估计我要特别抽时间才能将进度拉 ...
- Just oj 2018 C语言程序设计竞赛(高级组)D: 四边形面积
D: 四边形面积 时间限制: 1 s 内存限制: 128 MB 提交 我的状态 题目描述 有一个四边形,现在需要求它的面积 输入 输入四行,每行两个数整数xx, yy (1≤x,y ...
- C语言程序设计II—第五周教学
第五周教学总结(25/3-31/3) 教学内容 本周的教学内容为:第七章 数组 7.3 字符串. 课前准备 在博客园发布作业:2019春第五周作业 第四周作业讲解视频:A Programing Vid ...
- 2014江西理工大学C语言程序设计竞赛高级组题解
1001 Beautiful Palindrome Number 枚举回文数字前半部分,然后判断该数字是否满足,复杂度为O(sqrt(n))! 1002 Recovery Sequence 本题的核 ...
- 2015年江西理工大学C语言程序设计竞赛(初级组)
JankTao相亲记 解法:排序 #include<stdio.h> #include<string.h> #include<iostream> #include& ...
随机推荐
- javase(11)_juc并发库
一.传统线程技术 public static void main(String[] args) { Thread thread = new Thread(){ @Override public voi ...
- Ukulele 天空之城
- UISearchBar的使用
searchBar = [[UISearchBar alloc] initWithFrame: CGRectMake(0.0, 0.0, self.view.bounds.size.width, 40 ...
- Mac 录制视频,并转为GIF格式
内容中包含 base64string 图片造成字符过多,拒绝显示
- vue-cli3.0 生产包去除console.log
目前负责的公众号又迭代了一个版本,之前打生产包,配置总是和测试包搞混,所以使用了vue-cli3.0的环境变量来控制配置. 但是又发现了一个新问题,写代码的过程中写了很多console.log 来调试 ...
- python:mysql增量备份
模块:MySQLdb Crypto加密 ConfigParser加载配置 mydb.py #!/usr/bin/env python #coding=utf-8 import MySQLdb as m ...
- 2018年,最经典的26个JavaScript面试题和答案!
根据 Stack Overflow 的 2018 年度调查,JavaScript 连续六年成为最常用的编程语言.所以我们必须面对这样的现实,JavaScript 已经成为全栈开发技能的基石,在全栈开发 ...
- js 做的随机8位验证码
开发思路: 画出放置验证码的模块.一个写有“看不清…”的小块,以及输入验证码的文本框 获取各个模块 封装一个函数Yan_ma(),设置验证码为8位,里面含有数字,小写字母,小写字母和中文.每种类型出现 ...
- Codeforces Round #877 (Div. 2) B. - Nikita and string
题目链接:http://codeforces.com/contest/877/problem/B Nikita and string time limit per test2 seconds memo ...
- 五、人生苦短,我用python【第五篇】
Python基本数据类型 运算符 1.算数运算: 2.比较运算: 3.赋值运算: 4.逻辑运算: 5.成员运算: 基本数据类型 1.数字 int(整型) 在32位机器上,整数的位数为32位,取值范围为 ...