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. 使用java短信验证

    package cn.geekss.util; import java.io.BufferedReader;import java.io.InputStreamReader;import java.i ...

  2. 从0系统学Android--5.2 发送广播

    从0系统学Android--52 发送广播 本系列文章目录:更多精品文章分类 本系列持续更新中.... 初级阶段内容参考<第一行代码> 5.3 发送自定义广播 前面已经学习了如何接受广播了 ...

  3. 硬核数据结构,让你从B树理解到B+树

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是周五分布式系统的第八篇文章,核心内容是B+树的原理. 今天的文章是上周B树的延伸,所以新关注的或者是有所遗忘的同学建议先从下方链接回顾 ...

  4. Redis05——Redis Cluster 如何实现分布式集群

    前面一片文章,我们已经说了Redis的主从集群及其哨兵模式.本文将继续介绍Redis的分布式集群. 在高并发场景下,单个Redis实例往往不能满足业务需求.单个Redis数据量过大会导致RDB文件过大 ...

  5. JVM进阶:JVM的监控利器

    每次聊起性能测试,最后的终极话题就是怎么做优化.其实在Java的复杂项目中都会有内存不足问题.内存泄露问题.线程死锁问题.CPU问题.这些问题在小压力的情况下有可能并不明显,很容易被忽视.但是真正到了 ...

  6. .net webapi 接收保存图片到服务器,并居中剪裁压缩图片

    原文链接:https:////www.cnblogs.com/Jackyye/p/12510943.html 每天解决一些c#小问题,在写微信小程序,或者一些手机软件接口,我们经常要用到上传图片到服务 ...

  7. 记Android R(SDK=30)系统执行UiAutomator1.0异常

    最近Android发布了AndroidStudio 3.6稳定版,升级后明显能体验到好多细节的提升,最大的提升莫过于可以创建Android R预览版的模拟器了,并且模拟器可以设置多个尺寸的屏幕.And ...

  8. Hacker101-CTF | Postbook

    Hacker101-CTF | Postbook mirror王宇阳 水平有限,不足之处还望指教 ^_^ 看看这个一大堆英文介绍 With this amazing tool you can writ ...

  9. ES6 第七节 ES6中新增的数组知识(1)

    目录 ES6 第七节 ES6中新增的数组知识(1) 第七节 ES6中新增的数组知识(1) JSON数组格式转换 Array.of()方法: find()实例方法: ES6 第七节 ES6中新增的数组知 ...

  10. Redux的createStore实现

    Redux的createStore实现   使用过react的同学应该对Redux这个东西有所了解.他是一种全局状态管理的思想(对, 这里我觉得它是一种思想, 因为对于React来说, 其实Redux ...