牛客 7.13 月赛(留 C逆元 Ddp)

B-最少剩几个?_牛客小白月赛98 (nowcoder.com)

思路

奇数+偶数 = 奇数;奇数*偶数 = 奇数

所以在既有奇数又有偶数时,两者结合可以同时删除

先分别统计奇数,偶数个数

若偶个数大于奇个数,答案是偶个数-奇个数

若奇个数大于偶个数,奇数个数减去偶个数再对2取模

ac代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)int main()
{IOS;int n,ans;int ji=0,ou=0;cin>>n;vector<ll>a(n);for(int i=0;i<n;i++) {cin>>a[i];if(a[i] & 1) ji++;else ou++; }if(ou>ji)  ans=ou-ji;else{if((ji-ou)%2) ans=1;else ans=0;}cout<<ans<<endl;   return 0;
}

C-两个函数_牛客小白月赛98 (nowcoder.com)

(超时问题如何解决)

初始代码(超时)
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)int main()
{IOS;ll q,a,x;cin>>q;for(int i=0;i<q;i++){ll ans=0;cin>>a>>x;if(x==1) ans=(a*x)%998244353;else{for(int i=1;i<x;i++){ans+=(a*(a%998244353*i)%998244353)%998244353;ans%=998244353;					}}ans%=998244353;cout<<ans<<endl;}return 0;
}
解决思路

1.  快速幂

时间复杂度是 O(log n),相比于直接进行指数运算,大大提高了计算效率

快速幂代码

int FastPow(int a,int x,int mod)
{int ans = 1;a%=mod;while(x){if(x&1) ans=(ans*a)%mod;a= (a*a)%mod;x>>=1;}return ans;
}

2.  递推式

因为是求和过程,可以用递推式

ac代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
ll mod=998244353;int main()
{IOS;ll q,a,x;cin>>q;for(int i=0;i<q;i++){ll ans=0;cin>>a>>x;if(x==1) ans=a%mod;else {a = a*a %mod;ans=(x-1)*x/2 %mod *a %mod;}cout<<ans<<endl;}return 0;
}

D-切割 01 串 2.0_牛客小白月赛98 (nowcoder.com)

思路:

1.  前缀和

        记录在索引的每一个位置处之前,0或1的个数

2.dp

        dp[i][j] 表示考虑前 i 个字符时,最多可以进行多少次切割;对于每个长度 len,遍历所有可能的切割起点 l,使得 l + len - 1 不超过序列的长度;对于每个起点 l,计算可能的切割终点 r;

   对于每个起点 l 和终点 r,遍历所有可能的切割分割点 k,使得 k 在 l 和 r 之间;

动态规划过程的关键在于,通过递归地考虑所有可能的切割方式,并使用前缀和数组来快速计算分割点 k 两侧的子串中0和1的累计数量。通过这种方式,算法能够高效地找到满足条件的切割次数的最大值

