牛客周赛 Round 5

A-游游的字母变换_牛客周赛 Round 5 (nowcoder.com)

#include <bits/stdc++.h>
#define int long long using namespace std; signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr); string s;
cin >> s;
for(int i = 0;i < s.size();i ++){
if(s[i] >= 'A' && s[i] < 'Z') s[i]++;
else if(s[i] > 'a' && s[i] <= 'z') s[i]--;
else if(s[i] == 'Z') s[i] = 'A';
else if(s[i] == 'a') s[i] = 'z'; }
cout << s << endl; return 0;
}

B-游游的排列构造_牛客周赛 Round 5 (nowcoder.com)

要使得\(a_i\)为前\(i\)个元素的最大值,我们可以考虑第一个放第\((n - k + 1)\)大元素,后面每两个依次放这个元素大\(1\),即\(k-1\),直到\(k = 0\),这样就能构成满足条件的序列了

#include <bits/stdc++.h>
#define int long long using namespace std; signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr); int n,k;
cin >> n >> k; for(int i = 1,j = 1;j <= n;j++){
if(k > 0 && (j & 1)) {
cout << n - k + 1 << ' ';
k--;
}else{
cout << i ++ << ' ';
}
} return 0;
}

C-游游的二进制树_牛客周赛 Round 5 (nowcoder.com)

考虑\(1 \le n \le 10^3\),我们直接暴搜(其实最开始只是想骗点分),最开始我是傻傻的按01字符串转换成数字去判断是否满足条件的,但是最后只得了\(80pt\),QAQ,后来看了别人的,发现其实直接往左移一位就可以了qwq

#include <bits/stdc++.h>
#define int long long using namespace std; signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr); int n,l,r;
cin >> n >> l >> r;
string s;
cin >> s;
s = " " + s;
vector<int> g[n + 1];
for(int i = 1,x,y; i < n;i ++){
cin >> x >> y;
g[x].emplace_back(y);
g[y].emplace_back(x);
} int ans = 0;
string str;
function<void(int,int,int,int)> dfs = [&](int u,int v,int val,int len){ if(val > r)
return ; if(val >= l && val <= r && len > 1){
ans ++;
} for(auto i : g[u]){
if(i == v) continue;
dfs(i,u,(val << 1) + s[i] - '0',len + 1);
}
}; for(int i = 1;i <= n;i ++){
dfs(i,0,s[i] - '0', 1);
} cout << ans << endl; return 0;
}

D-游游的矩阵统计_牛客周赛 Round 5 (nowcoder.com)(双指针)

当 上层\(k\)个元素和下层\(k\)个元素都不同时,我们知道此时恰好有\(k-1\)种不同的元素的\(2*2\)的子矩阵数量.

\[\begin{bmatrix}
1 & 1 & 1 & 1\\
2 & 2 & 2 & 2
\end{bmatrix}
\]

像这样,就有\(3\)个符合条件的子矩阵数量,

但是对于这样的我们不太好去判断

\[\begin{bmatrix}
1 & 2\\
1 & 1
\end{bmatrix}
\]

所以我们可以每次判断完成后记录最后上下两个元素去下一轮单独判断,当然最开始一列是没有前面的元素的,所以$ i \ne 0 || j \ne 0$,判断的同时,将判断完的的元素删去,好让指针指向下一个连续段

#include <bits/stdc++.h>
#define int long long using namespace std;
typedef pair<int,int> PII; signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr); int n,m1,m2;
cin >> n >> m1 >> m2;
vector<PII> up(m1),down(m2);
for(auto &[x,y] : up)
cin >> x >> y;
for(auto &[x,y] : down)
cin >> x >> y; map<int,int> mp;
int i = 0, j = 0, ans = 0;
while(i < m1 || j < m2){
mp[up[i].first]++;
mp[down[j].first] ++; if((i != 0 || j != 0) && mp.size() == 2)
ans ++; if(up[i].first != down[j].first){
int k = min(up[i].second, down[j].second);
up[i].second -= k;
down[j].second -= k;
ans += k - 1;
}else{
int k = min(up[i].second, down[j].second);
up[i].second -= k;
down[j].second -= k;
} mp.clear();
mp[up[i].first] ++;
mp[down[j].first] ++; if(!up[i].second) i++;
if(!down[j].second) j++;
} cout << ans << endl; return 0;
}

