Atcoder Beginner Contest 300

2023-11-06

A - N-choice question

AC代码: 

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N = 1010;
int n;
int a[N];
int main()
{
    cin >> n;
    int a, b;
    cin >> a >> b;
    for (int i = 1; i <= n; i++) {
        int c;
        cin >> c;
        if (a + b == c) {
            cout << i << endl;
            break;
        }
    }
    return 0;
}

B - Same Map in the RPG World

两个地图,每个地图都是由h个字符串组成,每个字符串w个字符

共两种操作:

垂直偏移指的是对于所有行,每一行都往上移动一行,最上面一行移到最下面

水平偏移指的是对于所有列,每一列都往左移动一列,最左边一列移到最右边

问可不可以通过s次垂直偏移和t次水平偏移使得两个地图完全相同

数据比较小,感觉这题需要将所有情况枚举出来,可以用dfs枚举出所有情况,同时判断是否可行,试了一会发现不太会用dfs,那直接就模拟,暴力枚举吧

那么如何实现垂直和水平偏移呢?垂直偏移容易实现,不过就是字符串的上下移动,但是水平偏移的话估计得每一行每个字符都得移动,全部移动完之后又得判断字符串是否相等,感觉太麻烦

于是,我去看Virtual standings,看到了一个很好的代码

该代码并没有实现真正意义上的偏移,只不过直接将b的每一个字符和偏移后的a的每一个字符比较

枚举s次垂直偏移和t次水平偏移,然后看是否两个地图相等

AC代码: 

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N = 50;
char a[N][N], b[N][N];
int h, w;
int main()
{
    cin >> h >> w;
    for (int i = 0; i < h; i++) cin >> a[i];
    for (int i = 0; i < h; i++) cin >> b[i];
    for (int s = 0; s < h; s++) {
        for (int t = 0; t < w; t++) {
            bool flag = true;
            for (int i = 0; i < h; i++) {
                for (int j = 0; j < w; j++) {
                    flag &= (b[i][j] == a[(i - s + h) % h][(j - t + w) % w]);
                }
            }
            if (flag) {
                puts("Yes");
                return 0;
            }
        }
    }
    puts("No");
    return 0;
}

C - Cross

这题题目都看不懂呜呜呜,参考阿史大杯茶

大致题意是找由#组成的X型图形,从中心往外扩展,分别输出往外扩展1层,2层一直到n层的X型图形的个数(其中n=min(h,w))

数据比较小,所以可以枚举每一个#,来判断以它为中心的X型图形往外拓展了几层

AC代码:

#include<iostream>
#include<algorithm>
#include<cstring>
#include<map>
using namespace std;
const int N=110;
int h,w;
char s[N][N];
map<int,int>mp;
int main()
{
	cin>>h>>w;
	for(int i=0;i<h;i++){
		for(int j=0;j<w;j++){
			cin>>s[i][j];
		}
	}
	for(int i=1;i<h-1;i++){
		for(int j=1;j<w-1;j++){
			int cnt=0;
			while(i-cnt>=0&&i+cnt<h&&j-cnt>=0&&j+cnt<w&&s[i-cnt][j-cnt]=='#'&&s[i-cnt][j+cnt]=='#'&&s[i+cnt][j-cnt]=='#'&&s[i+cnt][j-cnt]=='#') 
             cnt++;
             cnt--;
            mp[cnt]++;
		}
	
	}
	int n=min(h,w);
	for(int i=1;i<=n;i++) cout<<mp[i]<<" ";
 	return 0;
}

D - AABCC

看到题目想到质数筛,把质数从小到大依次存到数组中,需要筛到sqrt(1e12/2/2/3)==3e5

然后从中选三个数,一个最小的数用2次,一个最大的数用2次,中间的数用1次

就从小到大枚举三个数,注意中间可以剪枝,减小时间复杂度

参考houthe

AC代码:

