Codeforces Round 957 (Div. 3)(A~E题解)

news2024/9/27 5:54:26

这次比赛只能用抽象来形容,前五道题都没有什么算法,都是思维加模拟都能过,然后第四题卡住了,第五题不知道为什么做出来的人那么少,就是纯暴力就能过,但是没抓住上分的机会,有些可惜,但是还好打完比赛把第四个重新补出来了,感觉大模拟的题还是不太擅长,以后可以练习一下

话不多说,直接看题

A. Only Pluses

 

 题意:就是给你三个数,三个数一共可以增加的次数为5,问你增加完之后,其三个数的乘积最大值为多少

思路:思路就是小学数学题,但是因为实现有问题,也是卡了我20分钟,我就知道这次比赛直接白搭

每次选取出来三个数里面最小的一个加上1就可以

#include<bits/stdc++.h>
using namespace std;
#define int long long
int t;
int a,b,c;

int solve(int a,int b,int c)
{
	return min(min(b,c),a);
}

signed main()
{
	cin>>t;
	while(t--)
	{
		cin>>a>>b>>c;
		for(int i=1;i<=5;i++)
		{
			int flag=solve(a,b,c);
			if(a==flag)
			{
				a++;
				continue;
			}
			else if(b==flag)
			{
				b++;
				continue;
			}
			else if(c==flag)
			{
				c++;
				continue;
			}
		}
		cout<<a*b*c<<"\n";
	}
	return 0;
}

B. Angry Monk

 题意:就是说每次操作只能将一块蛋糕分成1和w-1或者将一个重量为w,另一个重量为1的拼起来

思路:很明显就能想到,除了最大的一块外,别的都是分割操作w-1次,拼接操作w次,因此就可以直接写出来了

#include<bits/stdc++.h>
using namespace std;
#define int long long
int t;
int n,k;
int a[100005];
signed main()
{
	cin>>t;
	while(t--)
	{
		int maxn=0;
        int flag=0;
		cin>>n>>k;
		int ans=0;
		for(int i=1;i<=k;i++)
		{
			cin>>a[i];
			if(a[i]>maxn)
			{
				maxn=a[i];
				flag=i;
			}
		}
		for(int i=1;i<=k;i++)
		{
			if(i==flag)
			continue;
			ans+=a[i]*2-1;
		}
		cout<<ans<<"\n";
	}
	return 0;
}

C. Gorilla and Permutation

 

题意:给你一个n,m,k,然后f函数里面是前i个数里面不小于k的值的和,因此前面就从大到小倒着来就可以,然后当轮到倒数第m个后,要从前往后来,确保前面的数更小,累加值更大

#include<bits/stdc++.h>
using namespace std;
#define int long long
int t;
int n,m,k;
int a[100005];
signed main()
{
	cin>>t;
	while(t--)
	{
		cin>>n>>m>>k;
	for(int i=n;i>=m+1;i--)
	{
		a[i]=i;
	}
	for(int i=1;i<=m;i++)
	{
		a[i]=m-i+1;
	}
	for(int i=n;i>=1;i--)
	{
		cout<<a[i]<<" ";
	}
	cout<<"\n";
	}
	return 0;
}

D. Test of Love

 纯模拟的题,一开始忘了区分当前位置在水里还是在木头上,错了好几次,后面打完比赛也是想到这个问题了,后面才改对的

pair<int,int> old,第一个数存的是当前位置的下标,第二个存的是当前在水里还是在木头上

如果木头上,我们需要判断下一个木头距离当前位置的的距离,如果小于m则直接更新old的first即可,然后如果大于m,则需要判断当前位置+m后在哪里,如果是鳄鱼,那么肯定是no

如果是水,判断水和下一个木头的位置,如果中间存在鳄鱼,那么也是不可能的,如果没有鳄鱼,则需要判断如果游泳,会不会超过k,如果总游泳没有超过k,则可以,更新old的first和second即可

