C. Rotate and Sum Query
如果没有第一种查询,只要直接做前缀和就行。
即使有第一种查询,也不必真的去移动元素,只要把下标整体偏移一下,记住“原序列中每个元素现在排在第几位”,就能知道想要的区间和在原序列的哪一段!
代码实现
#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (n); ++i)using namespace std;
using ll = long long;int main() {int n, q;cin >> n >> q;vector<int> a(n);rep(i, n) cin >> a[i];vector<ll> s(n+1);rep(i, n) s[i+1] = s[i]+a[i];int si = 0;rep(qi, q) {int type;cin >> type;if (type == 1) {int c;cin >> c;si = (si+c)%n;}else {int l, r;cin >> l >> r;--l; --r;l = (l+si)%n;r = (r+si)%n;ll ans;if (l <= r) ans = s[r+1]-s[l];else ans = s[n] - (s[l]-s[r+1]);cout << ans << '\n';}}return 0;
}
D. Ulam-Warburton Automaton
模拟
黑格子保持黑色,只有与“上一轮操作中新变黑的格子”相邻的白色格子,才可能在这一轮变成黑色,所以每次只要检查这些格子就行!而上一轮操作中新变黑的格子总数不超过 \(HW\) 个,因此整体时间复杂度为 \(O(HW)\)!
代码实现1
#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (n); ++i)using namespace std;
using P = pair<int, int>;const int di[] = {-1, 0, 1, 0};
const int dj[] = {0, 1, 0, -1};int main() {int h, w;cin >> h >> w;vector<string> s(h);rep(i, h) cin >> s[i];const int INF = 1001001001;vector step(h, vector<int>(w, INF));queue<P> q;rep(i, h)rep(j, w) if (s[i][j] == '#') {step[i][j] = 0;q.emplace(i, j);}int ans = 0;while (q.size()) {ans++;auto [i, j] = q.front(); q.pop();int si = step[i][j];rep(v, 4) {int ni = i+di[v], nj = j+dj[v];if (ni < 0 or ni >= h or nj < 0 or nj >= w) continue;if (step[ni][nj] != INF) continue;int cnt = 0;rep(v2, 4) {int mi = ni+di[v2], mj = nj+dj[v2];if (mi < 0 or mi >= h or mj < 0 or mj >= w) continue;if (step[mi][mj] <= si) cnt++;}if (cnt == 1) {step[ni][nj] = si+1;q.emplace(ni, nj);}}}cout << ans << '\n';return 0;
}
代码实现2
#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (n); ++i)using namespace std;
using P = pair<int, int>;const int di[] = {-1, 0, 1, 0};
const int dj[] = {0, 1, 0, -1};int main() {int h, w;cin >> h >> w;vector<string> s(h);rep(i, h) cin >> s[i];vector<P> updatedCells;rep(i, h)rep(j, w) if (s[i][j] == '#') {updatedCells.emplace_back(i, j);}int ans = 0;while (updatedCells.size()) {ans += updatedCells.size();vector<P> nextCells;for (auto [i, j] : updatedCells) {rep(v, 4) {int ni = i+di[v], nj = j+dj[v];if (ni < 0 or ni >= h or nj < 0 or nj >= w) continue;if (s[ni][nj] == '#') continue;int cnt = 0;rep(v2, 4) {int mi = ni+di[v2], mj = nj+dj[v2];if (mi < 0 or mi >= h or mj < 0 or mj >= w) continue;if (s[mi][mj] == '#') cnt++;}if (cnt == 1) {nextCells.emplace_back(ni, nj);}}}for (auto [i, j] : nextCells) {s[i][j] = '#';}swap(updatedCells, nextCells);}cout << ans << '\n';return 0;
}
E. Count Sequences 2
答案 \(= \dbinom{C_1}{C_1} \times \dbinom{C_1+C_2}{C_2} \times \dbinom{C_1+C_2+C_3}{C_3} \times \cdots\)
用杨辉三角预处理组合数即可
代码实现
#include <bits/stdc++.h>
#include <atcoder/all>
using namespace atcoder;
#define rep(i, n) for (int i = 0; i < (n); ++i)using namespace std;
using mint = modint;const int M = 5000;
mint comb[M+1][M+1];void solve() {int n;cin >> n;int s = 0;mint ans = 1;rep(i, n) {int c;cin >> c;s += c;ans *= comb[s][c];}cout << ans.val() << '\n';
}int main() {int t, mod;cin >> t >> mod;mint::set_mod(mod);comb[0][0] = 1;rep(i, M)rep(j, i+1) {comb[i+1][j] += comb[i][j];comb[i+1][j+1] += comb[i][j];}while (t--) solve();return 0;
}
F. Inserting Process
首先,这是一个统计逐字符删除操作序列数量的问题。删除方式不同却得到相同字符串,仅在连续相同字符区间删除位置不同才会发生。因此,把“在连续相同字符区间内只能选最前面的字符”作为条件,然后以当前剩余字符作为状态做状压dp即可!
代码实现
#include <bits/stdc++.h>
#include <atcoder/all>
using namespace atcoder;
#define rep(i, n) for (int i = 0; i < (n); ++i)using namespace std;
using mint = modint998244353;int main() {int n;string t;cin >> n >> t;int n2 = 1<<n;vector<mint> dp(n2);dp[n2-1] = 1;for (int s = n2-1; s; --s) {char pre = '-';rep(i, n) if (s>>i&1) {if (pre != t[i]) dp[s^1<<i] += dp[s];pre = t[i];}}mint ans = dp[0];cout << ans.val() << '\n';return 0;
}
G. Sum of Min of XOR
有点像数位dp一样的东西!例如 \(M=11\) 的话,就把 \(x\) 的范围分成 \(0 \sim 7\) 和 \(8 \sim 10\) 两部分,依据最高位是 \(0\) 还是 \(1\),先计算这一位的影响,再递归处理!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/920200.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!相关文章
介绍几个能进去的a站深圳网站运营
一、前言在之前的文章(ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路)中,我介绍了如何在 Linux 环境中安装 .NET Core SDK / .NET Core Runtime、Nginx、MySQL,以及如何将我们的 ASP.NET Core MVC 程序部署到 Li…
比较好的网页设计网站wordpress 手机顶部悬浮
LabVIEW高精度微小电容测量
在电子工程和科研领域,精确测量微小电容值是一项有一定要求的任务,尤其在涉及到高精度和低成本时。设计了一种基于LabVIEW高精度微小电容测量系统,旨在提供一个既经济又高效的解决方案。
该系统的核心在于使用FD…
石狮市建设局网站普通小程序开发者工具
文章目录 基于C/C的UG二次开发流程1 环境搭建1.1 新建工程1.2 项目属性设置1.3 添加入口函数并生成dll文件1.4 执行程序1.5 ufsta入口1.5.1 创建程序部署目录结构1.5.2 创建菜单文件1.5.3 设置系统环境变量1.5.4 制作对话框1.5.5 创建代码1.5.6 部署和执行 基于C/C的UG二次开发…
成都市金堂县网站建设微信平板专用版ipad版
多继承(Multiple Inheritance)是指从多个直接基类中产生派生类的能力,多继承的派生类继承了所有父类的成员。尽管概念上非常简单,但是多个基类的相互交织可能会带来错综复杂的设计问题,命名冲突就是不可回避的一个。 多继承时很容易产生命名冲突,即使我们很小心地将所有类…
如何自己做淘宝客推广网站外国人的做视频网站
一、pandas介绍
1、2008年Wes McKinney(韦斯麦金尼)开发出的库
2、专门用于数据分析的开源python库
3、以numpy为基础,借力numpy模块在计算方面性能高的优势
4、基于matplotlib能够简便的画图
5、独特的数据结构
6、也是三个单词组合而…
口碑好的专业网站建设天河网站建设推广
换肤其实也属于插件化专题的一个子话题,之所以单独拿出来,是因为它的处理方式比较特殊,相比插件化而言较简单一些。
系统内置的换肤功能支持 - Theme
Android 系统中如果想修改应用的背景色,最简单的就是利用以下Theme相关的属性: 使用这些内置的属性可以实现一定程度上…
做软件赚钱的网站php中网站不同模板后台逻辑代码怎么管理
文章目录前言InterceptorChain保存所有的Interceptor创建四大对象都走ConfigurationInterceptorChain增强对象方法Plugin封装动态代理,让你使用Mybatis拦截器更简单Invocation,让我们能在拦截器中使用动态代理类中的invoke方法中的对象调用时序图小结前言…
基层建设 官方网站WordPress潮流媒体主题
在/ l o g s目录中查找更改时间在7日以前的文件并删除它们: $ find logs/ -type f -mtime 7 -exec rm -f {} \; 在/ l o g s目录中查找更改时间在7日以内的文件并删除它们: $ find logs/ -type f -mtime -7 -exec rm -f {} \; 然后加入的计划任务中每日执…
大连做网站不错的公司信息管理网站开发实验体会
亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢!
课程主题:横向菜单高级交互
主要内容:横向菜单左右拖动、选中效果
应用场景:app横向菜单、pc后台动态区域
案例展示:
演…
企业网站源码哪个最好暖色网站
IdentityServer4是什么?IdentityServer4是基于ASP.NET Core实现的认证和授权框架,是对OpenID Connect和OAuth 2.0协议的实现。OpenID Connect 和 OAuth2.0是什么OpenID Connect:OpenID Connect由OpenID基金会于2014年发布的一个开放标准, 是建立在OAuth …
沧州网站建设方案咨询万网主机建wordpress
作者:朱金灿 来源:http://blog.csdn.net/clever101/ 同事问我一个奇怪的问题:程序在他的机子上运行的好好的,但是其它人下载了源码之后可以编译通过,但是debug模式下调试运行到应用程序类中的InitInstance函数中的 i…
做网站收录的网站有哪些自己在线制作logo免费广告招牌
摘 要
如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统物流配送人员车辆调度信息管理难度大,容错率低…
网页设计公司建设网站小程序网站app定制开发
美国股市昨日先抑后扬终结两连跌,开启反弹,道指、标普、纳指纷纷翻红。10月3日晚,美东时间周四,美股集体低开,盘初受宏观经济数据不及预期影响,三大指数大幅跳水跌逾1%,道指跌超300点。此后美股…
什么网站可以自己做名片logo设计文案范例
解决问题的过程:1)查看服务器CPU使用情况输入top会发现排在前面的都是oracle的进程,而且CPU占用率都是50以上。$toptop - 16:28:41 up 4 days, 22:35, 1 user, load average: 21.49, 22.14, 22.05Tasks: 299 total, 31 running, 268 sleeping, 0 st…
网站首页的head标签内湖南室内设计公司排名
这篇文章,主要介绍Vue3项目工程中如何使用axios网络请求库实现前后端数据通信【知识星球】。 目录
一、axios依赖
1.1、下载axios依赖
1.2、创建axios工具类
经典企业网站模板青岛网站公司
注:这是一篇没有技术含量的水文,主要是看有人下载下来,居然当成资源需要积分才能下载。我觉得不行,故提供原始下载地址供查阅使用。
链接: 上述图片所示网址:链接直达
上海网站设计厂家考试培训
文章目录 一、MySQL和Oracle1.1 基本差别1.2 使用区别 二、MySQL和PostgreSQL2.1 基本差别2.2 使用差别 本系列文章: MySQL(一)SQL语法、数据类型、常用函数、事务 MySQL(二)MySQL SQL练习题 MySQL(三&…
有哪些免费推广网站网站建设用到什么
参展企业介绍
山东润德生物科技有限公司成立于2014年10月17日,是一家围绕生物制品的研发、生产、营销、国际贸易、技术服务为核心业务的国家高新技术企业,近年来荣获国家制造业单项冠军示范企业、国家级绿色工厂、国家知识产权优势企业、国家工业产品绿…
网站设计网站维护dedecms 食品网站模板
目录
一、C语言的语句有哪些 1.1 空语句 1.2 表达式语句 1.3 函数调用语句 1.4 复合语句 1.5 控制语句 二、分支语句(两种) 1.1 if语句 1.1.1 普通分支语句(if、if_else) 1.1.2 嵌套if语句 1.1.3 else嵌套if两种写法的比较 1.1.4 else悬空问题 1.1.…