Codeforces Round 991 (Div. 3)题解

先随随便便写一点东西吧,毕竟只是一场div3

A. Line Breaks

思路:一道很简单的模拟题吧,就是遍历一遍,当大于x的时候就break,然后前面那个就是找到的前x个字的总长度不超过m

#include<bits/stdc++.h>
using namespace std;
#define int long long
int t;
int n,m;
int a[200005];
string s[200005];
void solve()
{cin>>n>>m;int cnt=0;for(int i=1;i<=n;i++){cin>>s[i];}for(int i=1;i<=n;i++){if(m>=s[i].size()){m-=s[i].size();cnt++;}else{break;}}cout<<cnt<<"\n";
}signed main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);cin>>t;while(t--)solve();return 0;
}

 B. Transfusion

思路:一眼分奇偶,直接去判断整个奇偶数位的和能否被整数,以及两者整除的值是否相等,如果相等就是YES,否则就是NO

#include<bits/stdc++.h>
using namespace std;
#define int long long
int t;
int n,k;
int a[200005];void solve()
{cin>>n;int sum=0;int sum1=0;int sum2=0;for(int i=1;i<=n;i++){cin>>a[i];sum+=a[i];if(i%2==1)sum1+=a[i];elsesum2+=a[i];}if(sum%n==0&&sum1/((n+1)/2)==sum2/(n/2)){cout<<"YES\n";}else{cout<<"NO\n";}
}signed main()
{
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);cin>>t;while(t--)solve();return 0;
}

 C. Uninteresting Number

思路:首先我们发现题目上有一个重要的信息, 平方后还是一位数,那就说明,只有2或3的平方才能改变结果。能够被9整除的数都有一个特征,各位数之和加起来是9的倍数,因此我们可以先统计2和3的数量,然后对其2每次平方改变2,3每次平方改变6,那么我们完全可以统计其改变量取模9的可能性,然后对其暴力双循环,找到是否能够满足累加之前的余数能够整除9

#include<bits/stdc++.h>  
using namespace std;  
#define int long long  int t;  
int n, k;  
int a[200005];
string s;  void solve() {  cin >> s;  int sum = 0;  int cnt2 = 0, cnt3 = 0; for (char c : s) {  sum += c - '0';  if (c == '2') cnt2++;  if (c == '3') cnt3++;  }  if (sum % 9 == 0) {  cout << "YES\n";  return;  }  int mod = sum % 9;  vector<int> v3, v2;  int flag = 0;  v2.push_back(0);v3.push_back(0);for (int i = 1; i <= cnt3; i++) {  flag += 6;  flag %= 9;  v3.push_back(flag);  }  flag = 0; for (int i = 1; i <= cnt2; i++) {  flag += 2;  flag %= 9;  v2.push_back(flag);  }  for (auto i : v2) {  for (auto j : v3) {  if ((i + j)%9 == 9 - mod) {  cout << "YES\n";  return;  }  }  }  cout << "NO\n";  
}  signed main() {  ios::sync_with_stdio(0);   cin.tie(0);   cout.tie(0);  cin >> t; while (t--) solve();  return 0;  
}

D. Digital string maximization

思路:这题需要从题目中推出一个重要的信息,我们每个位置的第一位,最多从其往后后九位决定,因此其实也就是模拟一遍即可时间复杂度为O(n)

我们往后走九位找到最大的那个,然后交换即可

#include<bits/stdc++.h>
using namespace std;void solve()
{string s;cin>>s;int pos=0;int flag=0;int n=s.size();for(int i=0;i<n;i++){flag=s[i]-'0';pos=i;for(int j=i+1;j<=min(n-1,i+9);j++){if(s[j]-'0'-(j-i)>flag){flag=s[j]-'0'-(j-i);pos=j;}}char tmp=flag+'0';for(int j=pos;j>=i+1;j--){swap(s[j],s[j-1]);}s[i]=tmp;}cout<<s<<"\n";
}signed main()
{int t;cin>>t;while(t--)solve();return 0;
}

 E. Three Strings

思路:一个很简单的动态规划,我们用一个dp[i][j]表示表示a字符串用i个,j字符串用j个组成c的最大值,然后我们的dp数组也很简单

当我们的a[i+1]=c[i+j+1]的时候

dp[i+1][j]=max(dp[i+1][j],dp[i][j]+1)

同理b[j+1]=c[i+j+1]的时候

dp[i][j+1]=max(dp[i][j+1],dp[i][j]+1)

