AtCoder Beginner Contest 347 (B,C,D,E)

B - Substring (atcoder.jp)

问题陈述

您将得到一个由小写英文字母组成的字符串 S 。 S 有多少不同的非空子字符串?

子字符串是一个连续子序列。例如,' xxx '是' yxxx '的子字符串,但不是' xxyxx '的子字符串。

解析:

对于数据范围不超过100,直接暴力枚举即可。

#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
// int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
// typedef unsigned long long ULL;
// typedef pair<int, int> PII;
// const double PI = acos(-1.0);
const int N=1e6+10;
string s;
set <string> k;
void solve()
{cin>>s;for (int l=1;l<=s.size();l++){for (int i=0;i<s.size();i++){k.insert(s.substr(i,l));}}cout<<k.size();
}
signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int T = 1;// cin >> T;while (T--) solve();return 0;
}

C - Ideal Holidays (atcoder.jp)

问题陈述

在AtCoder王国,一个星期由 A+B 天组成,第一天到 A 天是假日,第 (A+1) 天到 (A+B) 天是工作日。

高桥有 N 个计划,第 i个计划安排在 Di 天后。

他忘了今天是星期几。确定是否有可能将他的所有计划都安排在假日。

解析:

首先暴力是不可取的,将所有的计划对(A+B)取模,就是每个计划执行时的相对的第几天,记录这些结果并去重,排序,假设序列长度为 k。这道题就可以转换成 在 1~k 的序列中,存在以一个数为起点,使得整个区间被长度 a 覆盖。

#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
// int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
// typedef unsigned long long ULL;
// typedef pair<int, int> PII;
// const double PI = acos(-1.0);
const int N=1e5+10;
int n,a,b;
set <int> s;
vector <int> q;
void solve()
{cin>>n>>a>>b;for (int i=1;i<=n;i++) {int x;cin>>x;x--;s.insert(x%(a+b));}int m=a+b;for (auto x:s) q.push_back(x),q.push_back(x+m);sort (q.begin(),q.end());n=s.size();for (int i=0;i<n;i++){if (q[i+n-1]-q[i]<a){cout<<"Yes";return ;}}cout<<"No";
}
signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int T = 1;// cin >> T;while (T--) solve();return 0;
}

D - Popcount and XOR (atcoder.jp)

解析:

计算C在二进制中1的个数,合理地将这些 “1”,分配给 X 和 Y。不过要注意一些限制条件哦,气死我了,呜呜~~~

#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
// int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
// typedef unsigned long long ULL;
// typedef pair<int, int> PII;
// const double PI = acos(-1.0);
const int N=1e5+10;
int a,b,c;
int find(int x)
{int cnt=0;while (x){if (x&1) cnt++;x >>=1;}return cnt;
}
void solve()
{cin>>a>>b>>c;int cnt=find(c);int l;bool falg=0;for (int i=0;i<=60;i++){if (a-i+b-i==cnt&&a-i>=0&&b-i>=0){falg=1;l=i;break;}}if (!falg){cout<<-1;return ;}int a1=0,a2=0;int l1=a-l,l2=b-l;if (l+l1+l2>61||a-l<0||b-l<0)   //此时 a1 和 a2 的范围超过了2^60{cout<<-1;return ;}for (int i=0;i<=60;i++){if (c&(1LL<<i)){if (l1>0) a1 +=(1LL<<i),l1--;else if (l2>0) a2 +=(1LL<<i),l2--; }else if (l>0) a1 +=(1LL<<i),a2 +=(1LL<<i),l--;}cout<<a1<<" "<<a2;
}
signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int T = 1;// cin >> T;while (T--) solve();return 0;
}

E - Set Add Query (atcoder.jp)

解析:

考虑到暴力做法,对于每个操作,判断 x是否在集合 s 中,处理后加上集合 s 的大小,时间复杂度是 O(n^2)的,显然不可取。

通过观察可以发现,对于一个数 x ,它的贡献就是当它加入到集合 s 中,到当它离开集合 s 这段时间 s的大小的和。我们可以处理出,关于 s 的大小的前缀和,可以 O(1) 查询在这段时间内 x 的所贡献的 s的大小的和,当然我们要记录每个 x 的进入和离开的时间。

