A:最简单签到,没有之一

Description
此题简单如题意,就是求最大值 Input
多组输入 每组输入输入一串字符串(包括字母和数字),长度小于500 Output
每行输出字符ASCII值与出现次数乘积的最大值 Sample Input 1
0aA
aaaaa
0000az
Sample Output 1
97
485
192
Hint
0000az:‘0’出现4次 48*4=192 ‘a’出现1次 97*1=97

思路如下

这题首先是要多组输入,然后要把每组数据输入到一个char数组里,之后用桶排的方法去统计各字符出现的次数,最后定义一个最大值去存储 字符与ASCALL码的乘积的最大值,然后输出。


题解如下

#include<stdio.h>
#include<string.h> int main()
{ char ar[999]; while (scanf("%s",ar)!=EOF)
{
int br[123]={0}; //br要放到while循环里面,每次驯化都初始化
int LEN_ar=(int)strlen(ar);
for(int i=0;i<LEN_ar;i++)
{
br[ar[i]]++;
}
int max=-1;
for(int i=0;i<123;i++)
{
if(max<br[i]*i)
{
max=br[i]*i;
}
}
printf("%d\n",max);
} return 0;
}


B:wr学姐的小调查

Description
wr学姐想调查工作室学长学姐的生日,并按照从大到小的顺序排序。但wr学姐最近作业很多,没有时间,所以请你帮她排序。 Input
有2行, 第1行为工作室总人数n; 第2行至第n+1行分别是每人的姓名s、出生年y、月m、日d。 Output
有n行, 即n个生日从大到小学长学姐的姓名。(如果有两个学长学姐生日相同,输入靠后的学长学姐先输出) Sample Input 1
3
xsaxs 1999 2 15
kuzhese 2000 12 5
uixes 2001 2 4
Sample Output 1
xsaxs
kuzhese
uixes

思路如下

这题就是要自己定义结构体去存多种储数据类型,让后用sort函数去排序,sort(),函数的第三参数(比较函数)需要自己来编写,最后输出就行了


题解如下


#include<stdio.h>
#include<iostream>
#include<algorithm> struct Man
{
char name[10];
int year;
int month;
int day;
};
bool cmp_sort(Man a,Man b) // 注意:这里要弄懂比较好数要怎么编写,要注意一点,只有当这个函数的返回值为 假(false)当时候这时候才发生交换!!!
{
if(a.year>b.year)
{
return false;
}
else if(a.year==b.year&&a.month>b.month)
{
return false;
}
else if(a.year==b.year&&a.month==b.month&&a.day>b.day)
{
return false;
}
else
return true; } using namespace std;
int main()
{
int n;
scanf("%d",&n);
Man man[n];
for(int i=0;i<n;i++)
{
scanf("%s",man[i].name);
scanf("%d%d%d",&man[i].year,&man[i].month,&man[i].day);
} sort(man,man+n,cmp_sort);
for(int i=0;i<n;i++)
{
printf("%s\n",man[i].name);
} return 0;
}


C:小仙女的烦恼(三)

Description

小仙女最近吃胖了不少,她很郁闷,很怕被人说胖,但是如果班上有女生比她更胖,她就会充满动力啦~

众所周知,xxn现在体重120,班上有n个人,如果有女生的体重比她重,她就会很开心,否则她将超级难过!!!!

Input
多组输入没次输入一个整数n,代表n行。 之后n行每行一个数字a和一个字符串s分别代表体重和性别;(0<=a<=1000) Output
如果xxn开心的话输出 "哈哈哈",否则输出 " 嘤嘤嘤"; Sample Input 1
2
120 woman
130 woman
Sample Output 1
hhh

思路如下

对每组数据进行判断看是否有符合题意的输出


解题如下

#include<stdio.h>

struct Student
{
char gender[5];
int weight;
}; int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
Student mate[n];
for(int i=0;i<n;i++)
{
scanf("%d%s",&mate[i].weight,mate[i].gender);
}
int flag=0; //先假设所有女生体重小于120
for(int i=0;i<n;i++)
{
if(mate[i].gender[0]=='w'&&mate[i].weight>120)
{
flag=1; //满足题意大于120,设为真值
}
}
if(flag==1)
{
printf("hhh\n");
}
else
{
printf("yyy\n");
} } return 0;
}


D:pxj爱喝可乐

Description