#include<bits/stdc++.h>
using namespace std;
#define int long long
int t;
string a,b,c;
int f[1005][1005];
void solve()
{memset(f,0,sizeof(f));cin>>a>>b>>c;int lena=a.size();int lenb=b.size();int lenc=c.size();a=' '+a;b=' '+b;c=' '+c;for(int i=0;i<=lena;i++){for(int j=0;j<=lenb;j++){f[i+1][j]=max(f[i+1][j],f[i][j]);f[i][j+1]=max(f[i][j+1],f[i][j]);if(a[i+1]==c[i+j+1]){f[i+1][j]=max(f[i+1][j],f[i][j]+1);}if(b[j+1]==c[i+j+1]){f[i][j+1]=max(f[i][j+1],f[i][j]+1);}}}cout<<lenc-f[lena][lenb]<<"\n";
}signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>t;while(t--)solve();return 0;
}

 F. Maximum modulo equality

思路:一个区间内取模m等于同一个数,那这个区间内的数是一个等差数列,我们只要找到这个区间内的最大公因数即可。

耶?区间内的最大公因数?我记得你是不可变的静态数组对吧?RMQ问题,直接秒了

ST表启动

#include<bits/stdc++.h>
using namespace std;
#define int long long
int t;
int n,q;
int a[200005];
int f[200005][20];
int l,r;
int gcd(int a,int b)
{if(b==0)return a;return gcd(b,a%b);
}
void solve()
{cin>>n>>q;for(int i=1;i<=n;i++){cin>>a[i];}for(int i=1;i<n;i++){f[i][0]=abs(a[i+1]-a[i]);}for(int j=1;j<20;j++){for(int i=1;i+(1<<j)-1<=n-1;i++){f[i][j]=gcd(f[i][j-1],f[i+(1<<(j-1))][j-1]);}} for(int i=1;i<=q;i++){cin>>l>>r;if(l==r){cout<<"0 ";}else{r--;int k=log2(r-l+1);cout<<gcd(f[l][k],f[r-(1<<k)+1][k])<<" ";}}cout<<"\n";
}
signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>t;while(t--)solve();return 0;
}

 

 

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

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

相关文章

掌握谈判技巧,达成双赢协议

在当今竞争激烈且合作频繁的社会环境中&#xff0c;谈判成为了我们解决分歧、谋求共同发展的重要手段。无论是商业合作、职场交流&#xff0c;还是国际事务协商&#xff0c;掌握谈判技巧以达成双赢协议都具有极其关键的意义。它不仅能够让各方在利益分配上找到平衡点&#xff0…

基于Matlab特征提取与浅层神经网络的数字图像处理乳腺癌检测系统(GUI界面+训练代码+数据集)

本研究提出了一种结合数字图像处理技术、特征提取与浅层神经网络的创新癌症检测系统&#xff0c;旨在为医学图像的分析和早期癌症检测提供有效支持。系统主要处理癌症与正常组织的医学图像&#xff0c;通过灰度共生矩阵&#xff08;GLCM&#xff09;等方法&#xff0c;从图像中…

Backblaze 2024 Q3硬盘故障质量报告解读

作为一家在2021年在美国纳斯达克上市的云端备份公司&#xff0c;Backblaze一直保持着对外定期发布HDD和SSD的故障率稳定性质量报告&#xff0c;给大家提供了一份真实应用场景下的稳定性分析参考数据&#xff1a; 以往报告解读系列参考&#xff1a; Backblaze发布2024 Q2硬盘故障…

河工oj第七周补题题解2024

A.GO LecturesⅠ—— Victory GO LecturesⅠ—— Victory - 问题 - 软件学院OJ 代码 统计 #include<bits/stdc.h> using namespace std;double b, w;int main() {for(int i 1; i < 19; i ) {for(int j 1; j < 19; j ) {char ch; cin >> ch;if(ch B) b …

[ABC234A] Weird Function

解题思路 这是一道模拟题…… 设置一个函数 &#xff0c;返回值为 。 最后答案就是 。 代码 记得开 long long ! #include<bits/stdc.h> using namespace std;long long t; long long f(long long x) {return x*xx*23; }int main() {cin>>t;cout<<f(f(f…

蓝牙键鼠无法被电脑识别

起因是我的键鼠是三模的&#xff0c;但是我蓝牙模式我只用过几次&#xff0c;基本一直使用的是有线模式&#xff0c;最近突然要用无线连接&#xff0c;如果使用收发器就显得过于繁琐&#xff0c;还占用usb口&#xff0c;因此想用蓝牙连&#xff0c;但是由于 win10更新了英特尔…

【C#设计模式(18)——中介者模式(Mediator Pattern)】

前言 中介者模式&#xff1a;是两者之间通过第三者来帮助传话。 代码 //抽象接收者public abstract class Receiver{protected Mediator mediator;protected Receiver(Mediator mediator){this.mediator mediator;}public abstract void SendMessage(string message);public a…

动态计算加载图片

学习啦 别名路径&#xff1a;①npm install path --save-dev②配置 // vite.config,js import { defineConfig } from vite import vue from vitejs/plugin-vueimport { viteStaticCopy } from vite-plugin-static-copy import path from path export default defineConfig({re…

Java HashMap用法详解

