codeforce 894

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

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

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

相关文章

2023谷歌开发者大会直播大纲「初稿」

听人劝、吃饱饭,奉劝各位小伙伴,不要订阅该文所属专栏。 作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 跨域学习者,从事过全栈研发、产品经理等工作,现任研发部门 CTO 。荣誉:2022年度博客之星Top4、博客专家认证、全栈领域优质创作者、新星计划导师,“星荐官共赢计…

浅谈泛在电力物联网在电力设备状态在线监测中的应用

安科瑞 华楠 摘要&#xff1a;随着信息化水平的不断发展&#xff0c;泛在电力物联网的建设提上日程&#xff0c;这对提升变电站电力设备在线监测水平&#xff0c;推动智能电网发展具有重要的指导意义。对基于物联网的电力设备状态监测系统进行了研究&#xff0c;概括了泛在电力…

Python案例|Matplotlib库实现的数据分析

数据展示是数据分析和挖掘中的重要环节&#xff0c;通过图形的形式可以直观、清晰地呈现数据内在的规律。 本文所用数据采用上一篇案例实现后的数据表&#xff0c;数据存储在newbj_lianJia.csv文件中&#xff0c;具体代码如下。 import pandas as pd #导入库 import matplot…

电脑显示“Operating System not found”该怎么办?

“Operating System not found”是一种常见的电脑错误提示&#xff0c;这类错误会导致你无法成功启动Windows。那么电脑显示“Operating System not found”该怎么办呢&#xff1f; 方法1. 检查硬盘 首先&#xff0c;您可以测试硬盘是否存在问题。为此&#xff0c;您可以采取以…

【学习FreeRTOS】第19章——FreeRTOS低功耗模式Tickless

1.低功耗模式简介 很多应用场合对于功耗的要求很严格&#xff0c;比如可穿戴低功耗产品、物联网低功耗产品等一般MCU都有相应的低功耗模式&#xff0c;裸机开发时可以使用MCU的低功耗模式。FreeRTOS也提供了一个叫Tickless的低功耗模式&#xff0c;方便带FreeRTOS操作系统的应…

【局部活动轮廓】使用水平集方法实现局部活动轮廓方法研究(Matlab代码实现)

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

Spark大数据分析与实战笔记(第一章 Scala语言基础-2)

文章目录 章节概要1.2 Scala的基础语法1.2.1 声明值和变量1.2.2 数据类型1.2.3 算术和操作符重载1.2.4 控制结构语句1.2.5 方法和函数 章节概要 Spark是专为大规模数据处理而设计的快速通用的计算引擎&#xff0c;它是由Scala语言开发实现的&#xff0c;关于大数据技术&#xf…

滚珠螺杆导程对精度有影响吗?

滚珠螺杆的导程也称螺距&#xff0c;即螺杆每旋转一周螺母直线运动的距离&#xff0c;导程与直线速度有关&#xff0c;在输入转速一定的情况下&#xff0c;导程越大速度越快。正常来说&#xff0c;选择导程时&#xff0c;尽量选5和10最好。 很多人一直觉得导程会影响滚珠螺杆的…

docker使用harbor进行镜像仓库管理演示以及部分报错解决

目录 一.安装harbor和docker-compose 1.下载 2.将该文件修改为这样&#xff0c;修改好自己的hostname和port&#xff0c;后文的用户和密码可以不改也可以改&#xff0c;用于登录 3.安装 二.修改daemon.json文件和/etc/hosts文件 三.使用powershell作windows端域名映射 四…

Matlab高光谱遥感数据处理与混合像元分解实践技术

光谱和图像是人们观察世界的两种方式&#xff0c;高光谱遥感通过“图谱合一”的技术创新将两者结合起来&#xff0c;大大提高了人们对客观世界的认知能力&#xff0c;本来在宽波段遥感中不可探测的物质&#xff0c;在高光谱遥感中能被探测。以高光谱遥感为核心&#xff0c;构建…