pxj爱喝可乐,最近可乐公司出了一个活动:四个空可乐瓶可兑换一瓶可乐,pxj当然不会错过这次机会,她买了p瓶可乐,最多可以喝几瓶呢?

Input
多组输入 每一行输入一个pxj买的可乐的数量p ( 0<=p<=10000) 当p=0时结束输入 Output
输出pxj最多可以喝的可乐数量a Sample Input 1
5
10
0
Sample Output 1
6
13

思路如下

这是一道 模拟题,我们只需要模拟题目所描述的过程就行了


解题如下

#include<stdio.h>

int main()
{
int n;
scanf("%d",&n);
while (n!=0)
{
int sum=n; //总共可以喝的瓶数
int sur_bottle=n; //喝完剩余的瓶树
for(int i=0; ;i++)
{
if(sur_bottle>=4)
{
sum+=sur_bottle/4;
sur_bottle=sur_bottle/4+sur_bottle%4; }
else
{
break;
}
} printf("%d\n",sum);
scanf("%d",&n);
} return 0;
}


E:智斗南工白嫖王

Description

“人类用十进制,上帝用二进制”

ZCR和ZHY是510的两大肥宅,每天中午点外卖是他们最快乐的事情,可算账的时候ZCR很头疼,因为ZCR只会二进制而ZHY只会十六进制,并且ZHY总是仗着ZCR没法换算二人的账单而不给钱。忍一时越想越气,退一步越想越亏,于是ZCR想请你帮忙换算二人的账单。ZCR给你一个十六进制数字,代表ZHY的账单,请你把它换算成ZCR认识的二进制。

Input
第一行输入T,代表下面有T组数据。 每组数据第一行输入一个n,代表有一个16进制数,不带0x(例如给出一个十进制的0,在十六进制里它表示为00,此处就是说它在十六进制里仍然表示为0,而不是00,详细的可以看c语言附录A),A~F均为大写。 (1 ≤ T, n, m ≤ 1e9) Output
每行输出保留前导零的n的2进制。(保留前导0的规则为:n不是4的倍数的话,要把n补0补成4的倍数。 例如:1,保留前导零之后为0001 11110,保留前导0之后为00011110) Sample Input 1
2
A
0
Sample Output 1
1010
0000
Hint
十六进制在数学中是一种逢16进1的进位制。一般用数字0到9和字母A到F(或a~f)表示,其中:A~F表示10~15,这些称作十六进制数字。 例如十进制数10,在二进制写作1010,在16进制写作A。(可以看一下C语言课本的附录A哦);

思路如下

这题是让 十六进制转化为二进制,根据提示我们知道 在二进制下的 4位对应十六进制下的1位,那我们就可以反过来想(反过来转换)1位对应二进制下的4位,根据十六进制下的某一是什么,进行输出就行了


题解如下

#include<stdio.h>
#include<string.h> int main()
{
int T;
scanf("%d",&T);
while (T--)
{
char ar[9999];
scanf("%s",ar);
int LEN_ar=(int)strlen(ar);
for(int i=0;i<LEN_ar;i++)
{
switch (ar[i])
{
case '0':printf("0000");break;
case '1':printf("0001");break;
case '2':printf("0010");break;
case '3':printf("0011");break;
case '4':printf("0100");break;
case '5':printf("0101");break;
case '6':printf("0110");break;
case '7':printf("0111");break;
case '8':printf("1000");break;
case '9':printf("1001");break;
case 'A':printf("1010");break;
case 'B':printf("1011");break;
case 'C':printf("1100");break;
case 'D':printf("1101");break;
case 'E':printf("1110");break;
case 'F':printf("1111");break; default:
break;
}
}
printf("\n");
}
return 0;
}


I我是签到题

Description

YZJ学长要寻找最大值,但是他不会,所以要询问学弟学妹们该怎么办?

这个问题是这样的:请在正整数n中删除m个数字, 使得余下的数字按原次序组成的新数最大,

比如当n=92081346718538,m=10时,则新的最大数是9888

Input
有多组测试数据 每组测试数据包含两个正整数n,m(n可能是一个很大的整数,但其位数不超过100位,并且保证数据首位非0,并且m小于n的位数) Output
每组测试数据的输出占一行,输出剩余的数字按原次序组成的最大新数 Sample Input 1
92081346718538 10
1008908 5
Sample Output 1
9888
98

