2025GDCPC广东省赛游记(附赛时代码)

我觉得算是给swan的自证之旅画上一个句号吧...说实话HDU给我带来的不止是排位上的压力,更多的是对自己能力的怀疑,特别是pluto不明说但是我很清楚的看不起(没有责备本人的意思),evil和jxj之类的总感觉看到我就是看小丑的眼神(我觉得主要是自己自卑所以觉得所有人都讨厌自己),连约饭都没人陪我了呜呜

我感觉全世界都开始怀疑我vp的时候全部都在抄题解,然后cf的分数也是作弊得来的,我不配打acm之类的,这种主要是自己给自己的压力犹如顿刀子割肉般没日没夜的折磨我,被队友抛弃被自己否定

转机就算是南昌吧,你也可以看到南昌结束之后swan疯狂的强调自己的贡献啥的(也跟猫猫道个歉),其实也是希望能像其他人证明自己,说这个铜牌我没有拖后腿云云,总之感觉自己这一个学期都被沟槽的HDU毁了,陷入了一种很恐怖的给自己上压力的恶性循环。直到省赛,所有人同台竞技,然后能打到校内第三的这个位置,我才算是长出一口气,才好意思舔着个脸再去问猫猫或者鸡哥愿不愿意捞我这种事情

emo的回顾到此结束,还是回顾下比赛历程吧,这场我们队真的算是大起大落大起大落,好在最后极限翻盘。比赛前一个比较错误的战略就是让sherlock去写签到去了,然后WA了一发换我重新敲才过了,这个时候我队已经陷入了不小的罚时劣势,此乃一落。然后cmjj的模拟一发过,除了大哥队率先进入两题区,此乃一起。现在签到结束了,两道铜牌题卡住了,被其他几个队快速追上,虽然中间sherlock先过了个H但是在比起铜牌题全出还是差一题,再次掉到银牌岌岌可危的位置。H过的时候一小时出头,然后直到3小时15分钟才终于出了G,但是这个时候的罚时劣势已经巨大,封榜前已经是73名,而银牌线是79名,如果出不了题那银牌都拿不到。在此之前swan的J题还wa了好几发,然后开始研究I,很长时间没有机时的sherlock居然一直在看我的代码(太感动了呜呜),然后找到了错误原因,在封榜之后开敲。而sherlock敲的同时我这边I也找到了正确的容斥方式,两个人就开始抢电脑,最后两个人连续三分钟内连开两题成功跻身六题区(还藏了一手演pluto)

最后说一下参赛环境吧,我们是在广州外语外贸大学的赛点参赛的,虽然主办方的教练们都在群里哭穷,我们对省赛的期望也不是特别高。但是真的是相当出乎意料地优秀的参赛体验,比起去年几十万经费的港科广真的好了不是一点半点,PTA的经典连接不上服务器我觉得可以接受吧,然后麦麦是热的就已经赢了南昌太多,更别说去年某校的减脂三明治了。本来大家以为没有牌子没有滚榜啥的,最后居然是在我们这个赛点线下滚了榜,牌子也说之后会寄到学校,赛时的气球也安排到位了,总之我觉得这算是我人生中第二棒的一次参赛体验了(中大校赛免费参赛还送衣服送杯子送麦麦这个真的是很难超越了),感谢所有为比赛付出的老师,志愿者和后勤工作人员们

然后把代码贴一下吧,签到我没存懒得存

I题