#include<bits/stdc++.h>
using namespace std;
#define int long long
int t;
int n,m,k;
char s[200005];
int sum=0;
int ans=0;

void solve()
{
	sum=0;//在水中游的距离 
    cin>>n>>m>>k;
    for(int i=1;i<=n;i++)
    {
    	cin>>s[i];
	}
	if(m>n)
	{
		cout<<"YES\n";
		return;
	}
	s[n+1]='L';
	pair<int,int> old;
	old.first=0;
	old.second=0;
	for(int i=1;i<=n+1;i++)
	{
		if(s[i]=='L'&&old.second==0)//现在位置在陆地上 
		{
			if(i-old.first<=m)
			{
				old.first=i;
				old.second=0;
				continue;
			}
			else
			{
				if(s[old.first+m]=='C')
				{
					cout<<"NO\n";
					return ;
				}
				else
				{
					old.first+=m;
					old.second=1;
					i--;
				}
			}
		}
		if(s[i]=='L'&&old.second==1)
		{
			for(int j=old.first;j<i;j++)
			{
				if(s[j]=='C')
				{
					cout<<"NO\n";
					return;
				}
				sum++;
				if(sum>k)
				{
					cout<<"NO\n";
					return ;
				}
			}
			old.first=i;
			old.second=0;
		}
	}
	cout<<"YES\n";
	return ;
}


signed main()
{
    cin>>t;
    while(t--)
    {
    	solve();
    }
    return 0;
}

E. Novice's Mistake

 

题意:就是说你一个字符串乘以一个数等于a个n链接在一起,减去一个数,就相当于减去一部分,如果减的太多了,那字符串没了,直接就是0

思路:这题数据很小纯暴力就能过

首先可以说明,对于100这个数据,无论你选什么数,你都无法正确得出结果,因此为0个解,直接输出0即可

对于别的数,再分是否小于10,和大于10就行(太困了,明天再补全)

#include <bits/stdc++.h>
using namespace std;
#define int long long
int t; 
int n; 

int jie() 
{
    cin>>n; 
    if(n == 100) 
    return 3;
    vector<pair<int, int>> ans;
    if(n<10) 
	{
        for(int a = 1; a <= 10000; a++) 
		{
            for(int b = max(1LL, a - 6); b < a; b++) 
			{
                int res = n * a - b;
                bool flag = true;
                for(int i = 1; i <= a - b; i++) 
				{
                    if(res % 10 != n) flag = false;
                    res /= 10;
                }
                if(res) 
				flag = false;
                if(flag) 
				ans.emplace_back(a, b);
            }
        }
    } 
	else 
	{
        for(int a = 1; a <= 10000; a++) 
		{
            for(int b = max(1LL, a + a - 6); b < a + a; b++) 
			{
                int res = n * a - b;
                bool flag = true;
                for(int i = 1; i <= a + a - b; i++) 
				{
                    if((i + b) & 1) 
					{
                        if(res % 10 != n % 10) 
						flag = false;
                    } else 
					{
                        if(res % 10 != n / 10) 
						flag = false;
                    }
                    res /= 10;
                }
                if(res!=0) 
				flag = false;
                if(flag) 
				ans.emplace_back(a, b);
            }
        }
    }
    cout<<ans.size()<<"\n";
    for(int i = 0; i<ans.size();i++)
    {
    	cout<<ans[i].first<<" "<<ans[i].second<<'\n';
	}
	return 0;
}

