牛客网小白二(2018.4.21)
需要加强的内容:1.递归(尼姆堆)
2.字符与字符串的输入输出,有关其求长度或个数的的函数、语法等
3.有向图、无向图、树的遍历
一、数字方阵
空间限制:C/C++ 262144K,其他语言524288K
Special Judge, 64bit IO Format: %lld
题目描述
输入描述:
输入共一行,一个整数 ,意义同题面描述。
输出描述:
输出共 行,每行 个整数,表示答案方阵。 输出任意一种可行方案即可。
输入
3
输出
1 2 3 8 9 4 7 6 5
备注:
二、小马过河
空间限制:C/C++ 262144K,其他语言524288K
Special Judge, 64bit IO Format: %lld
题目描述
输入描述:
第一行一个整数 ,表示 的询问个数。 接下去 行,每行 个实数 ,表示小马家在点 ,河水为直线
输出描述:
输出共 行,每行两个实数 , 表示答案垂足点的坐标 。
输入
3 0 1 0 0 1 1 2.13 -6.89 1.78 1.20 -7.73 0.56 3.473 -4.326 -4.851 -0.819 2.467 -2.729
输出
0.5000000 0.5000000 1.5864392 1.1869738 3.7990750 -3.076672
备注:
#include<stdio.h>
int main(){
double x1,y1,x2,y2,x3,y3;
int n;
scanf("%d",&n);
while(n--){
while(scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3)!=EOF){
double temp = 0;
double k1,k2;
double b1,b2;
double x,y;
if(y3<y2)
{
temp = y3;
y3 = y2;
y2 = temp;
temp = x3;
x3 = x2;
x2 = temp;
}
k1 = (y3-y2)/(x3-x2);
k2 = (-1)*(1/k1);
b1 = y2 - k1*x2;
b2 = y1 - k2*x1;
x = (b1-b2)/(k2-k1);
y = b2 + k2*x;
printf("%-8f %-8f\n",x,y); //注意这里“%-8f”的意思是整个输出占八个长度,‘-’表示左边对齐,不加
//符号右边对齐。
}
return 0;
}}
三、真真假假
题目描述
乾为天,刚健中正,自强不息;坤为地,柔顺伸展,厚载万物。乾卦:天行健,君子以自强不息。困龙得水好运交,不由喜气上眉梢,一切谋望皆如意,向后时运渐渐高。坤卦:地势坤,君子以厚德载物。肥羊失群入山岗,饿虎逢之把口张,适口充肠心欢喜,卦若占之大吉昌。
输入描述:
输出描述:
输出共 行,每行一个字符串 表示这个头文件存在,或 表示这个头文件不存在。
输入
3 cstdio splay fstream
输出
Qian Kun Qian
备注:
每个询问字符串 中保证不存在标点、空格或其他不可见字符。
#include<stdio.h>
#include<string.h>
char str[][15] = {"algorithm", "bitset", "cctype", "cerrno", "clocale", "cmath", "complex",
"cstdio", "cstdlib", "cstring", "ctime", "deque", "exception", "fstream",
"functional", "limits", "list", "map", "iomanip", "ios", "iosfwd",
"iostream", "istream", "ostream", "queue", "set", "sstream",
"stack", "stdexcept", "streambuf", "string", "utility", "vector", "cwchar", "cwctype" };
int main(){
char str1[20];
int n;
scanf("%d",&n);
while(n--){
bool x = false;
scanf("%s",str1);
for(int i = 0; i < 35 ; i++) // !怎么确定str中含有几个字符串?(sizeof(str)/sizeof(int))/ (sizeof(str[0])/sizeof(int))
{
if(strcmp(str1,str[i]) == 0) //注意,这里可以使用二维数组表示字符串
{
printf("Qian\n");
x = true;
break;
}
}
if(x==false)
{
printf("Kun\n");
}
}
return 0;
}
四、虚虚实实
题目描述
震为雷,临危不乱,亨通畅达;巽为风,柔顺伸展,厚载万物。 震卦:洊雷,震,君子以恐惧修省。一口金钟在淤泥,人人拿着当玩石,忽然一日钟悬起,响亮一声天下知。巽卦:随风,巽,君子以申命行事。一叶孤舟落沙滩,有篙无水进退难,时逢大雨江湖溢,不用费力任往返。算卦先生来问你,对于每个他给出的无向图,是否存在一条路径能够经过所有边恰好一次,并且经过所有点?不需要满足最后回到起点。
输入描述:
第一行一个数 ,表示有 组数据。对与每组数据,第一行有两个数 ,接下去 行每行两个数 描述一条无向边 。图不保证联通。
输出描述:
对于每组数据,如果存在,输出 ,否则输出 。
输入
2 2 2 1 1 2 1 4 6 1 3 1 4 1 2 3 2 4 2 4 3
输出
Zhen Xun
备注:
五、是是非非
题目描述
坎为水,险阳失道,渊深不测;离为火,依附团结,光明绚丽。坎卦:水洊至,习坎;君子以常德行,习教事。一轮明月照水中,只见影儿不见踪,愚夫当财下去取,摸来摸去一场空。离卦:明两作,离,大人以继明照四方。官人来占主高升,庄农人家产业增,生意买卖利息厚,匠艺占之大亨通。
输入描述:
输出描述:
输入
5 4 6 7 3 4 5 1 6 2 1 2 4 5 5
输出
Kan Kan Li Li
备注:
六、黑黑白白
题目描述
艮为山,动静得宜,适可而止;兑为泽,刚内柔外,上下相和。艮卦:兼山,艮;君子以思不出其位。财帛常打心头走,可惜眼前难到手,不如意时且忍耐,逢着闲事休开口。兑卦:丽泽,兑;君子以朋友讲习。这个卦象真可取,觉着做事不费力,休要错过这机关,事事觉得随心意。
输入描述:
输出描述:
每组数据输出一行, 表示先手有必胜策略, 表示没有。
输入
2 3 1 1 2 2 3 5 4 1 2 1 3 3 4 4 5
输出
Dui Gen
备注:
七、文
题目描述
输入描述:
输出描述:
输入
5 3 ADBBC spiderman ADBAC niconico BDXBC ekstieks ACBBC
输出
ekstieks 80.00
备注:
姓名长度
#include<string.h>
#define Maxn 100005
char True[Maxn];
char BFans[Maxn];
char name[55];
char BF[55];
int main(){
memset(True,0,sizeof(True));
memset(BFans,0,sizeof(BFans));
memset(name,0,sizeof(name));
memset(BF,0,sizeof(BF));
int N , M , figure;
int Max = -1;
double Last;
scanf("%d%d",&N,&M);
scanf("%s",True);
while(M--){
figure=0;
scanf("%s",name);
scanf("%s",BFans);
for(int i = 0 ; i<N ; i++){
if(True[i]==BFans[i]) figure++;
}
if(figure>Max) {
memcpy(BF,name,sizeof(name));
Max=figure;
}
else if(figure==Max) {
if(strcmp(name,BF) < 0 )
memcpy(BF,name,sizeof(name));
}
}
Last =( (double)Max/(double)N ) * 100;
//printf("Max=%d,N=%d,Last=%.2lf\n",Max,N,Last);
printf("%s\n%.2lf\n",BF,Last);
}
八、武
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
题目描述
输入描述:
输出描述:
输出共一行,一个整数,表示所有街区与 Sεlιнα 家所在街区之间最近距离的第 小值。
输入
3 3 2 1 2 4 2 3 5
输出
9
输入
6 4 3 1 2 7 2 3 2 2 4 2 2 5 10 3 6 3
输出
7
备注:
九、艺
题目描述
输入描述:
输出描述:
输出共一行,一个整数,表示最大的愉悦度。
输入
2 2 5 2 3 0 2 0 3 3 1
输出
15
说明
在这个样例中,Sεlιнα 在开始时观看频道二的节目,每分钟产生愉悦度 ;在第二分钟结束时刻切换到频道一,每分钟产生愉悦度 ,然后直到结束。总共产生愉悦度 。
输入
3 4 17 8 3 0 10 9 10 7 15 0 6 16 9 14 8
输出
205
备注:
十、美
题目描述
输入描述:
输出描述:
输出共一行,一个整数,表示最大的 值。
输入
5 7 3 15 12 8
输出
34
输入
7 -2 0 8 9 -5 3 10
输出
68