CSP俄罗斯方块(简单易懂)

开始将题目理解成了,开始的列应该是从输入图案的最左端开始计算,将前面所有的空列都删掉,代码如下:


#include<bits/stdc++.h>
using namespace std;
const int N = 1e4+10;
const int M = 1e5+10;
int a[20][20];
int b[5][5];

int main(){
    for(int i = 0 ; i < 15 ; i++){
        for(int j = 0 ; j < 10 ; j++){
            cin >> a[i][j];
        }
    }
    for(int i = 0 ; i < 4 ; i++){
        for(int j = 0 ; j < 4 ; j++){
            cin >> b[i][j];
        }
    }
    int k;
    cin >> k;
    int flag = 0;
    int res = 0;
    for(int i = 0 ; i < 4 ; i++){
        for(int j = 0 ; j < 4 ; j++){
            if(b[j][i] == 1){
                flag = 1;
                res = i;
                break;
            }
        }
        if(flag == 1){
            break;
        }
    }
    vector<vector<int>> c(4,vector<int>(2,0));
    int num = 0;
    for(int i = 0 ; i < 4 ; i++){
        for(int j = res ; j < 4 ; j++){
            if(b[i][j] == 1){
                c[num][0] = i;
                c[num][1] = k + j - res;
                num++;
            }
        }
    }
    int xd = 0;
    for(int i = 1 ; i < 18 ; i++){
        if(c[0][0]+i < 15 && c[1][0]+i < 15 && c[2][0]+i < 15 && c[3][0]+i < 15 && a[c[0][0]+i][c[0][1]] == 0 && a[c[1][0]+i][c[1][1]] == 0 && a[c[2][0]+i][c[2][1]] == 0 && a[c[3][0]+i][c[3][1]] == 0){
            xd++;
        }
        else{
            break;
        }
    }
    for(int i = 0 ; i < 4 ; i++){
        a[c[i][0]+xd][c[i][1]] = 1;
    }
    for(int i = 0 ; i < 15 ; i++){
        for(int j = 0 ; j < 10 ; j++){
            cout << a[i][j] << " ";
        }
        cout << endl;
    }
    return 0;
}

结果只拿到了60分。

仔细看题,题目里写的是,只删除最左端的列,也就是说不管图案在哪里,都只删除最左端的一列。比如说输入的图案是
0 0 0 1
0 0 0 1
0 0 0 1
0 0 0 1
,也只删除最左列,即从第k列开始放的图案是
0 0 1
0 0 1
0 0 1
0 0 1,
得到的图案是这样的:
在这里插入图片描述

逆天了,我只能说CSP的出题人完全不靠谱

100分代码:

#include<bits/stdc++.h>
using namespace std;
const int N = 1e4+10;
const int M = 1e5+10;
int a[20][20];
int b[5][5];

int main(){
    for(int i = 0 ; i < 15 ; i++){
        for(int j = 0 ; j < 10 ; j++){
            cin >> a[i][j];
        }
    }
    int num = 0;
    vector<vector<int>> c(4,vector<int>(2,0));
    for(int i = 0 ; i < 4 ; i++){
        for(int j = 0 ; j < 4 ; j++){
            cin >> b[i][j];
            if(b[i][j] == 1){
                c[num][0] = i;
                c[num][1] = j;
                num++;
            }
        }
    }
    int k;
    cin >> k;
    for(int i = 0 ; i < 4 ; i++){
        c[i][1] += k - 1;
    }
    int xd = 0;
    for(int i = 1 ; i < 18 ; i++){
        if(c[0][0]+i < 15 && c[1][0]+i < 15 && c[2][0]+i < 15 && c[3][0]+i < 15 && a[c[0][0]+i][c[0][1]] == 0 && a[c[1][0]+i][c[1][1]] == 0 && a[c[2][0]+i][c[2][1]] == 0 && a[c[3][0]+i][c[3][1]] == 0){
            xd++;
        }
        else{
            break;
        }
    }
    for(int i = 0 ; i < 4 ; i++){
        a[c[i][0]+xd][c[i][1]] = 1;
    }
    for(int i = 0 ; i < 15 ; i++){
        for(int j = 0 ; j < 10 ; j++){
            cout << a[i][j] << " ";
        }
        cout << endl;
    }
    return 0;
}

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

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

相关文章

docker同步bilibili收藏视频到群晖,可配合emby

作者是amtoaer&#xff0c;在github项目地址&#xff1a;https://github.com/amtoaer/bili-sync 有两个版本&#xff0c;1.0和2.0&#xff0c;我使用的是2.0 PS2&#xff1a;2.0和1.0版本目录结构不兼容&#xff0c;所以部署后会全量重新下载视频。 演示&#xff1a; 依然是…

啊哈!算法-第2章-栈、队列、链表

啊哈!算法-第2章-栈、队列、链表 第1节 解密qq号——队列第2节 解密回文——栈第3节 纸牌游戏——小猫钓鱼第4节 链表第5节 模拟链表 第1节 解密qq号——队列 新学期开始了&#xff0c;小哈是小哼的新同桌(小哈是个大帅哥哦~)&#xff0c;小哼向小哈询问 QQ 号&#xff0c; 小…

XXE(XML外部实体注入)

1、XXE原理 XXE&#xff08;XML外部实体注入&#xff0c;XML External Entity) &#xff0c;在应用程序解析XML输入时&#xff0c;当允许引用外部实体时&#xff0c;可构造恶意内容&#xff0c;导致读取任意文件、探测内网端口、攻击内网网站、发起DoS拒绝服务攻击、执行系统命…

DOS学习-目录与文件应用操作经典案例-more

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一.前言 二.使用 三.案例 一.前言 DOS系统的more命令是一个用于查看文本文件内容的工具。…