M1 Pro 利用docker 搭建pytho2的开发环境,以vscode连接开发为例

使用 M1 Pro &#xff08;不支持python2的安装&#xff09;开发&#xff0c;需要使用 Python 2.7 的环境&#xff0c;在使用 pyenv 安装 Python 2 时遇到了各种奇怪的问题。最终&#xff0c;我决定使用 Docker 搭建开发环境&#xff0c;并使用 VS Code 连接到本地容器。以下是详…

从0开始实现一个三维绘图系统

文章目录 将图像嵌入tkinter简单的绘图系统导入数据三维绘图源代码 将图像嵌入tkinter tkinter是Python标准库中自带的GUI工具&#xff0c;使用十分方便&#xff0c;如能将matplotlib嵌入到tkinter中&#xff0c;就可以做出相对专业的数据展示系统&#xff0c;很有竞争力。 在…

【keepalived双机热备与 lvs(DR)】

目录 一、概述 1.简介 2.原理 3.作用 二、安装 1.配置文件 2.配置项 三、功能模块 1.core 2.vrrp 3.check 四、配置双机热备 1.master 2.backup 五、验证 1.ping验证 2.服务验证 六、双机热备的脑裂现象 七、keepalivedlvs&#xff08;DR&#xff09; 1.作…

Linux学习之Ubuntu 20.04在github下载源码安装Openresty 1.19.3.1

参考的博文&#xff1a;《在 Ubuntu 上使用源码安装 OpenResty》 《OpenResty 安装安装详解-Ubuntu》 《Linux学习之CentOS 7源码安装openresty》 https://openresty.org/en/download.html是官网下载网址&#xff0c;页面往下拉有下载的链接。 https://github.com/openresty…

CSS实现内凹圆角,从而实现圆角边框

1、代码 <!DOCTYPE html> <html><head><style>.uu {position: relative;width: 400px;height: 300px;}img {width: 100%;height: 100%;z-index: 1;}.box_right_top {background-image: radial-gradient(circle at left bottom, transparent 50px, whi…

论文阅读_模型结构_LoRA

name_en: LoRA: Low-Rank Adaptation of Large Language Models name_ch: LORA&#xff1a;大语言模型的低阶自适应 paper_addr: http://arxiv.org/abs/2106.09685 date_read: 2023-08-17 date_publish: 2021-10-16 tags: [‘深度学习’,‘大模型’] author: Edward J. Hu cita…

每天一道leetcode:542. 01 矩阵(图论中等广度优先遍历)

今日份题目&#xff1a; 给定一个由 0 和 1 组成的矩阵 mat &#xff0c;请输出一个大小相同的矩阵&#xff0c;其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 示例1 输入&#xff1a;mat [[0,0,0],[0,1,0],[0,0,0]] 输出&#xff…

MATLAB图论合集(二)计算最小生成树

今天来介绍第二部分&#xff0c;图论中非常重要的知识点——最小生成树。作为数据结构的理论知识&#xff0c;Prim算法和克鲁斯卡尔算法的思想此处博主不详细介绍&#xff0c;建议在阅读本帖前熟练掌握。 对于无向带权图&#xff0c;在MATLAB中可以直接以邻接矩阵的方式创建出来…

直播小程序源码有用的协议知识:MQTT协议

MQTT协议分析&#xff1a; MQTT协议中文全称为消息队列遥测传输协议&#xff0c;是一种实时通信协议&#xff0c;适用于物联网场景中。MQTT协议被应用到直播小程序源码平台中&#xff0c;确保了直播小程序源码平台音视频流的传输高效、低延迟&#xff0c;为直播小程序源码平台…

打家劫舍00

题目链接 打家劫舍 题目描述 注意点 如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警0 < nums[i] < 400 解答思路 最初想的是使用深度优先遍历&#xff0c;到达任意一个位置时&#xff0c;小偷想要偷窃最高金额&#xff0c;一定要选择后面第2个房…