signed main() {
    cin>>t;
    while(t--) 
    {
    	int d=jie();
    	if(d==3)
    	{
    		cout<<"0\n";
		}
	}
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1920207.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Pytorch(笔记8神经网络nn)

1、nn.Module torch.nn是专门为深度学习而设计的模块。torch.nn的核心数据结构是Module&#xff0c;它是一个抽象的概念&#xff0c;既可以表示神经网络中的某个层&#xff08;layer&#xff09;&#xff0c;也可以表示一个包含很多层的神经网络。在实际使用中&#xff0c;最常…

可视化学习:如何用WebGL绘制3D物体

在之前的文章中&#xff0c;我们使用WebGL绘制了很多二维的图形和图像&#xff0c;在学习2D绘图的时候&#xff0c;我们提过很多次关于GPU的高效渲染&#xff0c;但是2D图形的绘制只展示了WebGL部分的能力&#xff0c;WebGL更强大的地方在于&#xff0c;它可以绘制各种3D图形&a…

一行命令快速导出、导入Python的依赖环境(Python)

文章目录 一、pip1、导出2、导入 二、Conda&#xff08;简&#xff09;1、导出1、导入 一、pip 1、导出 在Pycharm的Terminal窗口输入如下命令&#xff0c;即可将环境导出至文件requirements.txt。 pip freeze > C:\Users\sdl\Deskto\requirements.txt也可以在DOS界面执行…

python:sympy 求解一元五次方程式

pip install sympy 或者 本人用的 anaconda 3 自带 sympy 在北大数学训练营&#xff0c;韦东奕 用卡丹公式 巧妙 求解一元五次方程式&#xff1a; \latex $x^510*x^320*x-4 0$ from sympy import *x symbols(x) expr x**5 10*x**3 20*x -4# 用卡丹公式 尝试化简 a sym…

【操作系统】进程管理——用信号量机制解决问题,以生产者-消费者问题为例(个人笔记)

学习日期&#xff1a;2024.7.10 内容摘要&#xff1a;利用信号量机制解决几个经典问题模型 目录 引言 问题模型 生产者-消费者问题&#xff08;经典&#xff09; 多生产者-多消费者问题 吸烟者问题 读者写者问题&#xff08;难点&#xff09; 哲学家进餐问题&#xff0…

如何在vue的项目中导入阿里巴巴图标库

阿里巴巴矢量图标库官网&#xff1a;iconfont-阿里巴巴矢量图标库 选择你喜欢的图标&#xff0c;添加入库 点击添加至项目&#xff0c;并新建文件夹&#xff0c;点击确定 选择font-class&#xff0c;点击生成代码 代码生成后&#xff0c;在网站上打开 全选复制到style 点击复制…

Agents 要点

一、Agents概念 人类是这个星球上最强大的 Agent。Agent是一个能感知并自主地采取行动的实体&#xff0c;这里的自主性极其关键&#xff0c;Agent要能够实现设定的目标&#xff0c;其中包括具备学习和获取知识的能力以提高自身性能。 关键点&#xff1a;感知环境、自主决策、具…

SpringBoot新手快速入门系列教程十一:基于Docker Compose部署一个最简单分部署服务项目

如果您还对于Docker或者Docker Compose不甚了解&#xff0c;可以劳烦移步到我之前的教程&#xff1a; SpringBoot新手快速入门系列教程九&#xff1a;基于docker容器&#xff0c;部署一个简单的项目 SpringBoot新手快速入门系列教程十&#xff1a;基于Docker Compose&#xf…

CSS特效:pointer-events: none;的一种特殊应用

一、需求描述 今天看到一个设计需求&#xff1a;需要在弹框中显示如下界面&#xff0c;其中有两个效果&#xff1a; 1.顶部点击项目&#xff0c;下面的内容能相应滚动定位&#xff0c;同时滚动的时候顶部项目也能相应激活显示 2.顶部右侧有一个模糊渐变效果&#xff0c;并且要…

day29--452. 用最少数量的箭引爆气球+435. 无重叠区间+763.划分字母区间

一、452. 用最少数量的箭引爆气球 题目链接&#xff1a;https://leetcode.cn/problems/minimum-number-of-arrows-to-burst-balloons/ 文章讲解&#xff1a;https://programmercarl.com/0452.%E7%94%A8%E6%9C%80%E5%B0%91%E6%95%B0%E9%87%8F%E7%9A%84%E7%AE%AD%E5%BC%95%E7%88…

ISO/OIS的七层模型②

OSI模型是一个分层的模型&#xff0c;每一个部分称为一层&#xff0c;每一层扮演固定的角色&#xff0c;互不干扰。OSI有7层&#xff0c;从上到下分别是&#xff1a; 一&#xff0c;每层功能 7.应用层&#xff08;Application layer &#xff09;&#xff1a;应用层功能&#x…

AI克隆声音,基于函数计算部署GPT-Sovits语音生成模型

阿里云的 https://developer.aliyun.com/adc/scenario/808348a321844a62b922187d89cd5077 还是 函数计算 FC (aliyun.com) 选择 语音克隆生成 GPT-SOVITS 通过访问域名就能访问 就可以上传个人的声音&#xff0c;然后进行输出 。

【第29章】MyBatis-Plus之分页插件

文章目录 前言一、支持的数据库二、配置方法三、属性介绍四、自定义 Mapper 方法中使用分页五、其他注意事项六、Page 类七、实战1. 配置类2. 分页类3. 测试 总结 前言 MyBatis-Plus 的分页插件 PaginationInnerInterceptor 提供了强大的分页功能&#xff0c;支持多种数据库&a…

SpringBoot3+Vue3开发园区管理系统

介绍 在当今快速发展的城市化进程中&#xff0c;高效、智能的园区管理成为了提升居民生活品质、优化企业运营环境的关键。为此&#xff0c;我们精心打造了全方位、一体化的园区综合管理系统&#xff0c;该系统深度融合了园区管理、楼栋管理、楼层管理、房间管理以及车位管理等…

openlayers WebGL裁剪图层,双图层拼接显示

本篇介绍一下使用openlayers WebGL裁剪图层&#xff0c;双图层拼接显示 1 需求 WebGL裁剪图层&#xff0c;双图层拼接显示 2 分析 图层prerender和postrender事件的使用 WebGL scissor方法的使用 scissor方法指定了一个裁剪区域&#xff0c;用来将绘图区域限制在其限定的盒…

深度学习中的超参管理方法:argparse模块

在深度学习方法中我们不可避免地会遇到大量超参数如&#xff08;batch_size、learning_rate等&#xff09;。不同的超参数组合可以得到不同的训练/测试结果。所以在训练和测试过程中我们需要不断调整超参数获得理想的结果&#xff08;炼丹&#xff09;&#xff0c;如果每一次去…

设备管理中的数据结构

一、有哪些数据结构属于设备管理数据结构 1. 设备控制表&#xff08;DCT&#xff09; “Device Control Table”的首字母缩写 2. 控制器控制表&#xff08;COCT&#xff09; “Controller Of Control Table”的首字母缩写。 3. 通道控制表&#xff08;CHCT&#xff09; “…

简单实现一个本地ChatGPT web服务(langchain框架)

简单实现一个本地ChatGPT 服务&#xff0c;用到langchain框架&#xff0c;fastapi,并且本地安装了ollama。 依赖安装&#xff1a; pip install langchain pip install langchain_community pip install langchain-cli # langchain v0.2 2024年5月最新版本 pip install bs4 pi…

基于swagger插件的方式推送接口文档至torna

目录 一、前言二、登录torna三、创建/选择空间四、创建/选择项目五、创建/选择应用六、获取应用的token七、服务推送7.1 引入maven依赖7.2 test下面按照如下方式新建文件 一、前言 Torna作为一款企业级文档管理系统&#xff0c;支持了很多种接口文档的推送方式。官方比较推荐的…

基于EMQX+Flask+InfluxDB+Grafana打造多协议物联网云平台:MQTT/HTTP设备接入与数据可视化流程(附代码示例)

摘要: 本文深入浅出地介绍了物联网、云平台、MQTT、HTTP、数据可视化等核心概念&#xff0c;并结合 EMQX、Flask、InfluxDB、Grafana 等主流工具&#xff0c;手把手教你搭建一个支持多协议的物联网云平台。文章结构清晰&#xff0c;图文并茂&#xff0c;代码翔实易懂&#xff0…