2024 (ICPC) Jiangxi Provincial Contest(VP补题记录)

2024 (ICPC) Jiangxi Provincial Contest(VP补题记录)

已ac 8/12,赛时7题,赛后1题。

文章目录

  • 2024 (ICPC) Jiangxi Provincial Contest(VP补题记录)
    • A(签到中的签到,pass)
    • C(简单思维)
    • G
    • J(按题意模拟即可)
    • K
    • H(卷积加权和反过来看)
    • L. Campus
    • D. Magic LCM

A(签到中的签到,pass)

C(简单思维)

要么 n 要么 n-1.

FastIO 已省略

def solve():n,s = MI()a = LI()print1(n if sum(a) == s else n-1)# for _ in range(I()):
solve()

G

给你一个长度不超过 1 0 14 10^{14} 1014 的11进制数,判断是不是5的倍数,由于 1 1 i m o d 10 = 1 11^i \mod 10 = 1 11imod10=1,所以所有位累加即可。

mod = 5
dic = {str(i):i for i in range(10)}
dic['A'] = 10
def solve():n = I()ans = 0for i in range(n):x,y = MS()ans += int(x) * dic[y]ans %= 5print('Yes' if ans % 5 == 0 else 'No')for _ in range(I()):solve()# print(set([pow(11,i,10) for i in range(100000)]))

J(按题意模拟即可)

se = set()
for c in "psm":se.add('1'+c)se.add('9'+c)
for i in range(1,8):se.add(str(i) + 'z')
def solve():s = S()dic = {}for i in range(0,28,2):ts = s[i:i+2]dic[ts] = dic.get(ts,0)+1flag = 1for v in dic.values():if v != 2:flag = 0breakif flag:print1("7 Pairs")returnif se == set(dic.keys()): print1("Thirteen Orphans")else: print1("Otherwise")for _ in range(I()):solve()

K

显然有m-1种分叉情况,所以 a n s = 2 m − 1 ans = 2^{m-1} ans=2m1 % m o d mod mod .

mod = 998244353
def solve():m = I()print1(pow(2, m-1, mod))solve()

H(卷积加权和反过来看)

考虑把卷积核 K K K 加权到输入矩阵 I I I 的过程反过来看,判断卷积核 K K K 的每一个元素会扫到哪些 I I I (即局部链接了哪些ceil). 用个二维前缀和维护一下即可。

def solve():n,m,k,l = MI()ls = [[0]*(m+1)]for i in range(n):ls.append([0]+LI())for i in range(1,n+1):for j in range(1,m+1):ls[i][j] = ls[i][j] + ls[i-1][j] + ls[i][j-1] - ls[i-1][j-1]ans = 0for i in range(1,k+1):for j in range(1,l+1):tmp = ls[n-k+i][m-l+j] - ls[n-k+i][j-1] - ls[i-1][m-l+j] + ls[i-1][j-1]ans += abs(tmp)print1(ans)solve()

L. Campus

