zl程序教程

您现在的位置是:首页 >  其它

当前栏目

ACM第一周---周训---题目合集.

--- 题目 合集 ACM
2023-09-14 09:12:40 时间

🚀write in front🚀
📝个人主页:认真写博客的夏目浅石.CSDN
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​
📣系列专栏:ACM周训练题目合集.CSDN
💬总结:希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🖊
✉️为什么我们不知疲倦,因为我们都在做自己所热爱的事 ♐


在这里插入图片描述

前言

本周进行了一些特别基础的练习来巩固知识,写成博客方便我去复习使用。


A - How many days?

在这里插入图片描述

思路:语法题,根据题目要求,按部就班去写就可以AC

#include<stdio.h>

int main()
{
	int m,k;
	while(~scanf("%d %d",&m,&k))
	{
		if(m==0&&k==0)
		{
			break;
		}
		int cnt=0,day=0;
		while(m)
		{
			cnt++;
			m--;
			if(cnt==k)
			{
				m++;
				cnt=0;
			}
			day++;
		}
		printf("%d\n",day);
	}
	return 0;
}

B - Pangram

在这里插入图片描述

思路:桶排序思想

#include<iostream>

using namespace std;

int book[27];

int main()
{
	int n;
	cin>>n;
	char ch;
	for(int i=0;i<n;++i)
	{
		cin>>ch;
		if(ch>='A'&&ch<='Z')
		{
			ch=ch+'a'-'A';
		}
		book[ch-97]++;
	}
	int flag=0;
	for(int i=0;i<26;++i)
	{
		if(book[i]==0)
		{
			flag=1;
			break;
		}
	}
	if(flag==1) puts("NO");
	else puts("YES");
	return 0;
}

C - Cifera

在这里插入图片描述

思路:判断k是否是l的次幂次关系,语法问题

#include<stdio.h>

typedef long long ll;

int main()
{
	ll k,l,tmp;
	scanf("%lld %lld",&k,&l);
	tmp=k;
	int cnt=0;
	while(tmp<l)
	{
		tmp*=k;
		cnt++;
	}
	if(tmp==l) 
	{
		puts("YES");
		printf("%d\n",cnt);
	}
	else puts("NO");
	return 0;
}

D - Covered Points Count

在这里插入图片描述

等我研究一下,emmm我不会我是fw

E - Ksusha and Array

在这里插入图片描述

思路:qsort进行排序,然后拿最小的那个去整除所有数字看是否可以整除

#include<stdio.h>
#include<stdlib.h>
int cmp1(const void* e1, const void* e2)
{
	return *((int*)e1) - *((int*)e2);
}
int flag=0;
int main()
{
	int n;
	int arr[100010];
	scanf("%d",&n);
	for(int i=0;i<n;++i)
	{
		scanf("%d",&arr[i]);
	}
	qsort(arr,n,sizeof(arr[0]),cmp1);
	int flag=1;
	for(int i=0;i<n;++i)
	{
		if(arr[i]%arr[0])
		{
			flag=0;
			break;
		}
	}
	if(flag) 
	{
		printf("%d\n",arr[0]);
	}
	else 
	{
		printf("-1\n");
	}
	return 0;
}

F - 最大连续子序列

在这里插入图片描述

#include "iostream"  
#include "stdio.h"  
#include "math.h"     
#include "algorithm"  
#include "string"  
using namespace std;  
#define max(a,b) a>b?a:b
#define min(a,b) a<b?a:b
 
int n;
int a[10010];
 
int main()
{
    while(scanf("%d",&n)!=EOF&&n)
    {
        int i,j=0,tmp=0,sum=0,maxx=-1,s=0,e=n-1;
        for(i=0;i<n;i++)
            scanf("%d",&a[i]);
        for(i=0;i<n;i++)
        {
            tmp+=a[i];
            if(tmp>maxx)
            {
               s=j;
               e=i;
               maxx=tmp;
            }
            else if(tmp<0)
            {
               j=i+1;
               tmp=0;
            }
        }
        if(maxx<0)
           maxx=0;
        printf("%d %d %d\n",maxx,a[s],a[e]);
    }
}

G - Wow! Such Doge!

在这里插入图片描述

#include<iostream>
#include<cstdio>
#include <string.h>
using namespace std;
int main()
{
	char arr[1001];
	int len,i,cnt=0;
	while(~scanf("%s",arr))
	{
		len=strlen(arr);
		for(i=0;i<len;i++)
		{
			if(arr[i]=='d'||arr[i]=='D')
			{
				if(arr[i+1]=='o'||arr[i+1]=='O')
				{
					if(arr[i+2]=='g'||arr[i+2]=='G')
					{
						if(arr[i+3]=='e'||arr[i+3]=='E')
						{
							cnt++;
							i+=3;
						}
					}
				}
			}
		}
		
	}
	cout<< cnt <<endl;
	return 0;
}

H - Counting Rectangles

不会

I - 素数判定

在这里插入图片描述

#include<stdio.h>
int main()
{
	int x,y,i,j;
	scanf("%d %d",&x,&y);
	while(x!=0||y!=0)
	{
		int flag=0;
		for(i=x;i<=y;i++)
		{
			int sum=i*i+i+41;
			for(j=2;j<sum;j++)
			{
				if(sum%j==0)
				{
					flag=1;
					break;
				}
				else continue;
			}
		}
		if(flag==0)
		{
			printf("OK\n");
		}
		else
		{
			printf("Sorry\n");
		}
		scanf("%d %d",&x,&y);	
	}
	return 0;
}

J - 最大子矩阵

在这里插入图片描述

思路:二维前缀和公式的使用

#include<stdio.h>
#include<string.h>
#include<math.h>

int arr[1010][1010];

int main()
{
	int t,m,n,x,y;
	scanf("%d",&t);
	while(t--)
	{
		memset(arr,0,sizeof(arr));
		int ans=0;
		scanf("%d %d %d %d",&n,&m,&x,&y);
		
		for(int i=1;i<=n;++i)
		{
			for(int j=1;j<=m;++j)
			{
				scanf("%d",&arr[i][j]);
				arr[i][j]+=arr[i-1][j]+arr[i][j-1]-arr[i-1][j-1];
				if(i>=x&&j>=y)
				{
					ans=fmax(arr[i][j]-arr[i-x][j]-arr[i][j-y]+arr[i-x][j-y],ans);
				}
			}
		}
		printf("%d\n",ans);
	}
	
	return 0;
}

总结

多刷,多学,多做。

  我是夏目浅石,希望和你一起学习进步,刷题无数!!!希望各位大佬能一键三连支持一下博主,hhhh~我们下期见喽
在这里插入图片描述
如果无聊的话,就来逛逛我的博客栈吧stack-frame.cn

原创不易,还希望各位大佬支持一下 \textcolor{blue}{原创不易,还希望各位大佬支持一下} 原创不易,还希望各位大佬支持一下

👍 点赞,你的认可是我创作的动力! \textcolor{9c81c1}{点赞,你的认可是我创作的动力!} 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向! \textcolor{ed7976}{收藏,你的青睐是我努力的方向!} 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富! \textcolor{98c091}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!