首页 > 其他分享 >模拟八补题报告

模拟八补题报告

时间:2024-10-25 14:16:24浏览次数:3  
标签:AC 题目 报告 int sum 补题 i% nb 模拟

 S15192

一、题目报告

        第一题100分,第二题100分,第三题100分,第四题100分。

二、赛中概况

        第一题很简单,遍历删除一下就可以。

        第二题不难,设一个cnt数组统计一下就行。

        第三题模拟下就可以。

        第四题,见过类似的,所以直接AC。

三、解题报告

T1.咪咪的玩具(toy)

题目情况 

        比赛时AC

题目描述

        咪咪今年 5 岁了,爸爸送给他几套lego玩具的零件 m 个,零件由不同型号(一个型号只有一个零件)组成,现在咪咪想要用这些零件组成一些模型,但是,咪咪比较任性,他会将带有不喜欢的数字的零件扔掉,比如他不喜欢数字 3 ,那他就会把型号为 3、13、23、30、33… 等零件去掉。现在给定 m 和 t ,求咪咪扔掉之后还剩多少个零件。 

题目解析

       观察数据范围,可以发现数据范围并不大。
        因此可以直接枚举 到 范围内的每个数字,然后对这个数字进行拆分,若不包含 t ,则进行计数,然后继续判断下一个数字。
        最终记录出来的就是不包含 t 的数字,直接输出就是答案。

AC代码

#include<bits/stdc++.h>
using namespace std;
int n,m,cnt;
int main(){
	freopen("toy.in","r",stdin);
	freopen("toy.out","w",stdout);
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		int t=i,f=0;
		while(t!=0){
			if(t%10==m){
				f=1;
				break;
			}
			t/=10;
		}
		if(!f) cnt++;
	}
	cout<<cnt<<"\n";
	fclose(stdin);
	fclose(stdout);
	return 0;
}

T2.小可的晚会(party)

题目情况 

        比赛时AC

题目描述

        小可全班同学要去超市买东西,小可一共有 n 个同学,每个人要买 m 件商品。现在我们想要比一比谁花的钱最多,花了多少钱。输出是第几个人,以及他花的钱数(如果一样多则按照先算的优先)。

题目解析

        计算出来每行数字的和,然后找出最大的和,并输出行标。使用计数器直接记录即可。然后打擂台记录最大值。

AC代码

#include<bits/stdc++.h>
using namespace std;
int n,m,a[108][108],cnt[108],maxx,t;
int main(){
	freopen("party.in","r",stdin);
	freopen("party.out","w",stdout);
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
			cnt[i]+=a[i][j];
		}
	}
	for(int i=1;i<=n;i++){
		if(maxx<cnt[i]){
			maxx=cnt[i];
			t=i;
		}
	}
	cout<<t<<" "<<maxx<<"\n";	
	fclose(stdin);
	fclose(stdout);
	return 0;
}

T3.蓄水池水管问题(pipe)

题目情况 

        比赛时AC

题目描述    

        蓄水池有甲、丙两条进水管和乙、丁两条排水管。

        要灌满一池水,单开甲管需要a小时,单开丙管需要c小时;要排光一池水,单开乙管需要b小时,单开丁管需要d小时。

        现在池内没有水,如果按甲乙丙丁的顺序循环单开各水管,每次每管开1小时,则多长时间后水开始溢出水池?

        保证一定会在有限时间内出现水溢出水池的情况。

题目解析

        循环让两个人分别倒水,进行记录,注意计算过程中的精度问题。
        提前判断 如果进水后超过1 ,那么时间累计的是剩余水量/进水速度

AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a,b,c,d;
    cin>>a>>b>>c>>d;
    //进水>排水
    //进水量    假设池满是1
    double sum=0,t=0;
    while(sum<1){
        if(sum+1.0/a>=1){//提前判断 如果进水后超过1
            t+=(1-sum)/(1.0/a);//剩余水量/进水速度
            break;
        }
        sum+=1.0/a;//进水
        sum-=1.0/b;//出水
        t+=2;//累计 时长
        if(sum+1.0/c>=1){//提前判断 如果当即进水后超过1
            t+=(1-sum)/(1.0/c);
            break;
        }
        sum+=1.0/c;//加上 进水量
        sum-=1.0/d;//减去 出水量
        t+=2;
    }
    printf("%.2lf",t);
    return 0;
}

T4.石头剪刀布(game)

题目情况 

        比赛时AC

题目描述

        石头剪刀布是常见的猜拳游戏。石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,则不分胜负。

        一天,小A和小B正好在玩石头剪刀布。已知他们的出拳都是有周期性规律的,比如:“石头-布-石头-剪刀-石头-布-石头-剪刀……”,就是以“石头-布-石头-剪刀”为周期不断循环的。请问,小A和小B比了N轮之后,谁赢的轮数多?

题目解析

        输赢的判断过程有多种方式,可以直接枚举判断,情况并不多,也可以通过自定义函数,判断输赢。枚举情况判断:

    if(a[i%na]==5&&b[i%nb]==0) cnta++;
    else if(a[i%na]==0&&b[i%nb]==2) cnta++;
	else if(a[i%na]==2&&b[i%nb]==5) cnta++;
	else if(b[i%nb]==5&&a[i%na]==0) cntb++;
	else if(b[i%nb]==0&&a[i%na]==2) cntb++;
	else if(b[i%nb]==2&&a[i%na]==5) cntb++;

        出石头剪刀布的过程是循环进行的,因此,需要进行取余,取余之后,表示一轮循环结束,重新开始。

