codeforce 894

news2024/11/15 10:51:41

A. Gift Carpet (模拟)

题意:
给出n*m的矩阵,从左到右每列最多取一个字母,问能否取出"vika"
思路:
直接模拟。

const int N=1e6+10;
char g[25][25];
void solve(){
    int n,m; cin>>n>>m;
    string s="vika";
    for(int i=0;i<n;i++){
        getchar();
        for(int j=0;j<m;j++){
            g[i][j]=getchar();
        }
    }
    int j=0;
    bool flag=true;
    for(char c:s){
        bool ok=false;
        for(;j<m;j++){
            for(int i=0;i<n;i++){
                if(g[i][j]==c){
                    ok=true;
                    break;
                }
            }
            if(ok) {
                j++;
                break;
            }
        }
        if(!ok) {
            flag=false;
            break;
        }
    }
    if(flag) printf("YES\n");
    else printf("NO\n");
}
int main(){
    int t; cin>>t;
    while(t--){
        solve();
    }
}   

B. Sequence Game (构造)

题意:
假设有一个序列a1…an, 我们要根据题目给出的序列b1…bm猜出序列a1…an。b1…bm是这样来的:

  • b1 == a1
  • 遍历a2…an,如果发现 a i − 1 < = a i {a_{i-1}<=a_{i}} ai1<=ai ,则将 a i {a_i} ai加入b序列。

比如a序列是 4 , 3 , 2 , 6 , 3 , 3 4,3,2,6,3,3 4,3,2,6,3,3,那么对应的b序列是 4 , 6 , 3 4,6,3 4,6,3。现在给出b序列,要求输出a序列。

思路:
构造出一个符合条件的序列即可。a序列如果是 4 , 6 , 6 , 3 4,6,6,3 4,6,6,3,那么就能得到 4 , 6 , 3 4,6,3 4,6,3这样的b序列。

const int N=2e5+10;
int a[N];
void solve(){
    int n; cin>>n;
    for(int i=0;i<n;i++) scanf("%d",&a[i]);
    vector<int> res;
    res.push_back(a[0]);
    for(int i=1;i<n;i++){
        if(a[i-1]>a[i]) res.push_back(a[i]);
        res.push_back(a[i]);
    }
    printf("%d\n",res.size());
    for(int i=0;i<res.size();i++){
        if(i==0) printf("%d",res[i]);
        else printf(" %d",res[i]);
    }
    printf("\n");
}
int main(){
    int t; cin>>t;
    while(t--){
        solve();
    }
}   

C. Flower City Fence (模拟)

题意
给出一个序列 a 1.. a n a1..an a1..an,那么在xy坐标轴上面可以形成一个柱状图:
在这里插入图片描述
然后题目问你,如果把它转置之后(行转成列,列变成行)是否能得到一样的柱状图。
在这里插入图片描述

思路
令转置之前的高度序列为 H 1 , H 2 . . . H n H_{1}, H_2 ... H_n H1,H2...Hn
转置之后的高度序列为 h 1 , h 2... h m h_1,h2...h_m h1,h2...hm
然后比较这两个序列是不是相同就可以了。