假设 k k k 个出口开放区间最多组成 l e n ( s e q ) len(seq) len(seq) 个不同情况的时间区间(出口不一样),考虑每个区间跑一次 d i j k s t r a dijkstra dijkstra 即可, k ≤ 15 k\le15 k15。注:py会TLE。

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int N=1e5+5;int n,m,tot,k,t;
int ver[N+N], head[N], edge[N+N], nxt[N+N], a[N];
ll ans[N], inf = 1e15;
ll dist[N];
int p[20], l[20], r[20], node[20];
bool vis[N];
int ls[N];
vector<pii> seq;void solve(){auto add = [&](int x,int y,int z){ver[++tot]=y,edge[tot]=z;nxt[tot]=head[x],head[x]=tot;};auto dijkstra = [&](int node[]){priority_queue<pair<int, int> > q;for(int i = 1; i <= k; i++){if (node[i]){dist[p[i]] = 0;q.push({-0,p[i]});}}while(!q.empty()){pii tmp = q.top();q.pop();int x = tmp.second;if(vis[x]) continue;  vis[x] = 1;for(int i=head[x]; i; i=nxt[i]){int y=ver[i];int w=edge[i];if (dist[y] > dist[x] + w){dist[y] = dist[x] + w;q.push({-dist[y], y});}}}};cin>>n>>m>>k>>t;for(int i=1; i <= n; i++) cin>>a[i];for(int i=1; i <= k; i++) {cin>>p[i]>>l[i]>>r[i];ls[l[i]] += k;ls[r[i] + 1] -= k;}	for(int i=1;i<=m;++i){int x,y,z;cin>>x>>y>>z;add(x,y,z);add(y,x,z);}for(int i = 1; i <= t; i++) ls[i] += ls[i-1];int st = 1, pre =ls[1];ls[t+1] = -1;for(int i = 1; i <= t+1; i++){if (ls[i] != pre){seq.push_back({st, i-1});st = i; pre = ls[i];}}for(int i = 1; i <= t; i++) ans[i] = 1e18;for(int i = 0; i < seq.size(); i++){for(int j = 1; j <= n; j++) {dist[j] = inf;vis[j] = 0;}for(int j = 1; j <= k; j++) node[j] = 0;for(int j = 1; j <= k; j++)if (l[j] <= seq[i].first && r[j] >= seq[i].second) node[j] = 1;dijkstra(node);ll cnt = 0;bool fl = false;for(int j = 1; j <= n; j++){if (dist[j] == inf) {fl = 1;break;}cnt += dist[j] * a[j];}if (fl) continue;for(int j = seq[i].first; j <= seq[i].second; j++)ans[j] = min(ans[j], cnt);}for(int i = 1; i <= t; i++)if (ans[i] < 1e18) cout<<ans[i]<<'\n';else cout<<-1<<'\n';
}int main()
{ios::sync_with_stdio(false);cin.tie(0);solve();return 0;
}

D. Magic LCM

考虑操作的本质是什么,对于两个数的所有质因子(并集),假设其中一对分别有 p c , p d p^c,p^d pc,pd ,那么一个变为 p max ⁡ ( c , d ) p^{\max(c,d)} pmax(c,d) 一个变为 p min ⁡ ( c , d ) p^{\min(c,d)} pmin(c,d)

那我们可以使用筛法筛出每个数的最小质因子进行分解,把能转移的都转移到同一个最大的数上即可。