E-小红的树构造_牛客周赛 Round 5 (nowcoder.com)

想要使得所有点权值乘积最小,肯定也要路径最短,那自然是菊花图啦

因此一共有\(2-2/3-3,2-3/3-2,2-2-2/3-3-3,2-2-3/2-3-2/3-2-2,3-2-3/2-3-3\)这几种路径,

为啥把\(2-2/3-3,2-2-2/3-3-3\)放一起呢,因为它们的乘积的因子数都是相同的,其他的只是位置不同,路径结果是一样的

且\(3,2\)这样单独组合的因子数要小于它们混合组合的因子数,因此我们要尽量的把\(2,3\)中数量最多的放菊花图的中心

#include <bits/stdc++.h>
#define int long long using namespace std; signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr); int n,k;
cin >> n >> k;
n -= k;
if(n > k) swap(n,k);//看谁数量更多就放中心 const int mod = 1e9 + 7;
auto ksm = [&](int a,int b){//快速幂
int res = 1;
while(b){
if(b & 1) res = res * a % mod;
a = a * a % mod;
b >>= 1;
}
return res;
}; int ans = 1;
ans = ksm(3,k - 1) % mod;
//2-2/3-3有k-1条边
ans = ans * ksm(4,n) % mod;
//2-3/3-2有n条边
ans = ans * ksm(4,(k - 1) * (k - 2) / 2) % mod;
//2-2-2/3-3-3有(k-1)*(k-2)/2条边,因为有个点在中心
ans = ans * ksm(6,(k - 1) * n) % mod;
//2-2-3...有(k-1)*n条边
ans = ans * ksm(6,n * (n - 1) / 2) % mod;
//3-3-2...有n*(n-1)/2条边
cout << ans << endl;
return 0;
}

