Codeforces Round 784 (Div. 4) Kotlin

本期封面原图 画师煮タ 大福豆
最近学了下Kotlin的基础语法 想着巩固一下就开了一把div4 最后几题没时间了还是换回了C++ 要不然没法AK了
提交记录
Idea编译的时候最后必须加上一句main函数的调用,但是cf的测评机又不能加这一句,总是忘记注释掉所以ce了很多发,引以为戒喵
昨天打的 但是今天想了想还是把题解补一下吧

A - Division?

题意

输入一个分数输出他的division,可能当年cf的rated规则是这样?我只知道现在codechef是这个规则

思路

直接依照题意判断即可

语法tips

Kotlin的if和else if的用法和C基本相同,从控制台读入数据的方式和python基本相同,定义方式比python多了个var和val,相当于C语言加不加const,而且要求定义的时候必须赋值

代码

import java.util.*fun solve()
{var n = readLine()!!.toInt()if(n>=1900)println("Division 1")else if(n>=1600)println("Division 2")else if(n>=1400)println("Division 3")elseprintln("Division 4")
}fun main()
{var t = readLine()!!.toInt()while(t-- > 0){solve()}
}//main()

B - Triple

题意

读入一个数组,输出任意出现次数大于等于3的数字,没有的话就输出-1

语法tips

定义一个数组是var b = IntArray(n+1),也就是定义一个长度为n+1的数组,默认所有位置的值都是0,for循环遍历的方式类似python
println会自动加一个回车,print就不会

代码

import java.util.*fun solve()
{var n = readLine()!!.toInt()var a = readLine()!!.split(" ").map{it.toInt()}.toIntArray()//数组的定义var b = IntArray(n+1)for(i in a){b[i]++}var ans=-1;for(i in 1..n){if(b[i]>=3){ans=i;break;}}println(ans)
}fun main()
{var t = readLine()!!.toInt()while(t-- > 0){solve()}
}//main()

C - Odd/Even Increments

题意

每次操作可以对所有奇数位或所有偶数位的值加一,问能否以任意次操作使得整个数组的所有数奇偶性想通过

思路

看是不是奇数和偶数位分别奇偶性相同即可

语法tips

可以用step后面跟一个数字来控制循环的步长

代码

import java.util.*fun solve()
{var n = readLine()!!.toInt()var a = readLine()!!.split(" ").map{it.toInt()}.toIntArray()for(i in 2 until n step 2){if(a[i]%2!=a[0]%2){println("NO")return}}for(i in 3 until n step 2){if(a[i]%2!=a[1]%2){println("NO")return}}println("YES")
}fun main()
{var t = readLine()!!.toInt()while(t-- > 0){solve()}
}main()

D - Colorful Stamp

题意

原本的字符串全部都是W,每次可以将连续的两个字符变为RB或者BR,问最终有没有机会变为给定的字符串形式

思路

以W把字符串拆开成好几段,每一段都必须出现过R和B,如果一段只出现某一个字符那肯定不行

语法tips

kotlin的if里面一定要对每个判断加括号,要不然容易报错,至少我总是会莫名其妙报错

代码

import java.util.*fun solve()
{var n = readLine()!!.toInt()var s = readLine()!!var B=0var R=0for(i in 0 until n){if(s[i] == 'B'){B++}else if(s[i] == 'R'){R++}else{if(B==0 && R==0)continueif(R>0 && B>0){B=0R=0continue}break}}if(((B<=0)&&(R>0))||((R<=0)&&(B>0))){println("NO")}else{println("YES")}
}fun main()
{var t = readLine()!!.toInt()while(t-- > 0){solve()}
}//main()

F - Eating Candies

题意

两个人一个从左往右一个从右往左吃糖,要求最后吃的一样多,问两个人最多能吃多少糖

思路

双指针模拟即可

语法tips

用max和min要引用math库

代码

import java.util.*
import kotlin.math.*fun solve()
{var n = readLine()!!.toInt()var a=readLine()!!.split(' ').map{it.toInt()}var l=0var r=n-1var pre=0var back=0var ans=0while(l<=r){pre+=a[l]while(r>l && back<pre){back+=a[r]r--}if (back==pre){ans=max(ans,l+n-r)}l++}println(ans)
}fun main()
{var t = readLine()!!.toInt()while(t-- > 0){solve()}
}//main()

E - 2-Letter Strings

题意

输入n个长度为2的字符串,问一共有多少对只有某一位的字符相同

思路

遍历每一位即可