AC代码

#include<bits/stdc++.h>
using namespace std;
int n,na,nb,cnta,cntb;
int a[108],b[108];
int main(){
	freopen("game.in","r",stdin);
	freopen("game.out","w",stdout);
	cin>>n>>na>>nb;
	for(int i=1;i<=na;i++){
		cin>>a[i];
	}
	for(int i=1;i<=nb;i++){
		cin>>b[i];
	}
	a[0]=a[na],b[0]=b[nb];
	for(int i=1;i<=n;i++){
		if(a[i%na]==5&&b[i%nb]==0) cnta++;
		else if(a[i%na]==0&&b[i%nb]==2) cnta++;
		else if(a[i%na]==2&&b[i%nb]==5) cnta++;
		else if(b[i%nb]==5&&a[i%na]==0) cntb++;
		else if(b[i%nb]==0&&a[i%na]==2) cntb++;
		else if(b[i%nb]==2&&a[i%na]==5) cntb++;
	}
	if(cnta==cntb){
		cout<<"draw\n";
	}else if(cnta>cntb){
		cout<<"A\n";
	}else if(cnta<cntb){
		cout<<"B\n";
	}
	fclose(stdin);
	fclose(stdout);
	return 0;
}

2024/10/12

标签:AC,题目,报告,int,sum,补题,i%,nb,模拟
From: https://blog.csdn.net/LXY130519/article/details/143232740

相关文章

  • 【10-25模拟赛】
    你有\(n\)个正整数\(a_1,a_2,\cdots,a_n\),它们的和是\(m\)。你想对他们的每个子集\(S\),求出它们的和。现在你得到了\(2^n\)个\([0,m]\)之间的和,其中数字\(i\)出现了\(b\)次。现在给出数组\(b\),请还原\(a\)数组。显然,最小的满足\(b_i>0\)的\(i\)肯定在......
  • 20222326 2024-2025-1 《网络与系统攻防技术》实验三实验报告
    1.实验内容实验具体内容正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧正确使用msf编码器,使用msfvenom生成如jar之类的其他文件veil,加壳工具使用C+shellcode编程通过组合应用各种技术实现恶意代码免杀用另一电脑实测,在杀软开启的情况下,可......
  • 2024年运动场划线机市场发展战略研究报告
    运动场划线机是一种专门用于在体育场地划线的专业设备。这些机器可以用于足球场、篮球场、网球场、田径场等多种体育场所,以确保场地线条清晰、准确,符合比赛规则。2024年10月恒州诚思(YHResearch)调研团队最新发布的《2024年全球及中国运动场划线机行业头部企业市场占有率及排名调研报......
  • 2024年内部知识库软件市场发展战略研究报告-恒州诚思
    内部知识库是一个私有的、内部使用的知识管理平台,它允许企业员工轻松地查找、访问、共享和管理公司内部的各种知识资源。这些资源可能包括公司政策、流程文档、培训材料、项目文档、常见问题解答(FAQs)、最佳实践、工作流程模板、关键人员联系方式、会议记录和议程、软件工具文档等。......
  • (开题报告)django+vue医疗设备管理系统论文+源码
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景在医疗领域,设备管理至关重要。关于医疗设备管理系统的研究,现有研究主要以传统的管理模式为主,专门针对基于django+vue技术构建的医疗设备管......
  • CSP模拟 Town
    题意有一棵树,将它的一些边断开,使得每个连通块的点权异或和为给定的一个数\(x\),求方案数。原题好像是牛客的NC200547,没有账号看不到题,不确定。思路朴素的想法是用f[i][j]记录“\(i\)子树中与\(i\)相连的连通块异或和为\(j\)(\(i\)子树内其他连通块异或和为\(x\))”的方......
  • pytest 执行用例 将测试结果追加到表格并生成测试报告并推送至企微
    ReadExcel#-*-coding:utf-8-*-fromopenpyxlimportload_workbookimportosclassTestExcel():defget_TestExcel(self,file_name,sheet_name):print("======",os.getcwd())#workbook=load_workbook('Datas.xlsx......
  • 【开题报告+论文+源码】基于SSM的电影数据挖掘与分析可视化系统设计与实现
    项目背景与意义随着互联网的普及和数字娱乐产业的蓬勃发展,电影作为一种重要的娱乐方式,已经深入人们的日常生活。然而,面对海量的电影资源,用户在选择观影内容时常常感到困惑和无所适从。传统的电影推荐方式,如人工筛选、基于流行度的推荐等,已无法满足用户日益增长的个性化需求。......
  • (开题报告)django+vue基于Web的网上书店销售系统论文+源码
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景在当今数字化时代,电子商务蓬勃发展,网上书店作为其中的重要组成部分,具有广阔的市场前景。关于Web网上书店销售系统的研究,现有研究主要以大......
  • 【开题报告】基于Springboot+vue自习室管理系统(程序+源码+论文) 计算机毕业设计
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着高等教育的普及和学习需求的日益增长,自习室作为学生学习的重要场所,其管理效率和资源利用率成为了高校和教育机构关注的焦点。传统自习室管理方式......