文章目录 一、定义二、核心方法三、实例演示3.1、方法示例3.2、get()方法注意点&#xff01; 一、定义 Java 的 HashMap 是 Java 集合框架中的一个非常重要的类&#xff0c;它实现了 Map 接口。HashMap基于哈希表的数据结构&#xff0c;允许使用键-值对存储数据。这种存储方式使…

淘宝直播间智能化升级:基于LLM的学习与分析

自营直播应用技术团队负责的业务中&#xff0c;淘宝买菜的直播业务起步较晚&#xff0c;业务发展压力较大&#xff0c;业务上也就有了期望能够对一些二方的标杆直播间进行学习&#xff0c;并将其优点应用到自己直播间的需求。 最初 - 人海战术&#xff0c;学习PK 业务侧最直接的…

有的开发者用Apache-2.0开源协议,但是不允许商用?合理吗

Apache 2.0开源协议是设计用来允许商业使用的。该协议明确授予了使用者在遵守许可条款的情况下&#xff0c;对软件进行复制、修改、分发以及商业使用的权利。这包括但不限于&#xff1a; 1. 永久、全球性的版权许可&#xff1a;允许复制、准备衍生作品、公开展示、公开演出、从…

java学习 -----项目(1)

项目 写在前面的话&#xff1a;耳机没电&#xff0c;先来写写今早的感受。说实话&#xff0c;我并不喜欢我们的职业规划老师&#xff0c;满嘴荒唐言&#xff0c;被社会那所大缸浸染了一身社会气。课快结束时&#xff0c;老师问还有谁的视频没做&#xff0c;我把手举了起来。&a…

某j vue3 ts 随笔

因为ts组件封装的缘故&#xff0c;使用某个组件就必须按照这个组件的规则使用&#xff0c;老是忘记&#xff0c;这里就记一下吧 1.ApiSelect 组件 {label: 角色,field: selectedroles,component: ApiSelect,componentProps: {mode: multiple,api: getAllRolesListNoByTenant,la…

红旗Asianux8.1+高斯GaussDB6.0安装手册

一、简介 服务器系统&#xff1a;红旗Asianux8.1&#xff08;需联网&#xff09;高斯GaussDB6.0&#xff1a;openGauss_6.0.0 极简版 二、安装准备 关闭防火墙 systemctl stop firewalld systemctl disable firewalld###查看状态 systemctl status firewalld 上传安装包 创建组…

如何实现Docker容器自动更新?从此无需再手动更新!(如何实现docker容器的自动更新、docker容器如何实现定时更新)

以下是经过优化后的完整文章内容: 文章目录 📖 介绍 📖🏡 演示环境 🏡📒 Docker 容器自动更新的需求 📒📝 解决方案概述📝 Docker 容器自动更新📝 Docker 容器定期更新📝 实现指定容器更新或排除更新⚓️ 相关链接 ⚓️📖 介绍 📖 随着容器化技术的普…

python异常、模块和包

文章目录 异常异常简介异常处理捕获所有异常捕获指定异常捕获多个指定异常 异常else、finally异常的传递 模块模块导入自定义模块 包自定义python包安装第三方python包 综合案例 异常 异常简介 异常就是程序运行过程中出现了错误 f open(RLlearn_2.txt, "r", enc…

Python内存泄漏 —— 宏观篇

Python内存泄漏 —— 宏观篇 应该弄清楚哪些问题 内存情况如何&#xff0c;是否一直增长&#xff1f;哪些是异常对象&#xff1f;这类对象占总内存多大比例&#xff1f;异常对象为何泄漏&#xff1f;如何使其正常释放&#xff1f;如何确定异常对象正常释放了&#xff1f;如何…

Chromium CDP 开发(五):注册自己的指令(中)

引言 在前一篇文章中&#xff0c;我们已经了解了 PDL&#xff08;Protocol Description Language&#xff09;的基本功能以及如何在其中声明 CDP&#xff08;Chrome DevTools Protocol&#xff09;指令和事件的具体内容。接下来&#xff0c;我们将深入探讨如何在实际开发中进行…

回溯算法解决全排列问题

1. 问题描述 定义&#xff1a;给定一个不含重复数字的数组 nums &#xff0c;返回其所有可能的全排列 。 示例&#xff1a; 输入数组 [1, 2, 3] 输出结果应该为&#xff1a; leetcode 地址 2. 代码实现 package com.ztq.algorithm.BackTrack;import java.util.List; impo…

金融行业 IT 实践|某信托公司:从虚拟化到容器平台的 VMware 替代与双活建设实践

随着“VMware 替代” 在金融行业的快速推进&#xff0c;不少金融用户的替代进程已逐渐从存储、虚拟化过渡到容器平台层面&#xff0c;实现更为全面的 VMware 国产化替代与架构升级。其中&#xff0c;某信托用户在使用 SmartX 超融合&#xff08;采用 VMware 虚拟化和 Tanzu 容器…