代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;void solve()
{int n;scanf("%d",&n);ll ans=0;string s;int cnt[26][26];memset(cnt,0,sizeof(cnt));for(int i=0;i<n;i++){cin>>s;int x=s[0]-'a';int y=s[1]-'a';for(int j=0;j<26;j++){if(x!=j){ans+=cnt[j][y];}if(y!=j){ans+=cnt[x][j];}}cnt[x][y]++;}printf("%lld\n",ans);
}int main()
{int T=1;scanf("%d",&T);while(T--){solve();}return 0;
}

G - Fall Down

题意

模拟石头往下掉的过程,只要下面还是空的就要一直往下掉

思路

从下往上模拟即可

代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;void solve()
{int n,m;scanf("%d%d",&n,&m);string s[n+1];for(int i=1;i<=n;i++){cin>>s[i];s[i]=" "+s[i];}printf("\n");for(int i=n;i>=1;i--){for(int j=1;j<=m;j++){if(s[i][j]=='*'){s[i][j]='.';bool flag=false;for(int k=i;k<=n;k++){if(s[k][j]=='*' or s[k][j]=='o'){s[k-1][j]='*';flag=true;break;}}if(!flag)s[n][j]='*';}}}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){printf("%c",s[i][j]);}printf("\n");}
}int main()
{int T=1;scanf("%d",&T);while(T--){solve();}return 0;
}

H - Maximal AND

题意

每次操作可以使某一个数的某一个二进制位变成1,问最后数组中所有数and值的最大值

思路

贪心,从最高位往下尽量都变成1就行

代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;void solve()
{int n,k;scanf("%d%d",&n,&k);int a[31];memset(a,0,sizeof(a));for(int i=1;i<=n;i++){int x;scanf("%d",&x);for(int j=0;j<=30;j++){if(x&(1<<j)){a[j]++;}}}int ans=0;for(int i=30;i>=0;i--){if(k>=n-a[i]){k-=n-a[i];ans|=1<<i;}}printf("%d\n",ans);
}int main()
{int T=1;scanf("%d",&T);while(T--){solve();}return 0;
}

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

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

相关文章

Leetcode Hot 100刷题记录 -Day18(反转链表)

反转链表&#xff1a; 问题描述&#xff1a; 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1]示例 2&#xff1a; 输入&#xff1a;head [1,2] 输出&a…

工作中遇到的问题总结(1)

文章目录 第一题问题描述解决思路 第二题问题描述解决思路核心大表如何优化数据迁移过程是怎么样的如何将流量从旧系统迁移到新系统上 第三题问题描述解决思路 第四题问题描述解决思路方案一&#xff1a;双写机制方案二&#xff1a;基于时间戳的分流机制方案三&#xff1a;灰度…

【资料分析】刷题日记3

第一套 √ 考点&#xff1a;基期比重差很温柔的题 普通专科女生 占比 52.5% - 1.7% 50.8% 成人本专科女生 占比 57.8% - 4.6% 53.2% 相比降低了2.4% 知比重和部分量&#xff0c;求整体在花生老师的解法中体会啥叫适当约分 0.1899 / 47.8% / 87.5% 》0.19 / &#xff08;4…

MySQL高阶1890-2020年最后一次登录

