atcoder abc 359

A  count takahashi

问题:

思路:字符串比较

代码:

#include <bits/stdc++.h>using namespace std;int main() {int n;cin >> n;int ans = 0;for(int i = 1; i <= n; i ++ ) {string s;cin >> s;if(s[0] == 'T') ans ++;}cout << ans;return 0;
}

B couples

问题:

思路:找出所有a[i - 1]与a[i + 1]相等的pair

代码:
 

#include <bits/stdc++.h>using namespace std;int main() {int n;cin >> n;vector<int> a(2 * n + 1);for(int i = 1; i <= 2 * n; i ++ ) cin >> a[i];int pre = a[1];int ans = 0;for(int i = 2; i <= 2 * n - 1; i ++ ) {if(a[i + 1] == pre) ans ++;pre = a[i];}cout << ans;return 0;
}

C tile distance2

问题:

思路:

注意到每次竖直方向上走一个可以在水平方向上多增加一个偏移量,因此只要先解决竖直方向,然后可以得到一个水平方向的最大范围,只要水平坐标在这个范围内就不用计算水平方向上的花费,反之计算差值除2即可。为了简化计算,可以把所有坐标在水平方向上偏移到砖块的左边部分。

代码:

#include <bits/stdc++.h>using namespace std;int main() {ios::sync_with_stdio(false);cin.tie(nullptr);long long x1, y1, x2, y2;cin >> x1 >> y1 >> x2 >> y2;long long yy = abs(y1 - y2);long long t = min(x1, x2);x1 = max(x1, x2);x2 = t;if((y1 + x1) & 1) x1 --;if((y2 + x2) & 1) x2 --;//long long tmp = x1;x1 -= yy;if(x1 <= x2) cout << yy;else cout << yy + abs(x1 - x2) / 2;return 0;
}

D - Avoid K Palindrome

问题:

思路:
注意到k很小,话不多说,状态压缩。A为1,B为0

很显然只有一维的状态无法构造状态转移方程。再加一维索引dp[i][j]表示以下标i开头的字符串且状态为j的所有good string 的数量

则有dp[i][j] += dp[i - 1][k]

j与k之间又有什么联系呢,让他们错开一位上下摆放,就可以发现除了第一位和最后一位,其他位都是相同的。这时候让j减去最右边的数,并且整体右移一位!!!很重要,就因为这里,我调了一个小时代码。然后再加上str[i - 1]对应的数。

代码:

#include <bits/stdc++.h>using namespace std;const int mod = 998244353;int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int n, k;cin >> n >> k;vector<char> str(n + 1);for(int i = 1; i <= n; i ++ ) cin >> str[i];vector<vector<int>> dp((n + 1), vector<int>(1 << k));for(int j = 0; j <= (1 << k) - 1; j ++ ) {bool flag = true;vector<char> s(k);for(int i = 0; i < k; i ++ ) {if(j >> i & 1) s[i] = 'A';else s[i] = 'B';if(str[i + 1] != '?' && str[i + 1] != s[i]) flag = false;}if(flag) {reverse(s.begin(), s.end());int num = 0;for(int i = 0; i < k; i ++ ) {if(s[i] == 'A') num += (1 << i) * 1;}if(num != j) dp[1][j] = 1;}}for(int i = 2; i <= n - k + 1; i ++ ) {for(int j = 0; j <= (1 << k) - 1; j ++ ) {bool flag = true;vector<char> s(k);for(int u = 0; u < k; u ++ ) {if(j >> u & 1) s[u] = 'A';else s[u] = 'B';if(str[i + u] != '?' && str[i + u] != s[u]) flag = false;}if(flag) {reverse(s.begin(), s.end());int num = 0;for(int u = 0; u < k; u ++ ) {if(s[u] == 'A') num += 1 << u;}if(num != j) {int tmp = j;if(s[0] == 'A') tmp -= 1 << k - 1;tmp <<= 1;//if(j == 14) cout << tmp << " ";if(str[i - 1] != 'A') (dp[i][j] += dp[i - 1][tmp]) %= mod;if(str[i - 1] != 'B') {tmp ++;//if(j == 14 && i == 2) for(auto t: s) cout << t;//if(dp[i - 1][tmp] && i == 2) cout <<j;(dp[i][j] += dp[i - 1][tmp]) %= mod;}}}}}int ans = 0;for(int i = 0; i <= (1 << k) - 1; i ++ ) (ans += dp[n - k + 1][i]) %= mod;cout << ans;return 0;
}