#include<bits./stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6;
const ll mod=998244353;int n;
int mx[N+1];
int cnt[N+1][20];vector<int> minp, primes;
void sieve(int n) {minp.assign(n + 1, 0);primes.clear();for (int i = 2; i <= n; i++) {if (minp[i] == 0) {minp[i] = i;primes.push_back(i);}for (auto p : primes) {if (i * p > n) {break;}minp[i * p] = p;if (p == minp[i]) {break;}}}
}void solve()
{cin >> n;vector<int> v(n);for(int i = 0; i < n; i++) cin >> v[i];vector<int> stk;for(int i = 0; i < n; i++){while(v[i] > 1){int p = minp[v[i]];int t = 0;while(minp[v[i]] == p){   // 求质因子的次幂v[i] /= p;t++;                  // 将所有涉及到的质因数入栈}if(mx[p] == 0)stk.push_back(p);     // 质因数中第一次遇到 p 只入栈一次mx[p] = max(mx[p], t);cnt[p][t]++;}}vector<ll> a(n, 1);               // 所有操作后的 vfor (auto p : stk){                // 枚举涉及到的所有质因数int j = 0;for (int i = mx[p]; i; i--){  // 统计该质因数为i次幂在v中出现的次数j += cnt[p][i];}ll pw = 1;for (int i = 1; i <= mx[p]; i++){pw = (1ll * pw * p) % mod;while (cnt[p][i]){cnt[p][i]--;a[j] = (a[--j] * pw) % mod;}}mx[p] = 0;}	ll ans = 0;for(auto x : a)ans = (ans + x) % mod;cout << ans << '\n';
}int main()
{ios::sync_with_stdio(false);cin.tie(0);sieve(N);int T = 1;cin >> T;while(T--)solve();return 0;
}

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

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

相关文章

Java中的大数据处理与分析技术

Java中的大数据处理与分析技术 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 随着数据量的爆炸式增长&#xff0c;大数据处理和分析成为当今软件开发领域中的…

CSRF漏洞攻击

05-CSRF 1 CSRF概述 1.1 概述 CSRF (Cross-Site Request Forgery) 跨站请求伪造&#xff0c;也可称为一键式攻击 (one-click-attack)&#xff0c;通常缩写为 CSRF 或者 XSRF。 CSRF 攻击是一种挟持用户在当前已登录的浏览器上发送恶意请求的攻击方法。相对于XSS利用用户对指…

wsl安装Linux系统到指定位置

默认情况下,wsl安装的系统,会安装到系统C盘,长期下去,很容易把C盘的空间消耗完,从而影响系统的正常运行,所以我建议是将wsl所有的系统都安装到其它磁盘中,便于维护。 1、导出镜像 通过wsl -l -v 查看当前已安装的系统版本。 导出到当前目录位置,也可以指定目录位置。 w…

docker集群部署主从mysql

搭建一个mysql集群&#xff0c;1主2从&#xff0c;使用docker容器 一、创建docker的mysql镜像 下次补上&#xff0c;因为现在很多网络不能直接pull&#xff0c;操作下次补上。 二、创建mysql容器 创建容器1 docker run -it -d --name mysql_1 -p 7001:3306 --net mynet --…

【单链表】03 设L为带头结点的单链表,编写算法实现从尾到头反向输出每个结点的值。

&#x1f57a;作者&#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux算法题上机准备 &#x1f618;欢迎 ❤️关注 &#x1f44d;点赞 &#x1f64c;收藏 ✍️留言 题目 设L为带头结点的单链表&#xff0c;编写算法实现从尾到头反向输出每个结点的值。 算法…

《昇思25天学习打卡营第10天|使用静态图加速》

文章目录 今日所学&#xff1a;一、背景介绍1. 动态图模式2. 静态图模式 三、静态图模式的使用场景四、静态图模式开启方式1. 基于装饰器的开启方式2. 基于context的开启方式 总结&#xff1a; 今日所学&#xff1a; 在上一集中&#xff0c;我学习了保存与加载的方法&#xff…

昇思25天学习打卡营第6天|简单的深度学习模型实战 - 函数式自动微分

自动微分(Automatic Differentiation)是什么&#xff1f;微分是函数在某一处的导数值&#xff0c;自动微分就是使用计算机程序自动求解函数在某一处的导数值。自动微分可用于计算神经网络反向传播的梯度大小&#xff0c;是机器学习训练中不可或缺的一步。 这些公式难免让人头大…

论文浅尝 | 从最少到最多的提示可在大型语言模型中实现复杂的推理

笔记整理&#xff1a;王泽元&#xff0c;浙江大学博士 链接&#xff1a;https://openreview.net/forum?idWZH7099tgfM 1. 动机 尽管深度学习已经取得了巨大的成功&#xff0c;但它与人类智慧仍然存在一些明显差距。这些差距包括以下几个方面&#xff1a;1&#xff09;学习新任…

SQL Server查看所有的数据库、所有的表 以及表的描述

文章目录 -- 查看所有的数据库 select name from sys.databases order by name;-- 查看所有的表 use [你的数据库名]; -- select * from sys.objects order by type; -- select * from sys.objects where type u; -- select object_id,name from sys.objects where type u; s…

【代码大全2 选读】看看骨灰级高手消灭 if-else 逻辑的瑞士军刀长啥样

文章目录 1 【写在前面】2 【心法】这把瑞士军刀长啥样3 【示例1】确定某个月份的天数&#xff08;Days-in-Month Example&#xff09;4 【示例2】确定保险费率&#xff08;Insurance Rates Example&#xff09;5 【示例3】灵活的消息格式&#xff08;Flexible-Message-Format …

NFC风险高?不要被误导

在我们日常生活中&#xff0c;经常会听到NFC这个词&#xff0c;尤其是在智能手机、银行卡和公共交通卡等场景中。NFC&#xff0c;全称近场通信&#xff08;Near Field Communication&#xff09;&#xff0c;就像是一位随时待命的便捷小助手&#xff0c;但它是否安全可靠呢&…

14-27 剑和诗人 1 – 请称呼我AI工程师

​​​​​ 仅初创企业的收入就超过 10 亿美元&#xff0c;随着 Gen AI 的早期成功迹象&#xff0c;每家有远见的科技公司都在竞相将 Gen AI 功能融入其产品、客户支持机器人和营销中。作为一种技术&#xff0c;AI 正处于与 90 年代末互联网相似的阶段&#xff0c;甚至完全相同…

【前端】上传和下载zip文件,有进度条(el-progess)

文章目录 上传下载进度条 场景&#xff1a;要上传一个zip&#xff0c;调用接口&#xff0c;然后下载一个zip。调用接口的接口响应要显示在进度条中。 上传 上传用的是input原生控件&#xff0c;在页面中隐藏。accept"application/zip"限制只能上传zip。 点击button…

【unity实战】Unity中使用A*寻路+有限状态机制作一个俯视角敌人AI

最终效果 文章目录 最终效果前言A*寻路插件介绍下载导入AI插件生成寻路网格节点的类型障碍物寻路测试A*只打印报错信息 代码控制寻路动画配置敌人状态机各种状态脚本效果完结 前言 前面做过有限状态机制作一个敌人AI&#xff1a;【unity实战】在Unity中使用有限状态机制作一个…

vxe-table合并行数据;element-plus的el-table动态合并行

文章目录 一、vxe-table合并行数据1.代码 二、使用element-plus的el-table动态合并行2.代码 注意&#xff1a;const fields 是要合并的字段 一、vxe-table合并行数据 1.代码 <vxe-tableborderresizableheight"500":scroll-y"{enabled: false}":span-m…

信创-办公软件应用工程师认证

随着国家对信息技术自主创新的战略重视程度不断提升&#xff0c;信创产业迎来前所未有的发展机遇。未来几年内&#xff0c;信创产业将呈现市场规模扩大、技术创新加速、产业链完善和国产化替代加速的趋势。信创人才培养对于推动产业发展具有重要意义。应加强高校教育、建立人才…

【信息学奥赛】CSP-J/S初赛07 排序算法及其他算法在初赛中的考察

本专栏&#x1f449;CSP-J/S初赛内容主要讲解信息学奥赛的初赛内容&#xff0c;包含计算机基础、初赛常考的C程序和算法以及数据结构&#xff0c;并收集了近年真题以作参考。 如果你想参加信息学奥赛&#xff0c;但之前没有太多C基础&#xff0c;请点击&#x1f449;专栏&#…

全面掌握如何应对DDoS攻击,一文带你轻松保护网站安全

一、引言 在当今互联网时代&#xff0c;DDoS&#xff08;Distributed Denial of Service&#xff0c;分布式拒绝服务&#xff09;攻击已经成为威胁网站安全的主要手段之一。这种攻击通过大量恶意流量占用服务器资源&#xff0c;导致网站无法正常访问。如何有效应对DDoS攻击&am…

C++|海康摄像头实时预览时设置音量大小

使用海康API设置音量的函数是&#xff1a;NET_DVR_OpenSound。 在实际代码中我遇到了以下问题&#xff1a; 1&#xff1a;调用NET_DVR_OpenSound接口一直返回失败&#xff0c;错误是调用顺序出错。 2&#xff1a;音量设置不成功。 对于以上两种问题&#xff0c;我相信很多人…

实现Java应用的数据加密与解密技术

实现Java应用的数据加密与解密技术 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 1. 数据加密与解密的重要性 数据安全是当今互联网应用开发中的重要问题之…