const int N=2e5+10;
int a[N];
void solve(){
    int n; cin>>n;
    for(int i=0;i<n;i++) scanf("%d",&a[i]);
    if(a[0]!=n){
        printf("NO\n");
        return;
    }
    vector<int> b(n);
    int p=n;
    for(int h=0;h<n;h++){
        for(;p>=0;){
            if(a[p-1]>h) break;
            else p--;
        }
        b[h]=p;
    }
    bool ok=true;
    for(int i=0;i<n;i++){
        if(a[i]!=b[i]){
            ok=false;
            break;
        }
    }
    if(ok) printf("YES\n");
    else printf("NO\n");
}
int main(){
    int t; cin>>t;
    while(t--){
        solve();
    }

D. Ice Cream Balls

题意
两个材料可以制作出一种冰淇淋。例如:
1 , 1 , 2 {1,1,2} 1,1,2为原材料,能制作出 1 , 1 {1,1} 1,1 1 , 2 {1,2} 1,2 两种不同类型的冰淇淋。
现在假设有x个材料,刚好能制作出n冰淇淋。题目给出n,求x。

思路
我们将n*(n-1)/2的序列打印出来看,能发现一些规律:

2*(2-1)/2=1
3*(3-1)/2=3
4*(4-1)/2=6
5*(5-1)/2=10
6*(6-1)/2=15
7*(7-1)/2=21
8*(8-1)/2=28
9*(9-1)/2=36
10*(10-1)/2=45
11*(11-1)/2=55

1 , 2 {1,2} 1,2可以制作出1种;
1 , 2 , 3 {1,2,3} 1,2,3可以制作出3种;
1 , 2 , 3 , 4 {1,2,3,4} 1,2,3,4可以制作出6种。
但是题目给出的n有可能不是 n ∗ ( n − 1 ) / 2 n*(n-1)/2 n(n1)/2,比如要制作5种,那么就得构造 1 , 2 , 3 , 2 , 3 1,2,3,2,3 1,2,3,2,3,那么n=5对应的x就是5。
也就是说n=5的时候,

  1. 我们先找到x=3,由于 3 ∗ ( 3 − 1 ) / 2 = 3 3*(3-1)/2=3 3(31)/2=3,还差2种
  2. 那么x=3+2=5.

关于n=5的时候怎么找到x=3,我这里用了二分,但是看别人的题解好像不用二分直接从1开始暴力找也行。

void solve(){
    ll n; cin>>n;
    ll l=1,r=1e10;
    ll ans=0;
    while(l<=r){
        ll mid=(l+r)/2;
        if(mid*(mid-1)/2 <= n){
            ans=mid;
            l=mid+1;
        } else {
            r=mid-1;
        }
    }
    ans+=(n-ans*(ans-1)/2);
    printf("%lld\n",ans);
}
int main(){
    int t; cin>>t;
    while(t--){
        solve();
    }
}   

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

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

相关文章

Vue2向Vue3过度核心技术路由

目录 1 路由介绍1.思考2.路由的介绍3.总结 2 路由的基本使用1.目标2.作用3.说明4.官网5.VueRouter的使用&#xff08;52&#xff09;6.代码示例7.两个核心步骤8.总结 3 组件的存放目录问题1.组件分类2.存放目录3.总结 4 路由的封装抽离5 Vue路由-重定向1.问题2.解决方案3.语法4…

openGauss学习笔记-51 openGauss 高级特性-列存储

文章目录 openGauss学习笔记-51 openGauss 高级特性-列存储51.1 语法格式51.2 参数说明51.3 示例 openGauss学习笔记-51 openGauss 高级特性-列存储 openGauss支持行列混合存储。行存储是指将表按行存储到硬盘分区上&#xff0c;列存储是指将表按列存储到硬盘分区上。 行、列…

最新本地大模型进展#Chinese-LLaMA-2支持16k长上下文

‍‍ Hi&#xff0c;今天为大家介绍最新的本地中文语言模型进展。 [2023/08/25] Chinese-LLaMA-2发布了新的更新&#xff1a; 长上下文模型Chinese-LLaMA-2-7B-16K和Chinese-LLaMA-2-13B-16K&#xff0c;支持16K上下文&#xff0c;并可通过NTK方法进一步扩展至24K。 这意味着在…

Lazada商品详情接口 获取Lazada商品详情数据 Lazada商品价格接

一、引言 随着电子商务的迅速发展和普及&#xff0c;电商平台之间的竞争也日趋激烈。为了提供更好的用户体验和更高效的后端管理&#xff0c;Lazada作为东南亚最大的电商平台之一&#xff0c;开发了一种商品详情接口&#xff08;Product Detail API&#xff09;。该接口允许第…

【附安装包】Vred2023安装教程

软件下载 软件&#xff1a;Vred版本&#xff1a;2023语言&#xff1a;简体中文大小&#xff1a;2.39G安装环境&#xff1a;Win11/Win10/Win8/Win7硬件要求&#xff1a;CPU2.0GHz 内存4G(或更高&#xff09;下载通道①百度网盘丨64位下载链接&#xff1a;https://pan.baidu.com…

Leetcode78. 子集

给你一个整数数组 nums &#xff0c;数组中的元素 互不相同 。返回该数组所有可能的子集&#xff08;幂集&#xff09;。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 回溯法 class Solution {public List<List<Integer>> subsets(int[] nums) {List…

记录帖子-开发过程中遇到的问题和感悟记录

记录帖子1:2023年08月25日结束开发 前端规范 1.关于计算属性 计算属性关联的变量不可以过多&#xff0c;同时要保证关联的变量在代码中的变换次数不可过多 例如这段代码的this.options内部数据变化过多&#xff0c;导致计算属性调用次数过多导致页面卡顿 2.关于自定义v-mod…

空时自适应处理用于机载雷达——机载阵列雷达信号环境(Matla代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【【萌新的STM32学习-17 中断的基本概念2】】

萌新的STM32学习-17 中断的基本概念2 STM32中断优先级的基本概念 抢占优先级&#xff1a; 高抢占优先级可以打断正在执行的低抢占优先级中断 响应优先级&#xff1a; 这个也叫子优先级 抢占优先级相同&#xff0c;响应优先级高的中断不能打断响应优先级低的中断。还有一种情况…

Linux常用命令——dhclient命令

在线Linux命令查询工具 dhclient 动态获取或释放IP地址 补充说明 dhclient命令使用动态主机配置协议动态的配置网络接口的网络参数。 语法 dhclient(选项)(参数)选项 0&#xff1a;指定dhcp客户端监听的端口号&#xff1b; -d&#xff1a;总是以前台方式运行程序&#x…

TCP拥塞控制详解 | 7. 超越TCP

网络传输问题本质上是对网络资源的共享和复用问题&#xff0c;因此拥塞控制是网络工程领域的核心问题之一&#xff0c;并且随着互联网和数据中心流量的爆炸式增长&#xff0c;相关算法和机制出现了很多创新&#xff0c;本系列是免费电子书《TCP Congestion Control: A Systems …

【附安装包】Jade 6.5​安装教程

软件下载 软件&#xff1a;Jade版本&#xff1a;6.5语言&#xff1a;英文大小&#xff1a;185.95M安装环境&#xff1a;Win11/Win10/Win8/Win7硬件要求&#xff1a;CPU2.0GHz 内存4G(或更高&#xff09;下载通道①百度网盘丨下载链接&#xff1a;https://pan.baidu.com/s/1kbD…

配置Linux内核支持make menuconfig

新环境从0配置Linux内核支持make menuconfig hudahuahudahua-virtual-machine:~/workspace/tools/linux-5.15.13$ make menuconfigCommand ‘make’ not found, but can be installed with sudo apt install make # version 4.2.1-1.2, or sudo apt install make-guile # vers…

开始MySQL之路——MySQL的DataGrip图形化界面

下载DataGrip 下载地址&#xff1a;Download DataGrip: Cross-Platform IDE for Databases & SQL 安装DataGrip 准备好一个文件夹&#xff0c;不要中文和空格 C:\Develop\DataGrip 激活DataGrip 激活码&#xff1a; VPQ9LWBJ0Z-eyJsaWNlbnNlSWQiOiJWUFE5TFdCSjBaIiwibGl…

乐高虚拟搭建软件Studio 2.0怎么导入缺少的零件库文件

Studio 2.0是目前非常流行的乐高虚拟拼搭软件&#xff0c;功能也很强大。我们在利用Studio 2.0进行虚拟拼搭的时候&#xff0c;经常会遇到软件自带的零件库不全的问题。像一些电机、线性执行器、传感器等比较稀有的零件&#xff0c;在软件自带的零件库里是没有的。 导入方法&a…

【Go 基础篇】Go语言日期与时间函数详解:时间的掌控与转化

Go语言是一种快速、简洁且高效的编程语言&#xff0c;它在处理日期与时间方面提供了丰富的标准库函数。本文将详细介绍Go语言中处理日期与时间的函数&#xff0c;涵盖常用的日期时间操作、格式化、时区转换等内容&#xff0c;并介绍time.Time结构体中的相关方法。 时间的表示与…

【ArcGIS微课1000例】0073:ArcGIS探索性回归分析案例

一、探索性回归工具简介 “探索性回归”工具会对输入的候选解释变量的所有可能组合进行评估,以便根据用户所指定的指标来查找能够最好地对因变量做出解释的 OLS 模型。 给定一组候选解释变量,找出正确指定的 OLS 模型: 用法: 工具还会生成一个可选表,该表包括所有满足…

【PACS】医学影像管理系统源码带三维重建后处理技术

PACS系统&#xff0c;意为影像归档和通信系统。它是应用在医院影像科室的系统&#xff0c;主要的任务就是把日常产生的各种医学影像&#xff08;包括核磁&#xff0c;CT&#xff0c;超声&#xff0c;各种X光机&#xff0c;各种红外仪、显微仪等设备产生的图像&#xff09;通过各…

vue中实现echarts三维散点图

需要安装 echarts 同时引入 echarts-gl 我安装的版本&#xff1a; "echarts": "^5.3.2", "echarts-gl": "^2.0.9", import Vue from "vue"; import * as echarts from "echarts"; Vue.prototype.$echarts echa…

Linux常用命令_帮助命令、用户管理命令、压缩解压命令

文章目录 1. 帮助命令1.1 帮助命令:man1.2 帮助命令:help1.3 其他帮助命令 2. 用户管理命令2.1 用户管理命令: useradd2.2 用户管理命令: passwd2.3 用户管理命令: who2.4 用户管理命令: w 3. 压缩解压命令3.1 压缩解压命令: gzip3.2 压缩解压命令: gunzip3.3 压缩解压命令: ta…