#include <bits/stdc++.h>
#define all(a) a.begin(),a.end()
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
/*ll mod=1e9+7;
ll N=1e5+10;
ll fact[N],infact[N];
void ini(){fact[0]=infact[0]=1;for(int i=1;i<N;i++){fact[i]=fact[i-1]*i%mod;infact[i]=qpow(fact[i],mod-2);}
}
ll C(lla,ll b){if(a<b) return 0;return fact[a]*infact[b]%mod*infact[a-b]%mod;
}*/void solve(){ll n; scanf("%lld",&n);vector<vector<ll> > cnt(4,vector<ll>(1e6+10,0));map<tuple<ll,ll,ll>,ll> mp;vector<tuple<ll,ll,ll> > qq;for(int i=0;i<n;i++){ll a,b,c; scanf("%lld%lld%lld",&a,&b,&c);cnt[1][a]++; cnt[2][b]++; cnt[3][c]++;mp[{a,0,c}]++; mp[{a,b,0}]++; mp[{0,b,c}]++;qq.push_back({a,b,c});}ll ans=0;for(auto [a,b,c]:qq){// 我在这里考虑的是最后的东西和a,b,c完全一致 ll x=cnt[1][a]-mp[{a,0,c}]-mp[{a,b,0}]+1;ll y=cnt[2][b]-mp[{a,b,0}]-mp[{0,b,c}]+1;ll z=cnt[3][c]-mp[{a,0,c}]-mp[{0,b,c}]+1;ll d=mp[{0,b,c}]-1,f=mp[{a,0,c}]-1,e=mp[{a,b,0}]-1;//printf("%lld %lld %lld %lld %lld %lld ",x,y,z,d,e,f);//printf("add %lld ",x*y+y*z+x*z);//printf("add %lld ",(d+e+f)*(d+e+f-1)/2);//printf("add %lld\n",(a+b+c)*(d+e+f));//printf("add %lld\n",x*y+y*z+x*z+(d+e+f)*(d+e+f-1)/2+(a+b+c)*(d+e+f));ans+=x*y+y*z+x*z+(d+e+f)*(d+e+f-1)/2+(x+y+z)*(d+e+f);}printf("%lld\n",ans);
}int main(){int T=1;//scanf("%d",&T);while(T--){solve();}return 0;
}

J题

#include<bits/stdc++.h>using namespace std;
#define int long long 
const int N=1e6+10;
const int MOD = 998244353;int qpow(int num,int k)
{int res = 1;while(k){if(k % 2) res = res * num;num = num * num;k = k >> 1ll;}return res;
}int a[N];
int e[N],ne[N],h[N],w[N];
int idx;
int ans[N];struct Node
{int time;int tar;int val;bool operator < (const Node &other) const {return time > other.time;	}
};void add(int x,int y,int z)
{e[++idx] = y, ne[idx] = h[x] , h[x] = idx,w[idx] = z;
}void solve()
{int n,m,k;cin>>n>>m>>k;for(int i=1;i<=n;i++) cin>>a[i],ans[i] = MOD * MOD;//cout<<n<<"\n";priority_queue< Node , vector<Node> >q;for(int i=1;i<=k;i++){int t,num;cin>>t>>num;for(int j=1;j<=num;j++) {int x;cin>>x;q.push({t,x,0});}}for(int i=1;i<=m;i++){int x,y,z;cin>>x>>y>>z;add(x,y,z);}for(int i=1;i<=n;i++){if(a[i] == 0){//cout<<i<<"\n";ans[i]=0;for(int j=h[i];j;j=ne[j]){q.push({w[j],e[j],1});}}}while(!q.empty()){auto [time,index,val] = q.top();//cout<<time<<" "<<index<<" "<<val<<"\n";q.pop();if(a[index] == 0) continue;if(val == 1) a[index] --;if(val == 0) a[index] = 0;if(a[index] == 0){ans[index] = time;for(int i=h[index];i;i=ne[i]){int son = e[i];if(a[son]!=0){q.push({time+w[i],son,1});}}}}//cout<<n<<"\n";for(int i=1;i<=n;i++){if(ans[i] == MOD * MOD) cout<<-1<<" ";else cout<<ans[i]<<" ";}
}signed main()
{int t=1;//cin>>t;while(t--){solve();}
}

F题

#include <bits/stdc++.h>
#define all(a) a.begin(),a.end()
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
void solve(){ll n,m,t;cin>>n>>m>>t;ll k;cin>>k;ll tn=0,ttime=0;map<char,ll> mp,cnt;priority_queue<ll,vector<ll>,greater<ll> > qu;for(ll i=1;i<=k;i++){ll tt;char c;string str;cin>>tt>>c>>str;if(cnt[c]) continue;if(str=="ac"){ttime+=(tt+mp[c]*20);tn++;cnt[c]=1;}if(str=="rj"){mp[c]++;}if(str=="pd"){cnt[c]=1;qu.push(tt+mp[c]*20);//cout<<"qu push "<<tt+mp[c]*20<<" "<<c<<"\n";}}if(tn>m||tn==m&&ttime<t){cout<<"0"<<"\n";return ;}//cout<<tn<<" "<<ttime<<"\n\n";ll g=0;while(!qu.empty()){g++;tn++;ll tp=qu.top();//cout<<"top:"<<tp; ttime+=tp;qu.pop();//cout<<" "<<tn<<" "<<ttime<<"\n";if(tn>m||tn==m&&ttime<t){cout<<g<<"\n";return ;}}cout<<"-1"<<"\n";return ;
}int main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int T=1;cin>>T;while(T--){solve();}return 0;
}

H题

#include<bits/stdc++.h>using namespace std;
#define int long long 
const int N=1e6+10;
const int MOD = 998244353;int qpow(int num,int k)
{int res = 1;while(k){if(k % 2) res = res * num;num = num * num;k = k >> 1ll;}return res;
}int sum[30];
int a[N];
int dp[30];void solve()
{int n,k;cin>>n>>k;string s;cin>>s;for(int i=0;i<n;i++){int now = s[i] - 'a';int num = 1;for(int j=0;j<26;j++){num = (num + sum[j]) % MOD;}num = (num - dp[now] + MOD) % MOD;dp[now] = (dp[now] + num) % MOD;//cout<<i<<" "<<num<<"\n";a[i] = num;if(i >= k) sum[s[i-k]-'a'] = (sum[s[i-k]-'a'] + a[i-k]) % MOD;}int res =0;for(int i=0;i<26;i++) res = (res + dp[i]) % MOD,sum[i]=0,dp[i]=0;cout<<res<<"\n";
}signed main()
{int t=1;cin>>t;while(t--){solve();}
}

D题

#include<bits/stdc++.h>using namespace std;
#define int long long 
const int N=1e6+10;
const int MOD = 998244353;int qpow(int num,int k)
{int res = 1;while(k){if(k % 2) res = res * num;num = num * num;k = k >> 1ll;}return res;
}int dp[N];
int a[N];
int ask[N];void solve()
{int n,m;cin>>n>>m;map<int,int>mp;for(int i=1;i<=n;i++) cin>>a[i],dp[a[i]]=1;int now = 0;int maxvalue=0;for(int i=1;i<=a[n];i++)	{if(now +1 <= n && i == a[now+1]) now++;dp[i] = dp[i - a[now]] + dp[a[now]];mp[dp[i]]++;maxvalue = max(maxvalue,dp[i]);//cout<<i<<" "<<dp[i]<<"\n";}//for(int i=1;i<=maxvalue;i++) cout<<mp[i]<<"\n";for(int i=2;i<=maxvalue;i++) mp[i] += mp[i-1];for(int i=1;i<=m;i++) cin>>ask[i];for(int i=1;i<=m;i++){if(ask[i]<=maxvalue) cout<<mp[ask[i]]<<" ";else cout<<mp[maxvalue]<<" ";}
}signed main()
{int t=1;//cin>>t;while(t--){solve();}
}

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

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

相关文章

MySQL 修改数据的全链路流程

MySQL 修改数据的全链路流程&#xff08;InnoDB&#xff09; 全链路流程图关键步骤详解1. 建立连接阶段2.SQL解析与优化3. InnoDB内存操作4. 日志记录过程5. 二阶段提交&#xff08;2PC&#xff09; 磁盘同步机制1. Redo Log刷盘策略&#xff08;innodb_flush_log_at_trx_commi…

兰亭妙微十六年高水准交互设计公司

北京兰亭妙微&#xff08;蓝蓝设计&#xff09;成立于 2008 年&#xff08;前身为设计工作室&#xff0c;2011 年正式注册&#xff09;&#xff0c;由清华团队主创&#xff0c;专注软件和互联网 UI/UE 设计开发 16 年。我们提供从需求调研、界面设计到开发落地的全流程服务&…

【脚本 完全参数化的通用 APT 源配置方案-Debian/Ubuntu】

通过脚本在 Debian/Ubuntu 系统上一键切换 APT 源 如Dockerfile中 使用某个源&#xff08;比如 aliyun&#xff09; 假设你的目录结构是&#xff1a; . ├── Dockerfile └── switch-apt-source.shFROM ubuntu:22.04# 把脚本拷贝到镜像中 COPY switch-apt-source.sh /us…

学习日记-day20-6.1

完成目标&#xff1a; 知识点&#xff1a; 1.集合_Collections集合工具类 方法:static <T> boolean addAll(Collection<? super T> c, T... elements)->批量添加元素 static void shuffle(List<?> list) ->将集合中的元素顺序打乱static <T>…

个人总结八股文之-基础篇(持续更新)

一、集合的分类有哪些&#xff1f; Java集合框架主要分为两大类&#xff1a;Collection和Map Collection主要分为以下三类&#xff1a; List&#xff1a;有序集合&#xff0c;允许重复元素。常见的实现类有ArrayList、LinkedList和Vector。 Set&#xff1a;无序集合&#xf…

leetcode hot100刷题日记——35.子集

解答&#xff1a; 方法一&#xff1a;选or不选的dfs&#xff08;输入视角&#xff09; 思路&#xff1a;[1,2,3]的全部子集可以看成是对数组的每一位数字做选择。 eg.空集就是一个数字都不选&#xff0c;[1,2]就是1&#xff0c;2选&#xff0c;3不选。 class Solution { pub…

华为OD机试真题——生成哈夫曼树(2025A卷:100分)Java/python/JavaScript/C/C++/GO六种最佳实现

2025 A卷 100分 题型 本文涵盖详细的问题分析、解题思路、代码实现、代码详解、测试用例以及综合分析; 并提供Java、python、JavaScript、C++、C语言、GO六种语言的最佳实现方式! 本文收录于专栏:《2025华为OD真题目录+全流程解析/备考攻略/经验分享》 华为OD机试真题《生成…

房屋租赁系统 Java+Vue.js+SpringBoot,包括房屋类型、房屋信息、预约看房、合同信息、房屋报修、房屋评价、房主管理模块

房屋租赁系统 JavaVue.jsSpringBoot&#xff0c;包括房屋类型、房屋信息、预约看房、合同信息、房屋报修、房屋评价、房主管理模块 百度云盘链接&#xff1a;https://pan.baidu.com/s/1KmwOFzN9qogyaLQei3b6qw 密码&#xff1a;l2yn 摘 要 社会的发展和科学技术的进步&#xf…

Unity 中 Update、FixedUpdate 和 LateUpdate 的区别及使用场景

在Unity开发中,Update、FixedUpdate 和 LateUpdate 是生命周期函数中最常见也最容易混淆的一组。 一、调用时机 方法名调用频率调用时机说明Update()每帧调用一次跟随帧率(帧率高则调用频率高)FixedUpdate()固定时间间隔调用默认每 0.02 秒执行一次LateUpdate()每帧调用一次…

Docker镜像之windows系统

https://github.com/dockur/windows 在 Docker 容器中运行 Windows 功能 ISO 下载器KVM 加速基于网页的查看器 使用方法 启动容器并通过浏览器连接到端口 8006。整个安装过程将全自动完成&#xff0c;无需手动干预。当桌面界面出现时&#xff0c;表示 Windows 安装已完成&a…

C# 用户控件(User Control)详解:创建、使用与最佳实践

在C#应用程序开发中&#xff0c;用户控件&#xff08;User Control&#xff09;是一种强大的工具&#xff0c;它允许开发者将多个标准控件组合成一个可复用的自定义组件。无论是Windows Forms还是WPF&#xff0c;用户控件都能显著提高UI开发的效率&#xff0c;减少重复代码&…

pikachu靶场通关笔记09 XSS关卡05-DOM型XSS-X

目录 一、XSS 二、DOM型XSS 三、源码分析 1、打开DOM-X型XSS关卡 2、XSS探测 3、源码分析 四、渗透实战 1、Payload1 2、Payload2 3、Payload3 五、DOM型XSS与DOM-X型XSS区别 本系列为通过《pikachu靶场通关笔记》的XSS攻击关卡(共10关&#xff09;渗透集合&#xf…

湖北理元理律所:企业债务重组中的“法律缓冲带”设计

一、担保链危机的法律拆解技术 中小企业债务困局多源于担保链蔓延。本所处理某制造企业案例时&#xff0c;运用三层法律工具阻断风险传导&#xff1a; 1. 主合同审查 → 发现银行擅自变更借款用途 → 援引《民法典》第695条解除担保 2. 股东责任切割 → 证明企业财产独立 …

调整数据集的方法

我们对worldquant中的数据&#xff0c; 对数据频率怎么算 在 WorldQuant 平台中&#xff0c;数据更新频率是影响量化策略有效性、回测准确性和实盘交易表现的核心因素之一。它决定了数据的时效性和连续性&#xff0c;直接关系到策略能否捕捉市场动态、应对突发事件或适应不同…

[Linux] Linux 系统从启动到驱动加载

Linux 系统从启动到驱动加载 文章目录 Linux 系统从启动到驱动加载一、硬件上电与 BIOS/UEFI 阶段1. 1 硬件上电初始化1.2 BIOS/UEFI执行过程1.3 Bootloader加载细节 二、Bootloader 阶段三、Linux 内核初始化3.1 架构相关初始化&#xff08;setup_arch&#xff09;3.2 核心子系…

Spring Boot DevTools 热部署

在Spring Boot项目中加入 spring-boot-devtools 热部署依赖启动器后&#xff0c;通常不需要手动重启项目即可让更改生效。spring-boot-devtools 的核心特性之一就是自动重启或热加载。 Spring Boot DevTools 热部署关键知识点 &#x1f525; 目的&#xff1a;spring-boot-devt…

uni-app学习笔记十五-vue3页面生命周期(二)

onShow&#xff1a;用于监听页面显示&#xff0c;页面每次出现在屏幕上都触发&#xff0c;包括从下级页面点返回露出当前页面&#xff1b; onHide:监听页面隐藏&#xff0c;当离开当前页面时触发。 示例代码&#xff1a; <template><view>姓名&#xff1a;{{nam…

LIKE ‘%xxx%‘ 和 LIKE ‘xxx%‘ 的索引影响分析

LIKE ‘%xxx%’ 和 LIKE ‘xxx%’ 的索引影响分析 一、基础概念解析 1.1 LIKE操作符的工作原理 LIKE是SQL中用于模式匹配的操作符,支持两种通配符: %:匹配任意数量字符(包括零个字符)_:匹配单个字符go专栏:https://duoke360.com/tutorial/path/golang 1.2 数据库索引…

【软件测试】测试框架(unittest/pytest)

本文介绍了Python 中最常用的两个测试框架&#xff1a;unittest 和 pytest&#xff0c;帮助你编写更规范、可维护的自动化测试用例。 一、unittest 框架 unittest 是 Python 内置的标准库&#xff0c;无需额外安装&#xff0c;适合初学者入门。它借鉴了 JUnit 的设计理念&…

麒麟信安安装谷歌浏览器

参考文档 麒麟信安系统Chrome离线安装包&#xff1a;高效便捷的浏览器解决方案-CSDN博客 项目文件预览 - 麒麟信安系统Chrome离线安装包:本仓库提供了一个适用于麒麟信安系统的Chrome浏览器离线安装包。该安装包包含了所有必要的依赖文件&#xff0c;并且已经对系统中已有的依…