#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
// int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
// typedef unsigned long long ULL;
// typedef pair<int, int> PII;
// const double PI = acos(-1.0);
const int N=2e5+10;
int n,m;
int a[N];
set <int> k;
int s[N];
int id[N];
void solve()
{cin>>n>>m;for (int i=1;i<=m;i++){int x;cin>>x;if (k.count(x)){a[x] +=s[i-1]-s[id[x]-1];k.erase(x);}else {k.insert(x);id[x]=i;}s[i]=s[i-1]+k.size();}for (auto x:k) a[x] +=s[m]-s[id[x]-1];for (int i=1;i<=n;i++) cout<<a[i]<<" ";
}
signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int T = 1;// cin >> T;while (T--) solve();return 0;
}

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

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

相关文章

vk-unicloud 框架 H5 浏览器无法登录访问 Client platform is h5, but web was found in config

最开始出现的bug 进入云函数查看日志 Client platform is h5, but web was found in config 把这个问题扔到百度是没有答案的&#xff0c;但是找到一个类似问题 &#xff1a;Client platform is app, but app-plus was found in config. 顺藤摸瓜到uniCloud的官方文档 关于pr…

MNN介绍安装编译详解

MNN是一个高效、轻量的深度学习框架&#xff0c;它支持深度模型的推理与训练&#xff0c;尤其在端侧的推理与训练性能在业界处于领先地位。MNN已经在阿里巴巴的多个App中使用&#xff0c;覆盖多个场景&#xff0c;同时在IoT等场景下也有若干应用。它支持TensorFlow、Caffe、ONN…

python coding with ChatGPT 专题2| 全解递归算法

文章目录 递归与栈的关系如何思考递归汉诺塔 经典题目入门&#xff1a;斐波那契数列分治法&#xff1a;归并排序树的递归遍历组合问题&#xff1a;子集搜索问题&#xff1a;N皇后 拓展阶乘的迭代法斐波那契数列迭代法青蛙跳 参考文献 掌握递归是解决许多编程问题的关键&#xf…

isaacgym 渲染黑屏

问题描述&#xff1a; isaacgym安装完IsaacGym_Preview_4_Package.tar.gz之后&#xff0c;运行python joint_monkey.py没有任何内容现实&#xff0c;但是终端还是正常输出信息。 环境是ubuntu22服务器&#xff0c;python3.8&#xff0c;nvidia Driver Version: 515.65.01 CUDA…

Google HTML/CSS 风格指南

1、Background 背景 本文档定义了 HTML 和 CSS 的格式和样式规则。它旨在 改善协作、代码质量并启用支持基础设施。 它适用于使用 HTML 和 CSS 的原始工作文件&#xff0c;包括 GSS 文件。 工具可以自由地混淆、缩小和编译&#xff0c;只要通用代码 保持质量。 2、常规 2.1、…

【JavaSE】解密 继承和多态(下)

前言 紧接着上篇 解密继承和多态&#xff08;上&#xff09;~ 欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 目录 前言 protected关键字 在同一包下同一类可以访问 代码理解 在同一包下不同类可以访问 代码理解 …

HarmonyOS 应用开发之LifecycleForm接口切换LifecycleApp接口切换 LifecycleApp接口切换

