2025.3.14 总结

news/2025/3/16 14:50:16/文章来源:https://www.cnblogs.com/scguo-130115/p/18774910

比赛链接

T1

50 pts。

直接暴力。

思路

我们可以发现,题目中的变化只是将字符串中的 A 挪到了最后,所以如果出现了 AABC 这种情况,才会发生连锁反应,因为是从后往前反应,所以枚举的时候从前往后,统计 A 的个数,如果遇到了 B,并且下一个是 C,答案就加上 A 的个数,如果是 C 的话,就将个数清零。

代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
string s;
signed main()
{cin.tie(0)->sync_with_stdio(false);cin>>s;int ans=0,cnt=0;for(int i=0;i<s.size();++i){if(s[i]=='A') ++cnt;else if(s[i]=='B'){if(i+1<s.size()&&s[i+1]=='C'){ans+=cnt;++i;}else cnt=0;}else cnt=0;}cout<<ans;return 0;
}

T2

50 pts。

最短路暴力。

思路

记忆化搜索乘法的情况即可。

代码

#include<bits/stdc++.h>
#define int unsigned long long
using namespace std;
int n,a,b,c,d;
unordered_map<int,int> dp; 
int dfs(int x)
{if(dp.count(x)) return dp[x];int mn=x*d;if(x%2==0) mn=min(mn,dfs(x/2)+a);else mn=min(mn,min(dfs((x-x%2)/2)+(x%2)*d,dfs((x+2-x%2)/2)+(2-x%2)*d)+a);if(x%3==0) mn=min(mn,dfs(x/3)+b);else mn=min(mn,min(dfs((x-x%3)/3)+(x%3)*d,dfs((x+3-x%3)/3)+(3-x%3)*d)+b);if(x%5==0) mn=min(mn,dfs(x/5)+c);else mn=min(mn,min(dfs((x-x%5)/5)+(x%5)*d,dfs((x+5-x%5)/5)+(5-x%5)*d)+c);return dp[x]=mn;
}
void solve()
{dp.clear();cin>>n>>a>>b>>c>>d;dp[0]=0,dp[1]=d;cout<<dfs(n)<<'\n';return;
}
signed main()
{cin.tie(0)->sync_with_stdio(false);int t;cin>>t;while(t--) solve();return 0;
}

T3

50 pts。

LCA 暴力。

思路

直接用并查集维护。

代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e6+5;
string s;
int n,fa[N],cnt[N],ans;
vector<int> g[N]; 
int find(int x){return fa[x]==x?x:fa[x]=find(fa[x]);}
void mark(int u)
{vector<int> ve;int sum=0;for(int v:g[u]){if(s[v]=='R'){int y=find(v);ve.emplace_back(cnt[y]);sum+=cnt[y],ans+=cnt[y];}}int s=0;for(int i:ve) s+=i*(sum-i);ans+=s/2;return; 
}
signed main()
{cin.tie(0)->sync_with_stdio(false);cin>>n>>s;s=' '+s;for(int i=1;i<=n;++i) fa[i]=i,cnt[i]=1;for(int i=1,x,y;i<n;++i){cin>>x>>y;if(s[x]=='R'&&s[y]=='R'){int u=find(x),v=find(y);if(u!=v){fa[u]=v;cnt[v]+=cnt[u];}}g[x].emplace_back(y),g[y].emplace_back(x);}for(int i=1;i<=n;++i){if(s[i]=='B'){mark(i);}}cout<<ans;return 0;
}

T4

0 pts。

思路

只有出现了零的时候,这一位才会是零,所以可以使用树状数组统计每一位的答案,每次更新的时候就更新这个数的每一位即可。

代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+5,mod=1e9+7;
int n,a[N],pw[N];
struct Node{int tr[N];void update(int idx,int val){while(idx<=n){tr[idx]+=val;idx+=idx&-idx;}return;}int query(int idx){int sum=0;while(idx){sum+=tr[idx];idx-=idx&-idx;}return sum;}
}tree[35];
signed main()
{cin.tie(0)->sync_with_stdio(false);cin>>n;for(int i=1;i<=n;++i) cin>>a[i];pw[0]=1;for(int i=1;i<N;++i) pw[i]=(pw[i-1]*2)%mod;for(int i=1;i<=n;++i){for(int j=0;j<=35;++j){if((a[i]>>j)&1) tree[j].update(i,1);}}int q;cin>>q;for(int op,l,r;q--;){cin>>op>>l>>r;if(op==1){for(int j=0;j<=30;++j){if((a[l]>>j)&1) tree[j].update(l,-1);}a[l]=r;for(int j=0;j<=30;++j){if((a[l]>>j)&1) tree[j].update(l,1);}}else{int sum=0;for(int j=0;j<=30;++j){sum=(sum+(pw[tree[j].query(r)-tree[j].query(l-1)]-1)*pw[j]%mod)%mod;}cout<<sum<<'\n';}}return 0;
}

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

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