代码
#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)using namespace std;/*
算法:区间DP + 前缀和 O(N*N*N)
数据结构:s0,s1前缀和数组 + 二维dp[l][r]
*/const int N = 510;int s0[N], s1[N];
int dp[N][N];void solve() {int n, L, R;string s;cin >> n >> L >> R >> s;s = " " + s;for (int i = 1; i <= n; i ++ )s0[i] = s0[i - 1] + (s[i] == '0'),s1[i] = s1[i - 1] + (s[i] == '1');for (int len = 1; len <= n; len ++ )for (int l = 1; l <= n; l ++ ){int r = l + len - 1;if (r > n) break;for (int k = l; k < r; k ++ ){int c0 = s0[k] - s0[l - 1];int c1 = s1[r] - s1[k];if (L <= abs(c0 - c1) && abs(c0 - c1) <= R) dp[l][r] = max(dp[l][r], 1 + dp[l][k] + dp[k + 1][r]);}}cout << dp[1][n] << '\n';
}signed main() {IOS;int t = 1;
//    cin >> t;while (t--) {solve();}return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

网络编程-TCP/IP

网络概述 网络采用分而治之的方法设计&#xff0c;将网络的功能划分为不同的模块&#xff0c;以分层的形式有机组合在一起。 每层实现不同的功能&#xff0c;其内部实现方法对外部其他层次来说是透明的。每层向上层提供服务&#xff0c;同时使用下层提供的服务 网络体系结构…

[RuoYi-Vue] - 6. 若依二次开发

文章目录 &#x1f333;1. 模块定制(修改包名)1.1 若依框架修改器1.2 使用示例 &#x1f33f;2. 新建业务模块2.1 新建子模块2.2 版本锁定2.3 添加模块依赖 &#x1f33e;3. 菜品管理开发3.1 准备SQL并导入数据库3.2 配置代码生成信息3.3 下载代码并导入项目 &#x1f343;4. 通…

【Leetcode】十五、深度优先搜索 宽度优先搜索 :二叉树的层序遍历

文章目录 1、深度优先搜索算法2、宽度优先搜索算法3、leetcode102&#xff1a;二叉树的层序遍历4、leetcode107&#xff1a;二叉树的层序遍历II5、leetcode938&#xff1a;二叉搜索树的范围和 1、深度优先搜索算法 深度优先搜索&#xff0c;即DFS&#xff0c;从root节点开始&a…

20.x86游戏实战-远线程注入的实现

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 工具下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

防火墙之双机热备篇

为什么要在防火墙上配置双机热备技术呢&#xff1f; 相信大家都知道&#xff0c;为了提高可靠性&#xff0c;避免单点故障 肯定有聪明的小伙伴会想到那为什么不直接多配置两台防火墙&#xff0c;然后再将他们进行线路冗余&#xff0c;不就完成备份了吗&#xff1f; 答案是不…

【LeetCode】162. 寻找峰值

1. 题目 2. 分析 这道题的难点有二&#xff1a;第一&#xff0c;知道用二分法求解&#xff1b;第二&#xff0c;二分判断的标准是什么&#xff1f;传统的题目的二分标注都是跟某个固定的值做比较&#xff0c;但是此题不然。此题的比较对象是相邻的元素。 不要硬凭自己的脑子…

uniapp 开发 App 对接官方更新功能

插件地址&#xff1a;升级中心 uni-upgrade-center - App - DCloud 插件市场 首先创建一个 uni-admin 项目&#xff0c;选择你要部署的云开发服务商&#xff1a; 然后会自动下载模板&#xff0c;部署云数据库、云函数 第二步&#xff1a;将新创建的 uni-admin 项目托管到…

STM32智能家居系统教程

目录 引言环境准备智能家居系统基础代码实现&#xff1a;实现智能家居系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;家居智能化管理问题解决方案与优化收尾与总结 1. 引言 智能家居系统通过STM32嵌入…

【C++】红黑树模拟实现STL库中的map与set

目录 改造红黑树 红黑树的迭代器 map的模拟实现 set的模拟实现 在上一篇博客中&#xff0c;我们实现了红黑树&#xff0c;但是红黑树节点中的值是pair<K,V> _kv形式&#xff0c;这种红黑树适用于map的底层&#xff0c;那么如果我们想要红黑树节点中的值是key的形式&a…

Vue3项目基于Axios封装request请求

在 Vue 3 的项目开发中&#xff0c;使用 Axios 进行 HTTP 请求是非常常见的作法&#xff0c;为了更方便开发者更高效的进行代码编写和项目的维护&#xff0c;可以通过再次封装 Axios 来实现。 在本文中&#xff0c;博主将详细指导你如何在自己的 Vue 3 项目中使用 Axios 二次封…

【web】-反序列化-to_string

<?php highlight_file(__FILE__); class A{public $s;public function __destruct(){echo "hello".$this->s;}} class B{public $cmd;public function __toString(){system($this->cmd);return 1;} } unserialize($_GET[code]); __toString()当对象被当着…

android之selinux问题解决记录 一

文章目录 简述流程分析编译验证 简述 主要是使用第三方应用来读写usb设备中的mode值&#xff0c;遇到的selinux权限问题的处理&#xff1b; 流程分析 当logcat日志中有avc:denied关键字段打印时&#xff0c;说明存在selinux问题 1.读取 读取配置中的mode值时&#xff0c;第…

Linux入门攻坚——28、php、mysql基础

httpdphp&#xff1a;是在httpd中启用模块&#xff0c;不同的工作模式&#xff0c;使用的模块不同 modules httpd&#xff1a;prefork --> libphp5.so httpd&#xff1a;event or worker --> libphp5-zts.so php&#xff1a;引入zend engine后&#xff0c;分为…

Burp安全扫描Web应用

一、浏览器设置代理 如下图所示&#xff0c;点击火狐浏览器的“扩展和主题”&#xff0c;搜索“代理”。 如下图所示&#xff0c;选择搜索到的第一个代理&#xff08;选择任何一个都可以&#xff09;。 如上图所示&#xff0c;第一个点击后&#xff0c;进入如下页面&#xff0…

51单片机学习(4)

一、串口通信 1.串口通信介绍 写完串口函数时进行模块化编程&#xff0c;模块化编程之后要对其进行注释&#xff0c;以便之后使用模块化函数&#xff0c;对模块化.c文件中的每一个函数进行注释。 注意&#xff1a;一个函数不能既在主函数又在中断函数中 模式1最常用&#xf…

Kafka Producer发送消息流程之消息异步发送和同步发送

文章目录 1. 异步发送2. 同步发送 1. 异步发送 Kafka默认就是异步发送&#xff0c;在Main线程中的多条消息&#xff0c;没有严格的先后顺序&#xff0c;Sender发送后就继续下一条&#xff0c;异步接受结果。 public class KafkaProducerCallbackTest {public static void mai…

linux搭建mysql主从复制(一主一从)

目录 0、环境部署 1、主服务器配置 1.1 修改mysql配置文件 1.2 重启mysql 1.3 为从服务器授权 1.4 查看二进制日志坐标 2、从服务器配置 2.1 修改mysql配置文件 2.2 重启mysql 2.3 配置主从同步 2.4 开启主从复制 3、验证主从复制 3.1 主服务器上创建test…

单片机开发中,如何在断电前保存数据到dataflash?

在单片机开发中&#xff0c;保存数据到 DataFlash&#xff08;数据闪存&#xff09;是一项常见任务&#xff0c;尤其是在断电前需要保留重要数据时。 我收集归类了一份嵌入式学习包&#xff0c;对于新手而言简直不要太棒&#xff0c;里面包括了新手各个时期的学习方向编程教学…

多线程实现方式和常用方法

1 进程和线程 进程Process&#xff1a; 每个进程都有独立的代码和数据空间&#xff08;进程上下文&#xff09;&#xff0c;进程间的切换会有较大的开销&#xff0c;一个进程包含1--n个线程。可以把进程简单理解为操作系统中运行的一个程序。 线程Thread&#xff1a;同一类线程…

音视频开发入门教程(2)配置FFmpeg编译 ~共210节

在上一篇博客介绍了安装&#xff0c;音视频开发入门教程&#xff08;1&#xff09;如何安装FFmpeg&#xff1f;共210节-CSDN博客 感兴趣的小伙伴&#xff0c;可以继续跟着老铁&#xff0c;一起开始音视频剪辑功能&#xff0c;&#x1f604;首先查看一下自己的电脑是几核的&…