目录 题目 准备数据 分析数据 题目 编写解决方案以获取在 2020 年登录过的所有用户的本年度 最后一次 登录时间。结果集 不 包含 2020 年没有登录过的用户。 返回的结果集可以按 任意顺序 排列。 准备数据 Create table If Not Exists Logins (user_id int, time_stamp …

Ansbile-变量

文章目录 一、Ansible的常量&#xff08;内置的变量&#xff09;有哪些&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1…

Java之封装

文章目录 1.封装1.1 什么是封装1.2 访问限定符1.3 包1.3.1 什么是包1.3.2 导包1.3.3 自定义包 2. static2.1 static 修饰成员变量2.2 static 修饰成员方法2.3 static成员变量初始化 3. 代码快3.1 普通代码块3.2 实例代码块3.3 静态代码块 4. 对象的打印 1.封装 1.1 什么是封装…

力扣 713.乘积小于k的子数组

文章目录 题目介绍解法 题目介绍 解法 和209.长度最小的子数组思路大致相同。 思路&#xff1a;如果从l到r这一段的乘积是小于k的&#xff0c;那么[l,r]、[l1,r]….[r,r]这些子数组都是满足乘积小于k的&#xff0c;一共有r-l1个。 class Solution {public int minSubArrayLen…

Node.js backend for OpenAI image generation giving error code 400

题意&#xff1a;用于 OpenAI 图像生成的 Node.js 后端返回错误代码 400。 问题背景&#xff1a; I am trying to build a backend for the first time using Node.js. This is what I need: Generate image based on prompt -> Get the image and upload it to supabase s…

浅析OceanBase数据库的向量化执行引擎

本篇博客是偏数据库系统概念性的内容&#xff0c;不会深入到 OceanBase 中各个算子和表达式的在向量化中的详细设计和实现。 背景 为了提升OceanBase社区版用户解决问题的效率&#xff0c;OceanBase官方不久前推出了《OceanBase 从入门到实践》系列课程。在第七期直播课程后&a…

基于MATLAB的安全帽检测系统

课题名称 课题介绍 众所周知&#xff0c;在一些施工工地&#xff0c;必须明确佩戴安全帽。可以对生命安全起到保障作用。该课题为常见的安全帽的识别&#xff0c;主要分为红色&#xff0c;蓝色&#xff0c;黄色三类安全帽。而安全帽的主要是红色&#xff0c;蓝色&…

项目文件配置

1. 参数配置化 1.1 问题分析 1.2 问题解决 Value 注解通常用于外部配置的属性注入&#xff0c;具体用法为&#xff1a;Value("${配置文件中的key}") 2. yml配置文件 2.1 SpringBoot提供了多种属性配置方式 2.2 常见配置文件格式对比 2.3 yml 基本语法 大小写敏…

相位型SLM硬件产品面型性能提升

背景介绍 作为一种动态可编程光学元件&#xff0c;液晶空间光调制器&#xff08;LC-SLM&#xff09;在波前整形和光束控制等精密光学调控应用中发挥着非常重要的作用。典型的纯相位SLM工作原理是通过加载的电压控制在每个液晶像素处诱导相位延迟&#xff0c;实现对入射光波波前…

滚珠花键与滚珠丝杆的区别与应用

在机械工业中&#xff0c;经常使用滚珠花键这种传动元件&#xff0c;人们经常拿它与滚珠丝杆相比较&#xff0c;甚至与之混淆。事实上&#xff0c;它们是不同的&#xff0c;滚珠花键和滚珠丝杆在机械传动领域中各有其独特的作用和特点。那么&#xff0c;两者之间的区别是什么呢…

渐变色代码主题你受得了吗

分享一个vscode编辑器的渐变色主题 效果图如下 vscode扩展搜索 gradient theme安装即可。

LinuxC高级作业2

1.整理思维导图 2.做一套笔试题 一&#xff1a; 1.cd .. mkdir dir1 cd dir1 touch file1 2.cp ~/mnt/dir1/ -r * ~/home/dir2/ 3.pwd 4.ls -l 5.ifconfig 6.top 10.find /usr -type f -name "*name*" 11.:wq 13.df -h 14.tar -xzvf tmp.tar.gz 15.sudo c…

Windows安装启动:stable-diffusion-webui,AIGC大模型文生图、文生视频,Python

Windows安装启动:stable-diffusion-webui&#xff0c;AIGC大模型文生图、文生视频&#xff0c;Python stable-diffusion-webui是github上的AIGC开源项目&#xff0c;地址&#xff1a; https://github.com/AUTOMATIC1111/stable-diffusion-webuihttps://github.com/AUTOMATIC1…

ThreadLocal的用法

概述 ThreadLocal提供了线程局部变量&#xff0c;用于在线程中保存数据&#xff0c;在ThreadLocal中保存的数据仅属于当前线程&#xff0c;所以ThreadLocal实例的get或set方法访问自己的独立副本&#xff0c;这些副本之间相互隔离&#xff0c;互不影响 ThreadLocal利用Thread中…

YOLOv8改进系列,YOLOv8替换主干网络为PP-HGNetV2(百度飞桨视觉团队自研,助力涨点)

摘要 PP-HGNetV2(High Performance GPU Network V2) 是百度飞桨视觉团队自研的 PP-HGNet 的下一代版本,其在 PP-HGNet 的基础上,做了进一步优化和改进,最终在 NVIDIA GPU 设备上,将 “Accuracy-Latency Balance” 做到了极致,精度大幅超过了其他同样推理速度的模型。其在…

828华为云征文|基于华为云Flexus X实例快速搭建Halo博客平台

目录 前言 一、Flexus云服务器X介绍 1.1 Flexus云服务器X实例简介 1.2 Flexus云服务器X实例特点 1.3 Flexus云服务器X实例场景需求 二、Flexus云服务器X购买 2.1 Flexus X实例购买 2.2 购买MySQL加速镜像 2.3 重置密码 2.4 登录服务器 三、Flexus X实例安装Docker 3.1 系统版本…

天宝Trimble RealWorks2024.0.2注册机 点云后处理软件 点云三维重建软件

一、功能特色 1、强大的点云数据处理平台 Trimble Realworks2024是市面上先进的点云数据处理软件&#xff0c;能够配准、可视化、浏览和直接处理市面上几乎所有主流品牌扫描仪点云数据&#xff0c;包括Leica、Riegl、ZF、Faro、Topcon等。 2、业界领先的无目标全自动配准 T…