相关文章

PTA

​ 题目描述 小轿车中有一个系统随时监测四个车轮的胎压,如果四轮胎压不是很平衡,则可能对行车造成严重的影响。让我们把四个车轮 —— 左前轮、右前轮、右后轮、左后轮 —— 顺次编号为 1、2、3、4。本题就请你编写一个监测程序,随时监测四轮的胎压,并给出正确的报警信息。…

第二章

TempStr = input("请输入带有符号的温度值:") if isinstance(TempStr, str) and TempStr[-1] in [F, f]:C = int((float(TempStr[0:-1]) - 32) / 1.8)print(f"转换后的温度是{C}C") elif isinstance(TempStr, str) and TempStr[-1] in [C, c]:F = int(1.8…

window11家庭版 WSL上安装CentOS7

环境 Windows11家庭版 1. 安装WSL配置 1.1 Win命令模式开启虚拟化步骤点击查看代码 # 启用适用于 Linux 的 Windows 子系统:打开powershell并输入: dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart# 启用虚拟化:以管理员打…

探秘Transformer系列之(14)--- 残差网络和归一化

从零开始解析Transformer,目标是:(1) 解析Transformer如何运作,以及为何如此运作,让新同学可以入门;(2) 力争融入一些比较新的或者有特色的论文或者理念,让老鸟也可以有所收获。探秘Transformer系列之(14)--- 残差网络和归一化 目录探秘Transformer系列之(14)--- 残差…

省选联考2024游记

搬运自 洛谷博客 ,文章写于 2024.03.05“总有地上的生灵,敢于直面雷霆的威光。”全文共1169字。 Day -105 2023/11/18 noip考完人就崩了,第二题甚至都没写出正解,只有压线省一,大哭。 也基本注定这回是进不了省队了。 Day -5 2024/2/26 周一 开始停课 Day -4 2024/2/27 周…

day30 正则三剑客---awk

awk是什么 再谈三剑客grep,擅长单纯的查找或匹配文本内容 sed,更适合编辑、处理匹配到的文本内容 awk,更适合格式化文本内容,对文本进行复杂处理后、更友好的显示三个命令称之为Linux的三剑客 awk学完后的能力 以下部分内容需要结合shell编程对文本行数据提取数据字段 模式…

树上查分学习笔记+做题记录

树上查分 点的查分求路径 \(u-v\) 上的点被经过的次数. \(cnt[x]\) 表示点 \(x\) 被经过的次数. 核心代码:cnt[u]++; cnt[v]++; cnt[lca(u,v)]--; cnt[father[lca(u,v)]]--;A. 运输压力解法 树上查分板子题啊 #include <bits/stdc++.h> using namespace std; const int N…

ActAgent开发之基于http请求引用链路模版发起对话

下载deepeek 首先本地安装ollama,这是一款支持mac,windows和linus系统的大模型管理工具。下载好后打开终端,执行命令ollama pull deepseek-r1:7b,可以在网上找想要下载的开源大模型,我这里下载的是deepseek-r1的7b模型。执行完后可以用ollama list查看是否下载成功,然后可…

缓存与数据库的一致性方案,Redis与Mysql一致性方案,大厂P8的终极方案(图解+秒懂+史上最全)

说在前面 在40岁老架构师 尼恩的读者交流群(50+)中,最近有小伙伴拿到了一线互联网企业如阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格,遇到很多很重要的redis一致性面试题,类似如下:如何保障 MySQL 和 Redis 的数据一致性? 如何保障 MySQL 和 Cache 的数据一…

牛逼,这款开源聊天应用竟能一键召唤多个AI助手,跨平台通话神器!

`JiwuChat`是一款基于Tauri2和Nuxt3构建的轻量化多平台即时通讯工具,仅约8MB体积却集成了**AI群聊机器人**、**WebRTC音视频通话**、**屏幕共享**等前沿功能。一套代码适配Windows/macOS/Linux/Android/iOS/Web六大平台,堪称开发者学习跨端开发的绝佳样板!嗨,大家好,我是小…

day29_正则三剑客--sed

关于学正则单个正则字符还认识组合到一起就晕了,怎么办?本质还是对单个字符没理解.认识*认识.*组合到就一起就蒙了,为什么?还是没想明白.的意义,*的意义正则表达式,从左向右,逐步理解单个字符的意义怎么做? 1.思维脑图写没写? 2.每一个正则表达式的符号,自己有没有动…