牛客周赛 Round 5的更多相关文章

  1. 牛客周赛11TG B-弹钢琴

    链接:https://ac.nowcoder.com/acm/contest/941/B来源:牛客网 题目描述 春希想听和纱弹钢琴! 为了阻止异变的发生,Pi将钢琴魔改了 钢琴上有 N 个键,每个键有 ...

  2. 牛客OI周赛9-提高组题目记录

    牛客OI周赛9-提高组题目记录 昨天晚上做了这一套比赛,觉得题目质量挺高,而且有一些非常有趣而且非常清奇的脑回路在里边,于是记录在此. T1: 扫雷 题目链接 设 \(f_i\) 表示扫到第 \(i\ ...

  3. 牛客OI周赛8-提高组A-用水填坑

    牛客OI周赛8-提高组A-用水填坑 题目 链接: https://ac.nowcoder.com/acm/contest/403/A 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制: ...

  4. 牛客假日团队赛5 F 随机数 BZOJ 1662: [Usaco2006 Nov]Round Numbers 圆环数 (dfs记忆化搜索的数位DP)

    链接:https://ac.nowcoder.com/acm/contest/984/F 来源:牛客网 随机数 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6 ...

  5. 牛客OI周赛7-提高组 A 小睿睿的等式

    链接:https://ac.nowcoder.com/acm/contest/371/A来源:牛客网 小睿睿在游戏开始时有n根火柴棒,他想知道能摆成形如“A+B=n”的等式且使用的火柴棒数也恰好等于n ...

  6. 牛客OI周赛7-提高组 B小睿睿的询问(ST打表)

    链接:https://ac.nowcoder.com/acm/contest/371/B来源:牛客网 小睿睿的n个妹纸排成一排,每个妹纸有一个颜值val[i].有m个询问,对于每一个询问,小睿睿想知道 ...

  7. 牛客OI周赛7-普及组 解题报告

    出题人好评. 评测机差评. A 救救喵咪 二位偏序.如果数据范围大的话直接树状数组,不过才1000就\(O(n^2)\)暴力就ok了. #include <bits/stdc++.h> s ...

  8. 牛客OI周赛2-提高组

    A.游戏 链接:https://www.nowcoder.com/acm/contest/210/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语 ...

  9. 牛客OI周赛10-普及组-A眼花缭乱的街市-(加速+二分)

    https://ac.nowcoder.com/acm/contest/901/A 很简单的一道题,全场只有20+AC,卡时间.新学了cin加速语法和数组二分查找的函数调用. 知道有个读写挂,可以加速 ...

  10. 牛客OI周赛11-普及组 B Game with numbers (数学,预处理真因子)

    链接:https://ac.nowcoder.com/acm/contest/942/B 来源:牛客网 Game with numbers 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C+ ...

随机推荐

  1. Springboot3.0+spring6.0+JDK17+配置jsp和打war包

    由于某些缘故,公司的产品需要升级,但并不希望花费大量时间重写前端代码(原来的就不是前后分离的).所以虽然spring和springboot都升级为最新的版本,但是依然还是需要支持jsp,并继续用打包为 ...

  2. python重拾第十一天-REDIS缓存数据库

    缓存数据库介绍 NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL",泛指非关系型的数据库,随着互联网web2.0网站的兴起,传统的关系数据库在应付we ...

  3. 攻防世界——CRYPTO新手练习区解题总结<1>(1-4题)

    第一题base64: 下载附件,得到一个txt文件,打开 得到一串乱码,由题目可知,是base64,解码得到flag 第二题Caesar: 下载附件得到乱码 oknqdbqmoq{kag_tmhq_x ...

  4. 详解Web应用安全系列(6)安全配置错误

    Web攻击中的安全配置错误漏洞是一个重要的安全问题,它涉及到对应用程序.框架.应用程序服务器.Web服务器.数据库服务器等组件的安全配置不当.这类漏洞往往由于配置过程中的疏忽或错误,使得攻击者能够未经 ...

  5. 全新发布!桌面端效率工具RunFlow

    RunFlow是一款跨平台的生产力工具,可以启动应用程序和搜索文件等,类似于Windows平台的Wox和PowerToys,同样也类似于Mac平台的Alfred和Raycast.但我们并不与这些工具相 ...

  6. tp5 为什么使用单例模式

    首先我们要知道明确单例模式这个概念,那么什么是单例模式呢?单例模式顾名思义,就是只有一个实例.作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例, 这个类我们 ...

  7. [WUSTCTF2020]朴实无华(命令执行)

    请求头问题 去查了一下资料了解了一下没有什莫用 robots.txt 中有东西 假flag 但是请求头里有重要消息 访问页面/fl4g.php <img src="/img.jpg&q ...

  8. 解锁Nginx日志的宝藏:GoAccess——你的实时、交互式Web日志分析神器!

    在当今数字化的时代,网站的流量和用户行为数据就像是一座蕴藏着无尽秘密的宝藏.而如何有效地挖掘和分析这些数据,成为了许多网站管理者和开发者头疼的问题.GoAccess,一款开源的实时Web日志分析工具, ...

  9. 在Django REST framework (DRF) 中,`request.query_params` 和 `request.data` 区别

    在Django REST framework (DRF) 中,request.query_params 和 request.data 都是用来获取请求中的数据,但是它们之间有一些关键的区别: requ ...

  10. spark基础了解—运行层次结构、standalone与onyarn

    spark程序运行层次结构 standalone即主从机制,后续添加了standaloneHA,zk管理master的存活,一旦master挂了会在候选master中诞生新的 HAstandalone ...