#include<iostream>
#include<algorithm>
#include<cstring>
#define int long long 
using namespace std;
const int N = 3e5 + 10;
int prime[N];
int cnt;
int n;
bool st[N];
//欧拉筛
void get_prime() {
    for (int i = 2; i <= N; i++) {
        if (!st[i]) prime[cnt++] = i;
        for (int j = 0; prime[j] <=  N/ i; j++) {
            st[prime[j] * i] = true;
            if (i % prime[j] == 0) break;
        }
    }
}
signed main()
{
    cin >> n; 
    get_prime();
    int res = 0;
    for (int i = 0; i < cnt; i++) {
        if (prime[i] * prime[i] > n) break;
        for (int j = i + 1; j < cnt; j++) {
            if (prime[i] * prime[i] * prime[j] > n) break;
            for (int k = j + 1; k < cnt; k++) {
                int x = prime[i] * prime[i] * prime[j] * prime[k];
                if (x > n) break;
                x *= prime[k];
                if (x <= n) res++;
                else break;
            }
        }
    }
    cout << res << endl;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Atcoder Beginner Contest 300 的相关文章

  • 向进度条添加百分比文本 C#

    我有一个方法可以显示进程栏何时正在执行以及何时成功完成 我工作得很好 但我想添加一个百分比 如果完成 则显示 100 如果卡在某个地方 则显示更少 我在网上做了一些研究 但我无法适应我正在寻找的解决方案 这是我的代码 private voi
  • 如何让 Swagger 插件在自托管服务堆栈中工作

    我已经用 github 上提供的示例重新提出了这个问题 并为任何想要自己运行代码的人提供了一个下拉框下载链接 Swagger 无法在自托管 ServiceStack 服务上工作 https stackoverflow com questio
  • 计算 Richtextbox 中所有单词的最有效方法是什么?

    我正在编写一个文本编辑器 需要提供实时字数统计 现在我正在使用这个扩展方法 public static int WordCount this string s s s TrimEnd if String IsNullOrEmpty s re
  • 复制 std::function 的成本有多高?

    While std function是可移动的 但在某些情况下不可能或不方便 复制它会受到重大处罚吗 它是否可能取决于捕获变量的大小 如果它是使用 lambda 表达式创建的 它依赖于实现吗 std function通常被实现为值语义 小缓
  • 在 LINQ 中按 Id 连接多表和分组

    我想按categoryId显示列表产品的名称组 这是我的代码 我想要我的视图显示结果 Desktop PC HP Red PC Dell Yellow PC Asus Red SmartPhone Lumia 720 Blue 我的组模型
  • 错误:表达式不产生值

    我尝试将以下 C 代码转换为 VB NET 但在编译代码时出现 表达式不产生值 错误 C Code return Fluently Configure Mappings m gt m FluentMappings AddFromAssemb
  • 在 C 中匹配二进制模式

    我目前正在开发一个 C 程序 需要解析一些定制的数据结构 幸运的是我知道它们是如何构造的 但是我不确定如何在 C 中实现我的解析器 每个结构的长度都是 32 位 并且每个结构都可以通过其二进制签名来识别 举个例子 有两个我感兴趣的特定结构
  • 如何区分用户点击链接和页面自动重定向?

    拥有 C WebBrowser control http msdn microsoft com en us library system windows forms webbrowser aspx在我的 WinForms 应用程序中 并意识
  • 为什么 Google 测试会出现段错误?

    我是 Google Test 的新手 正在尝试提供的示例 我的问题是 当我引入失败并设置GTEST BREAK ON FAILURE 1 或使用命令行选项 GTest 将出现段错误 我正在考虑这个例子 https code google c
  • 如何使用 LINQ2SQL 连接两个不同上下文的表?

    我的应用程序中有 2 个数据上下文 不同的数据库 并且需要能够通过上下文 B 中的表的右连接来查询上下文 A 中的表 我该如何在 LINQ2SQL 中执行此操作 Why 我们正在使用 SaaS 产品来跟踪我们的时间 项目等 并希望向该产品发
  • 从 Linux 内核模块中调用用户空间函数

    我正在编写一个简单的 Linux 字符设备驱动程序 以通过 I O 端口将数据输出到硬件 我有一个执行浮点运算的函数来计算硬件的正确输出 不幸的是 这意味着我需要将此函数保留在用户空间中 因为 Linux 内核不能很好地处理浮点运算 这是设
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • 在一个平台上,对于所有数据类型,所有数据指针的大小是否相同? [复制]

    这个问题在这里已经有答案了 Are char int long 甚至long long 大小相同 在给定平台上 不能保证它们的大小相同 尽管在我有使用经验的平台上它们通常是相同的 C 2011 在线草稿 http www open std
  • 如何检测表单的任何控件的变化?

    如何检测 C 中表单的任何控件的更改 由于我在一个表单上有许多控件 并且如果表单中的任何控件值发生更改 我需要禁用按钮 我正在寻找一些内置函数 事件处理程序 属性 并且不想为此创建自定义函数 不 我不知道任何时候都会触发任何事件any控制表
  • Azure 辅助角色“请求输入之一超出范围”的内部异常。

    我在辅助角色中调用 CloudTableClient CreateTableIfNotExist 方法 但收到一个异常 其中包含 请求输入之一超出范围 的内部异常 我做了一些研究 发现这是由于将表命名为非法表名引起的 但是 我尝试为我的表命
  • CMake 无法确定目标的链接器语言

    首先 我查看了this https stackoverflow com questions 11801186 cmake unable to determine linker language with c发帖并找不到解决我的问题的方法 我
  • “接口”类似于 boost::bind 的语义

    我希望能够将 Java 的接口语义与 C 结合起来 起初 我用过boost signal为给定事件回调显式注册的成员函数 这非常有效 但后来我发现一些函数回调池是相关的 因此将它们抽象出来并立即注册所有实例的相关回调是有意义的 但我了解到的
  • 如何设置 log4net 每天将我的文件记录到不同的文件夹中?

    我想将每天的所有日志保存在名为 YYYYMMdd 的文件夹中 log4net 应该根据系统日期时间处理创建新文件夹 我如何设置它 我想将一天中的所有日志保存到 n 个 1MB 的文件中 我不想重写旧文件 但想真正拥有一天中的所有日志 我该如
  • Cmake 链接共享库:包含库中的头文件时“没有这样的文件或目录”

    我正在学习使用 CMake 构建库 构建库的代码结构如下 include Test hpp ITest hpp interface src Test cpp ITest cpp 在 CMakeLists txt 中 我用来构建库的句子是 f
  • System.IO.FileNotFoundException:找不到网络路径。在 Windows 7 上使用 DirectoryEntry 对象时出现异常

    我正在尝试使用 DirectoryEntry 对象连接到远程 Windows 7 计算机 这是我的代码 DirectoryEntry obDirEntry new DirectoryEntry WinNT hostName hostName

随机推荐

  • 立一个小小的flag

    距离上次写博客已经很久了 下个月也是我入职一周年了 很久没有沉下心好好写一些文章 内心还有有点不安的 准备接下来花点时间好好写点东西 把工作学习中的事情记录下来 希望对你我都有帮助 17年还是大三的时候 每天都会坚持学习写博客 沉淀自己学到
  • 基础实验篇

    导读 uORB是PX4 Pixhawk系统中非常重要且关键的模块之一 是用于无人机模块间通信的协议机制 本篇将详细介绍uORB并详细拆解uORB消息读写与自定义实验 一 基础实验篇 uORB消息读写与自定义实验 一 ect Request
  • ctfshow--web入门(web101--web115&web123&web125-web133)

    ctfshow web入门 web101 web115 web123 web125 web133 web101
  • 什么是CSRF

    目录 1 CSRF是什么 2 CSRF漏洞检测 3 防御CSRF攻击 3 1 验证 HTTP Referer 字段 3 2 在请求地址中添加 token 并验证 3 3 在 HTTP 头中自定义属性并验证 1 CSRF是什么 CSRF Cr
  • 结合高阶函数聊聊useMemo和useCallback

    使用useMemo可以实现useCallback useCallback fn deps 其实相当于 useMemo gt fn deps 所以说 使用useMemo完全可以实现useCallback useCallback functio
  • 如何用MODIS数据在TIMESAT中提取物候参数

    感觉研究植被物候的帖子好少呀 也找不到关于TIMESAT的操作教程 这里便记载我学习植被物候信息提取的学习笔记 下面是我综合了很多零零散散的信息学习到的东西 但是还是有很多看不明白的地方 比如一些参数的设置上面 希望有知道的可以让我学习一下
  • Spring Boot + Jpa(Hibernate) 架构基本配置

    1 基于springboot 1 4 0 RELEASE版本测试 2 springBoot Hibernate Druid Mysql servlet jsp 不废话 直接上代码 一 maven的pom文件
  • Git 常用指令

    Git 常用指令 bashrc 文件 用于输出git提交日志 alias git log git log pretty oneline all graph abbrev commit 用于输出当前目录所有文件及基本信息 alias ll l
  • pandas数据预处理------去除‘特征重复’的2种方法

    常见的数据重复包括 1 记录重复 一个或多个特征的某条记录的值完全相同 2 特征重复 存在一个或者多个特征名称不同 但数据完全相同的情况 去除特征重复的2种方法 1 通过相似度矩阵去重 要去除连续的特征重复 可以利用特征间的相似度将两个相似
  • permission denied while trying to connect to the Docker daemon socket 错误

    安装 docker 执行错误如下 docker ps permission denied while trying to connect to the Docker daemon socket at unix var run docker
  • 做一个统计单词数目的Atom插件

    本文是Atom 教程 制作单词计数插件的简化介绍 所有代码都来自这篇文章 如果希望参考详细的文档 请直接查看原文 这篇文章用一个简单的小例子 为我们讲解了如何编写一个Atom编辑器插件 该例子使用的是CoffeeScript 所以为了更好地
  • leetcode----JavaScript 详情题解(2)

    目录 2629 复合函数 2631 分组 2634 过滤数组中的元素 2635 转换数组中的每个元素 2637 有时间限制的 Promise 对象 2648 生成斐波那契数列 2649 嵌套数组生成器 2665 计数器 II 2666 只允
  • 可重复读输入流的问题

    为了统一签名 需要在controller之前读json输入流数据 controller的参数绑定是直接读inputStream 但一般httpServletRequest只能读一次 解决方法是 在filter中直接读一次inputStrea
  • 【7-4 h0018.金币 (20 分)】思路清晰,c++实现,分分钟解决

    7 4 h0018 金币 20 分 国王以金币支付给他忠诚的骑士 在他服役的第一天 骑士会得到一枚金币 在接下来的每两天 服务的第二和第三天 骑士会收到两枚金币 在 在接下来的三天里 第四 第五和第六天 骑士每一天都会得到三枚金币 在接下来
  • HTML中怎么设置图片的位置和大小

    其他的也不多废话了直接上代码 img src fan jpg width 800 height 800
  • python批量爬取公众号文章

    前言 本文的文字及图片来源于网络 仅供学习 交流使用 不具有任何商业用途 版权归原作者所有 如有问题请及时联系我们以作处理 作者 舴艋的舟 PS 如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资料以及群
  • js逆向:rpc远程调用

    websocket python代码 服务端 先开启这个 import asyncio import websockets connected set async def server websocket connected add web
  • Linux系统连接华为oceanstor数据存储

    Linux系统连接华为oceanstor数据存储 一 登录检查oceanstor数据存储 二 配置linux使用的数据储存 1 创建LUN 2 创建Lun组 3 创建主机 4 创建主机组 5 创建映射关系 三 Linux客户端操作 1 查看
  • 「建议收藏」Pycharm使用教程(非常详细,非常实用)

    Pycharm使用教程 1 Jetbrains家族和Pycharm版本划分 pycharm是Jetbrains家族中的一个明星产品 Jetbrains开发了许多好用的编辑器 包括Java编辑器 IntelliJ IDEA JavaScrip
  • Atcoder Beginner Contest 300

    A N choice question AC代码 include