E

F

G

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

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

相关文章

命令ifconfig-显示网络接口的当前状态

ifconfig是一个在类Unix系统中用于配置网络接口的命令行工具。它可以用来显示网络接口的当前状态&#xff0c;或者设置网络接口的参数&#xff0c;如IP地址、子网掩码、MAC地址等。 基本用法 显示所有网络接口的信息&#xff1a; ifconfig显示特定网络接口的信息&#xff1a…

Android 多媒体开发——Media3与MediaSession最全使用指南

一、Media3库简介 1.1 Media3是什么&#xff1f; 官方释义&#xff1a; Jetpack Media3 is the new home for media libraries that enables Android apps to display rich audio and visual experiences. Media3 offers a simple architecture with powerful customization,…

软考出成绩了,速查,查分方式看这里

各位考生&#xff0c;软考出成绩啦&#xff01;大家赶紧查一下&#xff0c;各科都45分就是通过&#xff01; 软考成绩查询入口已开通&#xff0c;此刻你是不是既激动又忐忑&#xff1f;速查&#xff01; ★ 查询网站 中国计算机技术职业资格网https://bm.ruankao.org.cn/sign/…

如何轻松获取 GitLab 指定分支特定路径下的文件夹内容

第一步&#xff1a; 获取 accessToken 及你的 项目 id &#xff1a; 获取 accessToken ,点击用户头像进入setting 按图示操作&#xff0c;第 3 步 填写你发起请求的域名。 获取项目 id , 简单粗暴方案 进入 你项目仓库页面后 直接 源码搜索 project_id&#xff0c; value 就…

记录Gstreamer的uridecodebin可以自动选择硬解码器

记录&#xff1a; uridecodebin3 和uridecodebin优先硬解码 这两个插件&#xff0c;本来是负责动态选择合适的解码器来处理特定的媒体流&#xff0c;使用案例&#xff1a; gst-launch-1.0 uridecodebin urirtsp://192.168.1.120:8554/test ! glimagesink -v gst-launch-1.0 …

Linux通用LInux高危漏洞(CVE-2024-1086)修复案例

一、漏洞描述 2024年3月28日&#xff0c;监 Linux kernel权限提升漏洞&#xff08;CVE-2024-1086&#xff09;的PoC/EXP在互联网上公开&#xff0c;该漏洞的CVSS评分为7.8&#xff0c;目前漏洞细节已经公开披露&#xff0c;美国网络安全与基础设施安全局&#xff08;CISA&…

Java高手的30k之路|面试宝典|精通项目介绍方法优化简历项目介绍

常用项目介绍结构及原因 以下是几个常用的项目介绍结构&#xff0c;以及为什么使用这些结构的原因&#xff1a; 1. STAR 方法 Situation&#xff08;情境&#xff09;&#xff1a;项目的背景和情况。 Task&#xff08;任务&#xff09;&#xff1a;你需要完成的任务。 Actio…

每天一学(2)

目录 1、线程池是如何知道线程任务是否完成 2、阻塞队列的有界和无界 3、ConcurrentHashMap底层实现原理 5、CAS机制 6、wait 和 notify 为什么要放在 synchronized 1、线程池是如何知道线程任务是否完成 线程池内部&#xff1a; 当把任务丢给线程池去执行&#xff0c;调度工作…

【UE5.3】笔记4-自定义材质蓝图

正常来说&#xff0c;我们都是拿到什么材质用什么材质&#xff0c;那么我们如何去创建自定义的材质呢&#xff1f; 首先&#xff0c;创建MyMaterials文件夹用来存放我们自制的材质&#xff1b; 然后&#xff0c;右键创建一个材质&#xff0c;起个名字&#xff0c;双击打开&am…

Linux-笔记 全志平台休眠功能初探

前言 全志平台支持的休眠功能主要包括两种模式&#xff1a;休眠模式和待机模式。这两种模式用于降低设备的功耗&#xff0c;并在需要时快速恢复工作状态。由于平台为T113&#xff0c;所以可以很方便的使用RTC来做唤醒源。唤醒源指的是能够让系统从休眠状态恢复到工作状态的信号…