【教学类-58-04】黑白三角拼图04(2-10宫格,每个宫格随机1张-6张,带空格纸)

背景需求&#xff1a; 前期制作了黑白三角拼图2*2、3*3、4*4&#xff0c;确定了基本模板&#xff0c;就可以批量制作更多格子数 【教学类-58-01】黑白三角拼图01&#xff08;2*2宫格&#xff09;固定256种随机抽取10张-CSDN博客文章浏览阅读522次&#xff0c;点赞13次&#x…

通过扩展指令增强基于覆盖引导的模糊测试

本文由Bruno Oliveira于2024年4月25日发表于IncludeSec的官方网站上。作为IncludeSec的安全研究人员&#xff0c;在他们日常的安全审计和渗透测试工作中&#xff0c;有时需要为客户开发一些模糊测试工具。在安全评估方法中使用模糊测试技术&#xff0c;可以有效地在复杂的现代化…

全免费的数据恢复工具哪个好?分享2024年性价比超高的12款数据恢复软件!

当您丢失重要文件时&#xff0c;您应该可不想遇到措手不及的情况吧&#xff1f;相反&#xff0c;您需要在系统中使用一些可靠的数据恢复软件&#xff0c;但是全免费的数据恢复工具哪个好呢&#xff1f;别担心&#xff0c;本文将帮助您选择最适合您的解决方案。 如何挑选一款合适…

QT常量中有换行符

头文件添加&#xff1a; #pragma execution_character_set("utf-8")

我用LLaMA-Factory微调大模型来实现商品评论情感分析,准确率高达91.70%

大家好&#xff0c;我是程序锅。 最近在modelscope上闲逛的时候&#xff0c;在数据集板块发现有一个商品评论情感预测数据集。这个数据集源自一个比赛&#xff0c;它的目的是为了预测电商平台顾客的评论是好评还是差评。 数据示例如下所示&#xff08;其中0代表差评&#xff…

【YOLOv10训练教程】如何使用YOLOv10训练自己的数据集并且推理使用

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

【二叉树】力扣OJ题

文章目录 前言1. 翻转二叉树1.1 题目1.2 解题思路1.3 代码实现1.4 时空复杂度 2. 对称二叉树2.1 题目2.2 解题思路2.3 代码实现2.4 时空复杂度 3. 平衡二叉树3.1 题目3.2 解题思路3.3 代码实现3.4 时空复杂度 结语 前言 本篇博客主要介绍二叉树的经典 OJ 题&#xff0c;题目主…

间接平差——以水准网平差为例 (python详细过程版)

目录 一、原理概述二、案例分析三、代码实现四、结果展示本文由CSDN点云侠原创,间接平差——以水准网平差为例 (python详细过程版),爬虫自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT生成的文章。 一、原理概述 间接平差的函数模型和随机模型…

算法与数据结构汇总

刷题建议步骤 求职硬通货&#xff1a;一&#xff0c;好的学历&#xff0c;这个要下血本。本科&#xff0c;可以考研&#xff0c;读研。专科&#xff0c;可以专升本&#xff0c;再考研&#xff0c;读研&#xff0c;二&#xff0c;软考&#xff0c;一年考两次&#xff0c;有些科…

MySQL:表的约束

文章目录 0.小知识&#xff0c;数据转化1.空属性(非空约束)2.默认值&#xff08;default&#xff09;3.comment&#xff08;列描述&#xff09;4.zerofill(显示约束)5.primary key(主键约束)6.auto_increment(自增长)7.unique(唯一键)8.foreign key (外键)9.综合表结构的设计 表…

Android 版本与 API level 以及 NDK 版本对应

采用 Android studio 开发 Android app 的时候&#xff0c;需要选择支持的最低 API Level 和使用的 NDK 版本&#xff0c;对应开发 app 的最低 SDK 版本&#xff1a; 在 app 的 build.gradle 文件里&#xff0c;对应于代码如下&#xff1a; 目前各版本的占有率情况如下&#xf…

docker不删除容器更改其挂载目录

场景&#xff1a;docker搭建的jenkins通常需要配置很多开发环境&#xff0c;当要更换挂载目录&#xff0c;每次都需要删除容器重新运行&#xff0c;不在挂载目录的环境通常不会保留。 先给一个参考博客docker不删除容器&#xff0c;修改容器挂载或其他_jenkins 修改容器挂载do…

电子电器架构 - AUTOSAR软件架构Current Features in a Nutshell

电子电器架构 - AUTOSAR软件架构Current Features in a Nutshell 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的…

Gradle的settings.gradle.kts你真的理解吗?

你还在用.gradle文件吗&#xff1f;例如build.gradle、settings.gradle&#xff0c;那么你就out了。现在我们有必要了解一下kts脚本了。在Android项目中&#xff0c;默认有3个文件可以替换成kts脚本&#xff0c;即project的build.gradle、app模块的build.gradle和project的sett…

数据库(5)——DDL 表操作

表查询 先要进入到某一个数据库中才可使用这些指令。 SHOW TABLES; 可查询当前数据库中所有的表。 表创建 CREATE TABLE 表名( 字段1 类型 [COMMENT 字段1注释] ...... 字段n 类型 [COMMENT 字段n注释] )[COMMENT 表注释]; 例如&#xff0c;在student数据库里创建一张studen…

哈希表---闭散列

闭散列 当我们用哈希函数的时候&#xff0c;其中一个就是除留余数法 取这个表的长度len,按照哈希函数&#xff1a;Hash(key) key% len,将这个位置映射到表中 通过上面的除留余数法&#xff0c;会有哈希碰撞的问题&#xff0c;可以通过闭散列来解决 闭散列也叫开放定址法&am…