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

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

话不多说,直接看题

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;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python编写的俄罗斯方块小游戏

文章目录 游戏页面实现代码 游戏页面 左右键移动方块位置&#xff0c;上键切换方块形态。 实现代码 import pygame import random# 初始化 Pygame pygame.init()# 定义颜色 colors [(0, 0, 0), # 黑色(255, 0, 0), # 红色(0, 255, 0), # 绿色(0, 0, 255), # 蓝色(255,…

差分约束——AcWing 362. 区间

差分约束 定义 差分约束系统是一种在计算机科学和运筹学中用于解决特定类型优化问题的工具。它主要用于处理一类线性不等式组&#xff0c;这些不等式描述了变量之间的相对大小关系&#xff0c;而不是直接的绝对值大小。差分约束系统通常用于路径寻找、调度、资源分配等问题。…

接口幂等性和解决方案

针对前端重复发起相同请求的解决方案&#xff1a; 注意&#xff1a; Redis保证了在相同key的情况下&#xff0c;只会保留一条数据&#xff0c;这就保证了多次请求只会消费一条数据。 并且需要注意的是&#xff0c;生成/获取token和携带token发送请求的过程需要是两个不同的过…

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

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

极狐Gitlab使用(2)

目录 1. Gitlab命令行修改管理员密码 2. Gitlab服务管理 3. 公司的开发代码提交处理流程 4. Gitlab 备份与恢复 数据备份 测试数据恢复 5. 邮箱配置 1. Gitlab命令行修改管理员密码 [roottty01 ~]# gitlab-rails console -e production # 启动GitLab的Rails控制…

FastAPI 学习之路(四十一)定制返回Response

接口中返回xml格式内容 from fastapi import FastAPI, Responseapp FastAPI()# ① xml app.get("/legacy") def get_legacy_data():data """<?xml version"1.0"?><shampoo><Header>Apply shampoo here.</Header&…

Day1每日编程题日记:数字统计、两个数组的交集、点击消除

前言&#xff1a;该篇用于记录自看。曾回看昨天的做题代码&#xff0c;竟然会觉得陌生&#xff0c;这竟然是我写的&#xff0c;细细读了一下&#xff0c;原来我当时是这么想的。因此我觉得记代码没有实际用处&#xff0c;重点是领悟了思想&#xff0c;这样子代码就在心中&#…

java虚拟机

JVM的运行机制 运行过程 Java源文件被编译器编译成字节码文件JVM将字节码文件编译成相应操作系统的机器码机器码调用相应操作系统的本地方法库执行相应的方法 类加载器用于将编译好的.Class文件加载到JVM中即时编译器&#xff1a;将Java字节码编译成具体的机器码 多线程 JV…

小米开放式耳机怎么样?小米、西圣、漫步者王者pk测评角逐

我们常说的开放式耳机&#xff0c;就是一种采用开放式设计的音频设备&#xff0c;能够给用户带来更加自然且广阔的音质体验&#xff0c;相比与传统的入耳式耳机&#xff0c;开放式耳机无需入耳&#xff0c;在佩戴方面更加的舒适&#xff0c;在音质方面开放式耳机的听感会更加自…

Flat Ads:金融APP海外广告投放素材的优化指南

在当今全球化的数字营销环境中,金融APP的海外营销推广已成为众多金融机构与开发者最为关注的环节之一。面对不同地域、文化及用户习惯的挑战,如何优化广告素材,以吸引目标受众的注意并促成有效转化,成为了广告主们亟待解决的问题。 作为领先的全球化营销推广平台,Flat Ads凭借…

如何保证语音芯片的稳定性能和延长使用寿命

要让语音芯片保持稳定性能&#xff0c;首先需要深入理解其工作原理和内部构造。语音芯片&#xff0c;作为现代电子设备中的核心组件之一&#xff0c;承载着声音信号的处理与输出功能。为了确保其稳定运行&#xff0c;我们需要从多个方面进行细致的考虑和操作。‌ 1、避免长期高…

【数据结构】初探数据结构面纱:栈和队列全面剖析

【数据结构】初探数据结构面纱&#xff1a;栈和队列全面剖析 &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;数据结构 文章目录 【数据结构】初探数据结构面纱&#xff1a;栈和队列全面剖析前言一.栈1.1栈的概念及结构1.2栈的结构选择1.3栈的…

数据结构(3.9_1)——特殊矩阵的压缩存储

总览 一维数组的存储结构 如果下标从1开始&#xff0c;则a[i]的存放地址LOC (i-1)*sizeof(ElemType); 二维数组的存储 二维数组也具有随机存储的特性 设起始地址为LOC 在M行N列的二维数组b[M][N]中&#xff0c;若按行优先存储&#xff0c; 则b[i][j]的存储地址的LOC (i*…

【JVM】对象的生命周期一 | 对象的创建与存储

Java | 对象的生命周期1-对象的创建与存储 文章目录 前言对象的创建过程内存空间的分配方式方式1 | 指针碰撞方式2 | 空闲列表 线程安全问题 | 避免空间冲突的方式方式1 | 同步处理&#xff08;加锁)方式2 | 本地线程分配缓存 对象的内存布局Part1 | 对象头Mark Word类型指针 P…

文献翻译与阅读《Integration Approaches for Heterogeneous Big Data: A Survey》

CYBERNETICS AND INFORMATION TECHNOLOGIES’24 论文原文下载地址&#xff1a;原文下载 目录 1 引言 2 大数据概述 3 大数据的异构性 4 讨论整合方法 4.1 大数据仓库&#xff08;BDW&#xff09; 4.2 大数据联盟&#xff08;BDF&#xff09; 5 DW 和 DF 方法的比较、分…

智充科技营收增速放缓:经营成本飙升,应收账款大幅增长

《港湾商业观察》黄懿 6月10日&#xff0c; XCHG Limited 智能充电有限公司(下称&#xff1a;智充科技)在美国证监会(SEC)更新招股书&#xff0c;拟在美国纳斯达克上市&#xff0c;其股票代码为“XCH”。北京智充科技有限公司为其国内运营主体&#xff08;下称“北京智充科技”…

IC后端设计中的shrink系数设置方法

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 在一些成熟的工艺节点通过shrink的方式(光照过程中缩小特征尺寸比例)得到了半节点,比如40nm从45nm shrink得到,28nm从32nm shrink得到,由于半节点的性能更优异,成本又低,漏电等不利因素也可以…

C++学习

一、注释 /*多行 。。。 。。。 注释*/ //单行注释 #include <iostream> using namespace std; int main() {cout << "hellow" << endl;system("pause");return 0; }二、变量定义 #include <iostream> using namespace std; int…

YOLOv8改进 | 注意力机制| 利用并行子网络构建深度较浅但性能卓越的网络【全网独家】

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录 &#xff1a;《YOLOv8改进有效…

[PM]原型与交互设计

原型分类 1.草图原型 手绘图稿, 规划的早期,整理思路会使用 2.低保真原型 简单交互, 无需配色, 黑白灰为主, 产品规划和评审阶段使用 标准化的低保真原型是高保真原型的基础 3.高保真原型 复杂交互, 一般用于公开演示, 产品先产出低保真原型, 设计师根据原型产出设计稿 低保…