思路如下

如果要想求去掉一些数字后,按原序组成的最大值,就要明白,要先让第一位最大,其次是第二位,然后依次往下,

解题如下

#include<stdio.h>
#include<string.h> int main()
{
char ar[9999];
int n;
while(scanf("%s%d",ar,&n)!=EOF)
{
int LEN_ar=(int)strlen(ar);
int br[9999];
for(int i=0;i<LEN_ar;i++)
{
br[i]=ar[i]-'0';
}
int *p_1,*p_2; //p_1指向待筛选区域起始位置,p_2待筛选区域终点位置
p_1=&br[0];
p_2=&br[LEN_ar-(LEN_ar-n)];
int *temp_p; //做中间变量
for(int i=0;i<LEN_ar-n;i++) //删除数字后有几位,就循环几次,已确定每一位的最大值
{
int max=-1; //某位 所能去到的最大值
for(int *j=p_1;j<=p_2;j++) //循环遍历
{
if(max<*j)
{
max=*j;
temp_p=j;
}
}
printf("%d",max);
//更新筛选区域
p_1=temp_p+1;
p_2++;
}
printf("\n");
} return 0;
}


J签到不签到他们说了不算

Description

yzj是一个贪吃鬼,而且他还特别喜欢吃一整块的东西(什么叫一整块的东西?就是这个东西是矩形而且是实心的,中间不能有其他东西,吃的东西用‘*’来表示)。yzj不知道从哪里得到了几块吃的东西,但是这个高为
n
n的东西有一部分不能吃(被污染了!!!用‘.’来表示)。然而yzj是一个吃货,你宁愿失去一些重要的东西去找巫婆交换来使这个高为n的东西给搞得可以吃!巫婆可以把‘.’号变成‘*’号,以此来使这个残缺的东西有一整块可以吃。但是巫婆为了减少负担肯定会减少把‘.’变成‘*’的次数。 聪明的你可以输出巫婆最少要把那些位置变成‘*’号嘛! Input
多组输入,先输入一个
n
n,再输入
n
n行。表示一个图 (
1

n

100
1≤n≤100) Output
输出符合题意的
n
n行的图形,哪些位置巫婆要把它变成‘*’,你就输出‘*’号,否则输出‘.’,图形后面有一个空行 Sample Input 1
3
..**..
.*..*.
......
Sample Output 1
.*..*.
..**..
......
Sample Input 2
5
*.......
....*...
........
........
..*.....
Sample Output 2
.****...
****....
*****...
*****...
**.**...
Hint
输入和输出图形叠加之后刚好有一个被‘*’号覆盖的矩形方块

思路如下

这一题要明白,这一题的本质就是要找一个最小矩形(这样可以让巫婆施最少的法),如何确定这个矩形呢,只需要确定对角线上的两个点(max_x,max_y)、(min_x,min_y),这两个点的横竖坐标都是 极值,我们只需要定义变量获取这些,极值就行了,有了极值就能确定矩形区域,在矩形区域内我们只需 把 . 号变为 *,*号变为 . 号即可,在矩形区域以外的区域全打印 . 号就行了

解题如下

#include<stdio.h>
#include<string.h> int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
char ar[n][200];
for(int i=0;i<n;i++)
{
scanf("%s",ar[i]); }
int LEN_w=strlen(ar[0]);
int max_x=-1,max_y=-1,min_x=9999,min_y=9999;
for(int i=0;i<n;i++) //遍历数组,去求横竖坐标极值
{
for(int j=0;j<LEN_w;j++)
{
if(ar[i][j]=='*')
{
if(max_x<i)
{
max_x=i; }
if(max_y<j)
{ max_y=j;
}
if(min_x>i)
{
min_x=i; }
if(min_y>j)
{ min_y=j;
}
}
} }
for(int i=0;i<n;i++)
{
for(int j=0;j<LEN_w;j++)
{
if(i>=min_x&&i<=max_x&&j>=min_y&&j<=max_y) //在矩形区域内
{
if(ar[i][j]=='*')
printf(".");
else
printf("*");
}
else //在矩形区域外
printf("."); }
printf("\n"); }
printf("\n");
} return 0;
}


圈钱杯

Description

最近开始申请单项奖学金,没去圈钱杯(蓝桥杯)国赛的nuoyanli很伤心(¥_¥),nuoyanli决定在下一届圈钱杯(蓝桥杯)之前进行训练(虚假)。

