磕出来的所有题 唉……
A.防AK题目——超难系列
这是一道Hello word题,题面花里胡哨,但就想让你输出一个“Accepted!!!”。
#include<stdio.h>
int main(){
printf("Accepted!!!");
return 0;
}
B.Fenoix超厌恶xxx
这一题呢判断几种可能情况来进行即可,先看题面:
描述:
Fenoix觉得xxx是一个非常怪的人,因为他特别厌恶xxx这样的人。
现在他给你出一道有关xxx的题目,让你去把xxx消灭了。
如果一个文件名中一行包含三个或更多“x”(小写拉丁字母“x”),则他需要你把存在xxx的情况去除。
他给出的文件名中要求你删除的最少字符数,以便在文件名之后不再包含“xxx”作为子字符串。
如果文件名最初不包含禁止的子字符串“xxx”,则打印0。
您可以删除任意位置的字符(不一定是连续的)。如果删除一个字符,则字符串的长度将减少1。
例如,如果从字符串“exxxll”中删除从左到右第2个位置中的字符,则得到的字符串是“exxII”。
Fenoix说这个可是送分题哟~
输入:
第一行包含整数n(3≤n≤100)-表示文件名的长度。
第二行包含一个长度为n的字符串,该字符串仅由小写拉丁字母(文件名)组成。
输出:
打印要从文件名中删除的最小字符数,使文件名后面不包含“xxx”作为子字符串。
如果文件名最初不包含禁止的子字符串“xxx”,则打印0。
输入样例 1 输出样例 1
6 1
xxxiii
若有3个连续的x则去掉一个,若有连续三个以上的x,为了确保去完后剩余的连续x数小于3,
则去掉的个数为连续的总数减2。
#include<stdio.h>
int main()
{
int i,j,n,m=0,num=0,sum=0;
char s[10005];
scanf("%d",&n);
scanf("%s",s);
i=m;
while(i<n)
{
num=0;
if(s[i]=='x')
{
num+=1;
for(j=i+1;j<n;j++)
{
if(s[j]=='x')
{
num+=1;
if(j==n-1)
{
sum+=num-2;
break;
}
}
else if(s[j]!='x')
{
if(num==3)
{
sum+=1;
}
else if(num>3)
{
sum+=num-2;
}
break;
}
}
i=j;
}
else
{
i=i+1;
}
}
printf("%d\n",sum);
return 0;
}
C.lwm学姐的木屋
题目:
描述
lwm学姐决定为她的木屋做一个新的屋顶,他有n个矩形木板,编号从1到n。度为1,
高度为第i个木板的尺寸为ai×1(即宽ai)。现在,lwm学姐想做一个方形屋顶。
他先挑选一些厚木板,把它们按一定的顺序并排放在一起。然后他会把这些木板的垂直边粘在一起。
最后,他将从最终形状中切出一个正方形,使正方形的边长是水平和垂直的。
例如,如果lwm学姐有长度为4、3、1、4和5的木板,他可以选择长度为4、3和5的木板。
然后他可以切出一个3×3的正方形,这是最大的可能。注意,这不是他得到3×3正方形的唯一方法。
lwm学姐能得到的最大边长是多少?
输入:
输入的第一行包含一个整数k(1≤k≤10),即输入的测试用例的数量。
对于每个测试用例,第一行包含一个整数n(1≤n≤1000),lwm学姐存储的木板数量。
下一行包含n个整数a1,…,an(1≤ai≤n),即板材的长度。
输出:
对于每个测试用例,输出一个整数,即正方形的最大可能边长。
输入样例 1 输出样例 1
4 3
5 4
4 3 1 4 5 1
4 3
4 4 4 4
3
1 1 1
5
5 5 1 1 5
由题意可知,多少块板即为所拼图形的宽,将所有长度的板子进行从长到短排序后,依次增加宽,若累加的宽等于循环到的长度,则所得宽即为最大正方形的边长,若小于,则所得宽减1即为最大正方形的边长,若大于则继续循环,看代码实现:
#include<stdio.h>
#include<algorithm>
using namespace std;
#define hhh 100005
int a[hhh];
bool cmp(int b,int c){
return b>c;
}
int main(){
int k,n;
scanf("%d",&k);
while(k--){
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
sort(a,a+n,cmp);
int sum=1;
for(int i=0;i<n;i++){
if(a[i]==sum){
printf("%d\n",sum);
break;
}
else if(a[i]<sum){
printf("%d\n",sum-1);
break;
}
sum++;
}
}
return 0;
}
D.Fenoix的趣事
看题目:
描述:
Fenoix非常喜欢看足球,又超喜欢把生活中的事情与学习和算法联系起来。一天,当他正在看
足球比赛时,他正在一张纸上写下球员们目前的位置。于是就想了一道题目来为难作为新生的你。
为了简化这种情况,他把它描绘成一个由0和1组成的字符串。
0对应一个队的队员;1对应另一个队的队员。如果一个队中至少有7名队员一个接一个地站着,
那么这种情况就被认为是危险的。例如,情况00110111111101是危险的,而11110111011101不是。
现在的情况是这样的,需要你确定它是否危险。
输入:
第一个输入行包含一个由字符“

本文详细解析了ACM第五次周赛的补题,包括各种类型的题目,如判断条件题、排序与贪心策略、字符串处理、数学问题等。通过代码实现,帮助读者理解解题思路。
最低0.47元/天 解锁文章
2912

被折叠的 条评论
为什么被折叠?