必看-OpenStack面试攻略:揭秘企业最爱问的几个问题

问题&#xff1a;什么是OpenStack&#xff1f; 答案&#xff1a;OpenStack是一系列开源软件组成的云供给软件&#xff0c;用于构建和管理云计算平台。它允许企业或组织在自己的硬件上建立和管理云基础设施&#xff0c;并提供类似于公有云的弹性可扩展资源。 问题&#xff1a;O…

【Linux】Linux基础开发工具(yum)

Linux 软件包管理器 yum 什么是软件包 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安 装程序)放在一个服务器上, 通过包管理器可以很方便…

破坏人工智能

破坏人工智能 我一直在努力表达这个想法&#xff0c;也许问题是&#xff0c;一旦你把它放在那里&#xff0c;它实际上是很简单的&#xff0c;一旦你把想法写在纸上&#xff0c;真的没有很好的理由去解开整个案例。 我正在远离衡量和修复不公平的算法系统&#xff0c;或使它们…

不同材质的不锈钢氮气柜优缺点和使用场景分析

不锈钢氮气柜是一种用于存储对湿度敏感的物品的专用储藏设备&#xff0c;通过充入干燥的氮气来降低柜内湿度&#xff0c;保护存储物免受氧化或腐蚀。 根据不同的材质&#xff0c;不锈钢氮气柜可分为&#xff1a; 一、201不锈钢氮气柜&#xff1a; 201不锈钢因其较低的镍含量而成…

【第14章】探索新技术:如何自学SD3模型(找官方资料/精读/下载/安装/3款工作流/效果测试)ComfyUI基础入门教程

近期,也就是2024年6月12日,StabilityAI开源了最新的SD3模型的2B版本,而神奇的是,ComfyUI早在6月11号就已经适配了SD3!相比之下,SD WebUI 的更新速度却远远落后... 所以,如果想要尝试一些AI绘画领域的新技术,ComfyUI是一个非常值得投入时间学习的工具。 这节课,我们就…

防火墙虚拟系统

防火墙虚拟系统 防火墙虚拟系统的应用场景 大中型企业的网络隔离 通过防火墙的虚拟系统将网络隔离为研发部门、财经部门和行政部门。各部门之间可以根据权限互相访问&#xff0c;不同部门的管理员权限区分明确。 云计算中心的安全网关 通过配置虚拟系统&#xff0c;可让部署…

Sequelize的拓展

前言 基于上一篇Sequelize的基本操作后的一些补充扩展 一.分页查询 在查看详情的接口中进行整改 router.get(/, async function (req, res, next) {try {const query req.queryconst currentPage Math.abs(Number(query.currentPage)) || 1const pageSize Math.abs(Numb…

[XYCTF新生赛2024]-PWN:ptmalloc2 it‘s myheap plus解析(glibc2.35,堆中的栈迁移,orw)

查看保护 查看ida 思路&#xff1a; 泄露libc和堆地址就不多说了&#xff0c;fastbin duf也不解释了。这里主要是利用fastbin duf在environ附近创建堆块&#xff0c;泄露environ中的栈地址&#xff0c;然后就利用fastbin duf修改rbp和返回地址进行栈迁移了&#xff0c;迁移目标…

优化Docker部署:解决Java应用ExcelGenerateException并提速镜像构建

在开发和部署应用时&#xff0c;经常会遇到在本地环境运行正常&#xff0c;但迁移到Docker容器后出现特定错误的情况。本篇博客将聚焦于解决一个具体问题&#xff1a;当使用Docker部署包含Excel生成功能的Java应用程序时&#xff0c;遇到ExcelGenerateException的排查与解决方法…

Android SurfaceFlinger——注册监听底层调用(八)

通过上一篇文章的分析,能够发现其实 registerCallback 在 HWC2On1Adapter(也是 hwc2_device_t)中做的事情仅仅只是把当前的方法指针和回调类型存储起来,同时让刚注册进来的监听消费掉还没有回调上去的消息。其实真正从硬件回调上来的地方其实是 HWC2On1Adapter::Callback 中…