在训练的第一天,他应该完全解决一个问题,第二天应该解决两个问题,第三天则完全解决三个问题,依此类推:在第k天,他应该解决k个问题。
nuoyanli有n个比赛的列表,第i个比赛包括ai

```c
问题。在每一天中,nuoyanli都必须选择自己尚未解决的竞赛中的一种并加以解决。 他从这场比赛中准确地解决了
k
k个问题(其他问题也从中丢弃)。 如果在第k
天没有至少由nuoyanli尚未解决的
k个问题组成的比赛,则nuoyanli停止训练。
假设nuoyanli一定会最佳选择比赛,请问他最多可以训练多少天?
Input
输入的第一行包含一个整数
n(1≤n≤2⋅10^5)n1≤n≤2⋅10^5表示比赛数。 输入的第二行包含
n
n个整数a1,a2,…,an(1≤ai≤2⋅105)a 1​ ,a 2​ ,…,a n​ (1≤a i​ ≤2⋅105)第i场比赛中的问题数。 Output
打印一个整数,假设nuoyanli会最佳选择比赛,nuoyanli可以训练的最大天数。 Sample Input 1
3
1 1 1
Sample Output 1
1
Sample Input 2
4
3 1 4 1
Sample Output 2
3

思路如下

这题就是排序完数组,进行一天天的比较。看最多有多少天符合题意


#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std; int main()
{
int n;
scanf("%d",&n);
int ar[n];
for(int i=0;i<n;i++)
{
scanf("%d",&ar[i]);
}
sort(ar,ar+n); // 排序以供 筛选使用
int day=0;
int j=0; //初始化j
int temp; //存储每一次筛选之后的j的起始值
for(int i=1;i<=n;i++) // i表示第几天
{
int flag=0;
for( ;j<n;j++)
{
if(ar[j]>=i) //看是数组ar否有值 满足地i天的i题需要
{
day++;
flag=1;
temp=j;
break;
} }
if(flag==0) //如果 flag=0,说明这时后,ar中已经,没有值可以满足这一天的题数了
{
break;
}
if(flag==1) //满足这一天进行下一天的判断
{
j=temp+1; //这时候 要改变j值
} }
printf("%d",day); return 0;
}


G:我裂开了

Description

现在有两个整数x,y,保证x>y,(1<x,y<1e9)你可以选择任意一个素数p,并且可以从x中减去任意个p,你可以将x变成y吗?

Input
T组输入 每组输入包括两个整数x,y Output
如果可以输出YES 否则输出NO Sample Input 1
4
100 98
42 32
10000000 1
41 40
Sample Output 1
YES
YES
YES
NO
Hint
素数是指在大于1的自然数中,除了1和它本身以外不再有其他因数
```c
***
**思路如下**
>真是一道智障题,需要理解要能否把x减去n个相同的素数(可以自己任意选)变成y,这要去定x-y!=1就符合题意!!!!! **题解如下**
```c
#include<stdio.h> int main()
{
int T;
scanf("%d",&T);
while (T--)
{
int a,b;
scanf("%d%d",&a,&b);
int cha=a-b;
if(cha==1)
{
printf("NO\n");
}
else
{
/* if(cha%2==0||(cha-1)%2==0)
{
printf("YES\n");
}
else
{
printf("NO\n");
}
*/
printf("YES\n");
}
}
return 0;
}

2019级第一次月赛暨ACM工作室第一次招新赛、补题赛的更多相关文章

  1. 第十届山东省acm省赛补题(1)

    今天第一场个人训练赛的题目有点恐怖啊,我看了半个小时多硬是一道都不会写.我干脆就直接补题去了.... 先补的都是简单题,难题等我这周末慢慢来吧... A Calandar Time Limit: 1 ...

  2. 哈尔滨工程大学ACM预热赛 补题

    链接:https://ac.nowcoder.com/acm/contest/554/A来源:牛客网 小虎刚刚上了幼儿园,老师让他做一个家庭作业:首先画3个格子,第二行有2个格子,第三行有1个格子. ...

  3. 第十届山东省acm省赛补题(2)

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4124 L Median Time Limit: 1 Second      ...

  4. 2018.10.19浪在ACM 集训队第一次测试赛

    2018.10.19浪在ACM 集训队第一次测试赛 待参考资料: [1]:https://blog.csdn.net/XLno_name/article/details/78559973?utm_so ...

  5. 洛谷2019 3月月赛 T1

    题干 2019第一次月赛 我只有255pts T1还是比较水的... 海星 T1一道简单的模拟(就是有坑..导致很多人不能一次性AC 比如说我) _3个坑点 1.位数问题 2.-0 3.0... #i ...

  6. 湘潭邀请赛+蓝桥国赛总结暨ACM退役总结

    湘潭邀请赛已经过去三个星期,蓝桥也在上个星期结束,今天也是时候写一下总结了,这应该也是我的退役总结了~ --------------------------------湘潭邀请赛----------- ...

  7. 膜拜acm大牛 虽然我不会这题,但是AC还是没有问题的~(转自hzwer)

    wywcgs: 亦称Lord Wu,俗名吴垠,2009级厦门大学智能科学与技术学院研究生,本科就读于哈尔滨工业大学.因其深厚的算法功底与独到的思维方式,被尊为“吴教主”,至今声威犹存. 2006年起参 ...

  8. 2014上半年acm总结(1)(入门+校赛)

    大一下学期才开始了acm,不得不说有一点迟,但是acm确实使我的生活充实了很多,,不至于像以前一样经常没事干=  = 上学期的颓废使我的c语言学的渣的一笔..靠考前突击才基本掌握了语法 寒假突然醒悟, ...

  9. 2019第十届蓝桥杯省赛及国赛个人总结(java-B组)

    省赛: 今年省赛的题目比18年简单的多,基本都是暴力枚举.BFS之类.还记得去年在山师考蓝桥杯,我这种辣鸡连题目都没看懂.本以为蓝桥会变得越来越难,没想到今年就被打脸了.今年省赛后面三个编程大题一个没 ...

随机推荐

  1. docker 学习(四)

    1.Dockerfile简介 1)什么是Dockerfile Dockerfile是一个包含用于组合映像的命令的文本文档.可以使用在命令行中调用任何命令. Docker通过读取Dockerfile中的 ...

  2. MongoDB复制集概念架构浅析

    一.复制集的作用 (1) 高可用 防止设备(服务器.网络)故障. 提供自动failover 功能. 技术来保证数 (2) 灾难恢复 当发生故障时,可以从其他节点恢复. (3) 功能隔离 用于分析.报表 ...

  3. Vue2.0 【第二季】第8节 Component 父子组件关系

    目录 Vue2.0 [第二季]第8节 Component 父子组件关系 第8节 Component 父子组件关系 一.构造器外部写局部注册组件 二.父子组件的嵌套 Vue2.0 [第二季]第8节 Co ...

  4. C++结构体和类的区别总结及各自优缺点

    结构体在栈里.而类在堆里. 结构体为值类型.而类是引用类型 结构体不能被继承,而类可以. 结构体无构造函数 类可以定义虚函数,而结构体不行. 结构在数据参数方面效率更高,简单数组的应用中成本很低.而类 ...

  5. Html的总结(待完善)

    Html的总结(待完善) 框内文字 Placeholder 框内文字(例如:请输入密码) A标签 link 未点击的A标记 visited 点击过的A标签 hover 放置鼠标变颜色 active 点 ...

  6. Mybatis(一)Mybatis相关概念

    1.1 传统的JDBC实现 public static void main(String[] args) { Connection connetion = null; PreparedStatemen ...

  7. 037.集群网络-Docker网络实现

    一 Docker网络 1.1 Docker网络类型 标准的Docker支持以下4类网络模式: host模式:使用--net=host指定. container模式:使用--net=container: ...

  8. CVE-20117-111882漏洞复现及利用

    背景 工程实践题目: 渗透方向:实验班要求 1.利用已有的漏洞,搭建内网实验环境(WEB漏洞或系统漏洞以近两年内的CVE编号为准,每人一个,先报先得,具体由学习委员负责协调),利用工具进行内网渗透攻击 ...

  9. Natas17 Writeup(sql盲注之时间盲注)

    Natas17: 源码如下 /* CREATE TABLE `users` ( `username` varchar(64) DEFAULT NULL, `password` varchar(64) ...

  10. jvm 性能调优工具之 jps 命令详解

    JPS名称:jps - Java Virtual Machine Process Status Tool命令用法:jps [options] [hostid] options:命令选项,用来对输出格式 ...