LifecycleForm接口切换 FA模型接口Stage模型接口对应d.ts文件Stage模型对应接口onCreate?(want: Want): formBindingData.FormBindingData;ohos.app.form.FormExtensionAbility.d.tsonAddForm(want: Want): formBindingData.FormBindingData;onCastToNormal?(formId: string…

蓝桥杯每日一题:壁画(前缀和)

题目描述&#xff1a; Thanh 想在一面被均分为 N 段的墙上画一幅精美的壁画。 每段墙面都有一个美观评分&#xff0c;这表示它的美观程度&#xff08;如果它的上面有画的话&#xff09;。 不幸的是&#xff0c;由于洪水泛滥&#xff0c;墙体开始崩溃&#xff0c;所以他需要加…

Octavia Venture 成立,打造数十亿美元规模的 AI 价值体系

​随着 OpenAI 相继发布 ChatGPT、Sora 等 AIGC 大模型后&#xff0c;AI 赛道的发展迎来了一轮又一轮的热潮&#xff0c;这也让极具想象力的 AI 赛道涌入大量资金&#xff0c;比如英伟达股票市值短时间内从 1 万亿美元暴涨至 2 万亿美元&#xff0c;就是最好的佐证。当然&#…

Linux ssh免密登录配置

步骤 在本地机器上生成公钥和私钥对。将本地公钥复制到远程机器的~/.ssh/authorized_keys文件中。 实现1 在服务器上生成SSH密钥对 ssh-keygen -t rsa -f /home/id_rsa1ssh-keygen: 这是一个用于生成、管理和转换 SSH 密钥的 OpenSSH 工具。-t rsa: 用于指定要生成的密钥类…

Memcached 教程之 Memcached replace 命令(七)

Memcached replace 命令用于替换已存在的 key(键) 的 value(数据值)。 如果 key 不存在&#xff0c;则替换失败&#xff0c;并且您将获得响应 NOT_STORED。 语法&#xff1a; replace 命令的基本语法格式如下&#xff1a; replace key flags exptime bytes [noreply] value…

Python学习:面相对象

面向对象 面向对象技术简介 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。方法:类中定义的函数。类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实…

【AI绘画/作图】风景背景类关键词模板参考

因为ds官网被墙,所以翻了IDE的源码整理了下stablestudio里的官方模板&#xff0c;顺便每个模板生成了一份…不知道怎么写关键词的可以参考 Stunning sunset over a futuristic city, with towering skyscrapers and flying vehicles, golden hour lighting and dramatic cloud…

《c++》多态案例一.电脑组装

一.代码展示 #include <iostream> using namespace std; class CPU { public://抽象计算函数virtual void calculate() 0;};class CVideoCard { public://抽象显示函数virtual void display() 0;}; class Memory { public://抽象存储函数virtual void storage() 0;};…

JS的数学对象

数学对象 什么是数学对象&#xff1a;数学方面的‘函数’ 分别为&#xff1a;四舍五入、向上取整、向下取整、随机数 四舍五入 console.log(Math.round(20.8)) 向上取整 console.log(Math.floor(20.9)) 向下取整 console.log(Math.ceil(20.1)) 随机数 随机数 0-1 之间的…

yolov7代码 | model.named_models

文章目录 前言1. print(model)2. print(model.named_models)2.1 print(name)2.2 print(module)2.3 print(f"{name}:: {module}") 3. hasattr(module, weight) 前言 了解model.named_models&#xff0c;为剪枝做准备。 剪枝有一些层如果你不想剪掉&#xff0c;那就用…

linux 使用kubeadm安装部署K8S

上一节&#xff0c;安装了docker-20.10.14版本 安装kubeadm&#xff0c;kubelet和kubectl 由于版本更新频繁&#xff0c;这里指定版本号部署 yum install kubelet-1.23.4-0 kubeadm-1.23.4-0 kubectl-1.23.4-0 -y Loaded plugins: fastestmirror Repository epel is listed m…

提升自己最快的方式是什么?

提升自己最快的方式通常涉及到个人成长的各个方面&#xff0c;包括心理、情感、技能和知识等。根据查阅到的资料&#xff0c;以下是一些具体的方法和步骤&#xff0c;帮助你快速提升自己&#xff1a; 1. 培养屏蔽力 荷兰畅销书作家罗伊马丁纳提到&#xff0c;屏蔽力是个人成长…

实现恒功率控制丨极海APM32F035高压灌溉水泵参考方案

直流无刷电机用途广泛&#xff0c;具有高效节能、使用寿命长、运行可靠无电火花、结构简单易维护等性能优势&#xff0c;在办公设备、智能家居、消费家电、工业设备、医疗设备等领域已规模化落地。随着智能化技术与成本的持续优化&#xff0c;BLDC应用将进一步提升在各行业的渗…

OpenAI官宣,ChatGPT免登录使用

昨天&#xff0c;就在愚人节当天&#xff0c;OpenAI突然宣布ChatGPT3.5向所有人开放&#xff0c;意思是即使没有注册OpenAI的账号&#xff0c;也能体验ChatGPT&#xff0c;就像浏览器一样&#xff0c;联接即可使用。 消息一出&#xff0c;OpenAI的官网直接被大量的用户挤挂了。…