[CSP 2025]游记

news/2025/11/3 22:07:41/文章来源:https://www.cnblogs.com/liuruian/p/19188423

[CSP 2025]游记

CSP-J


$T1$


循环结构 $+$ 字符串,橙题,不说了肯定做出来了。

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define N 2000005 
int top,a[N];
string s;
signed main(){cin>>s,s=" "+s;for(int i=1;i<s.length();i++) if(s[i]>='0'&&s[i]<='9') a[++top]=s[i]-'0';sort(a+1,a+top+1);for(int i=top;i;i--) cout<<a[i]; return 0;
} 

$T2$


循环结构 $+$ 小学数学,橙题,不说了肯定做出来了。

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define N 2000005 
int n,m,x,y,cnt,a[N];
signed main(){cin>>n>>m;for(int i=1;i<=n*m;i++){cin>>a[i];if(a[i]>=a[1]) cnt++;}x=cnt/n+(cnt%n!=0);if(x%2==1) y=cnt-n*(x-1);else y=n-(cnt-n*(x-1))+1;cout<<x<<" "<<y<<endl; return 0;
} 

$T3$


贪心 $+$ 红黑树($map$),黄题,不说了肯定做出来了。

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define N 2000005 
int n,k,a[N],pre[N],cnt;
map<int,int>mp;
signed main(){cin>>n>>k;mp[0]=-1;for(int i=1,r=-1;i<=n;i++){cin>>a[i];pre[i]=pre[i-1]^a[i];if(mp[pre[i]^k]!=0&&mp[pre[i]^k]>=r) r=i,cnt++;mp[pre[i]]=i;}cout<<cnt<<endl;return 0;
} 

$T4$


普通背包 $+$ 出题人好心的帮忙解决了的数学部分,绿题,不说了肯定做出来了。

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define N 5005 
#define mx 5000
#define md 998244353
int n,a[N],dp[N],ans;
signed main(){cin>>n;for(int i=1;i<=n;i++) cin>>a[i];sort(a+1,a+n+1);dp[0]=1;for(int i=1;i<=n;i++){for(int j=a[i]+1;j<=mx+1;j++) ans=(ans+dp[j])%md;for(int j=mx+1;j>=mx+1-a[i];j--) dp[mx+1]=(dp[j]+dp[mx+1])%md;for(int j=mx;j>=a[i];j--) dp[j]=(dp[j]+dp[j-a[i]])%md;}cout<<ans<<endl; return 0;
} 

$对拍$


  • $T1$ 打了暴搜。
  • $T2$ 打了模拟。
  • $T3$ 打了暴搜。
  • $T4$ 打了状压。
    最后四个对拍一起跑了 $1$ 个小时。

遗憾监考老师强调不能玩 $dino$。


CSP-S


$T1$


  1. 先不管集合的数要 $\le \frac{n}{2}$ 的条件,贪心直接放。
  2. 如果数最多的集合的数 $> \frac{n}{2}$,取出放入其他集合后对答案影响最小的几个数,放入其他集合。可以证明,此时其他集合数的个数都会 $\le \frac{n}{2}$。
  3. 此时答案最优。

挺简单,不到半小时就调完了。

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define N 200005 
#define mx 5000
#define md 998244353
int t,n,a[N],ans;
struct PT{int p[N],top;}q[4];
bool cmp(PT a,PT b){return a.top>b.top;}
signed main(){cin>>t;while(t--){cin>>n;ans=q[1].top=q[2].top=q[3].top=0;for(int i=1,a,b,c;i<=n;i++){cin>>a>>b>>c;if(a>=b&&a>=c) q[1].p[++q[1].top]=min(a-b,a-c),ans+=a;else if(b>=c&&b>=a) q[2].p[++q[2].top]=min(b-a,b-c),ans+=b;else if(c>=b&&c>=a) q[3].p[++q[3].top]=min(c-b,c-a),ans+=c; }sort(q+1,q+3+1,cmp);for(int i=1;i<=q[1].top;i++) a[i]=q[1].p[i];sort(a+1,a+q[1].top+1);for(int i=1;i<=q[1].top-n/2;i++) ans-=a[i];cout<<ans<<endl;}return 0;
} 

$T2$


  1. 先求出 $n$ 个点 $m$ 条边的最小生成树。
  2. 状压 $k$ 个乡镇,与原先最小生成树的边一起再求最小生成树,更新答案。

时间复杂度 $O(m\log_{2}{m}+2^knk\log_{2}{k})$?不太对劲。造了个大数据,跑了 $3$ 秒,又调了一个小时,还是 $3$ 秒,最后相信评测机,不调了。

赛后在 $luogu$ 跑得飞快。

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define N 2000005 
int n,m,k,f[N],top,c[N],ans;
struct EDGE{int u,v,fr;}edge[N],p[15][20005];
struct VL{int fr,pt;}pp[N];
bool cmp(EDGE a,EDGE b){return a.fr<b.fr;}
bool cmpp(VL a,VL b){return a.fr<b.fr;}
int find(int w){return w==f[w]?w:f[w]=find(f[w]);} 
priority_queue<pair<int,pair<int,int> >,vector<pair<int,pair<int,int> > >,greater<pair<int,pair<int,int> > > >q;
signed main(){scanf("%lld%lld%lld",&n,&m,&k);for(int i=1;i<=m;i++) scanf("%lld%lld%lld",&edge[i].u,&edge[i].v,&edge[i].fr);sort(edge+1,edge+m+1,cmp);for(int i=1;i<=m;i++) f[i]=i;for(int i=1;i<=m;i++){if(find(edge[i].u)==find(edge[i].v))continue;p[0][++top]=edge[i],ans+=edge[i].fr;f[find(edge[i].u)]=find(edge[i].v),find(edge[i].u);}for(int i=1;i<=k;i++){scanf("%lld",&c[i]);for(int j=1;j<=n;j++) scanf("%lld",&pp[j].fr),pp[j].pt=j;sort(pp+1,pp+n+1,cmpp);for(int j=1;j<=n;j++) p[i][j].u=n+i,p[i][j].v=pp[j].pt,p[i][j].fr=pp[j].fr;}for(int i=1;i<(1<<k);i++){while(!q.empty())q.pop();int anss=0,up=n-1,top=0;q.push({p[0][1].fr,{0,1}});for(int j=1;j<=k;j++) if((i>>(j-1))&1) q.push({p[j][1].fr,{j,1}}),up++,anss+=c[j];for(int i=1;i<=n+k;i++) f[i]=i;while(top!=up){int x=q.top().second.first,y=q.top().second.second;q.pop();if(p[x][y+1].u!=0) q.push({p[x][y+1].fr,{x,y+1}});if(find(p[x][y].u)==find(p[x][y].v))continue;++top;f[find(p[x][y].u)]=find(p[x][y].v),find(p[x][y].u);anss+=p[x][y].fr;}ans=min(anss,ans);}printf("%lld\n",ans);return 0;
} 

$T3$


写了个接近 $100$ 行的 $trie+hash$, 在比赛还剩 $5$ 分钟才能运行,最后小样例过了,大样例没过,绝对 $TLE$。

无代码。

$T4$


只看了题。


预估

$T1$ $T2$ $T3$ $T4$ $sum$
J 100 100 100 100 $\le 400$
S 100 100 0 0 200

希望吧。

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

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

相关文章

CF Pinely Round 5(#2161) 总结

CF Pinely Round 5(#2161) 总结 A~D A:每次都取到尽量小(对 \(0\) 取 max)即最优。 B:特判掉 2*2 的情况,剩下的情况只能是一条不断转弯的「斜线」,此时所有点都在两条相邻的斜线上,只需判断 \(x+y\) 的最值,或…

第14天(中等题 滑动窗口、哈希表)

打卡第十四天 2道中等题题目: 给你一个二元数组 nums ,和一个整数 goal ,请你统计并返回有多少个和为 goal 的 非空 子数组。 子数组 是数组的一段连续部分。 思路:代码: class Solution { public:int numSubarraysW…

寂静处的回响

任城外风景如何鲜艳,城中人总守着那处寂静的湖,湖面里映着虚幻的碧海蓝天。自幼时有记忆以来,那毒针便一直盘根,慢性的消磨着我的精神。 看着同龄人能穿透绿叶的纯粹,时常幻想自己能拥有哪怕一分一毫,可更不敢奢…

收藏!强化学习从入门到封神:5 本经典教材 + 8 大实战项目 + 7个免费视频,一站式搞定 - AI

原文:https://mp.weixin.qq.com/s/nfN0dWT3ZfDuW7ZGfaG6dA 学习资源 经典教材 《大模型算法:强化学习、微调与对齐》原创 100+ 架构图,系统讲解大模型、强化学习,涵盖:LLM / VLM 等大模型原理、训练算法(RL、RLH…

P2757 [国家集训队] 等差子序列 题解

SolutionLink 好题。考虑简化题意:找一个 \(|p| \geq 3\) 的序列 \(p\) 使得 \(A_{p_i}\) 呈现等差数列,那我们找一个三个数的等差数列就可以了。中间值是特殊的,我们枚举中间值,判断左右两边是否存在一个公差相等…

拾壹月Ⅲ

摆了一天,非常困,啥也没写,大部分不是口胡就是看题解。 打球 MX noip Round1 T1 很快就会了,没修改的时候最优的肯定是最大值加上最小的,直接排序求最大最小值即可。 而对于修改 \(a_x=v\) ,不妨设修改是变小的:…

20251103周一日记

20251103周一日记这周任务好多啊:哥哥结婚 两个课汇报 高数课答疑 实验助教 科研的 今日: 1.早上一觉醒来胸口疼,好像是压到了。洗个澡吃完饭回学校。 2.下午回实验室网很卡,把上周张老师发的毕设文章读完了。开始…

Window 安装多个 MySQL 实例 - Higurashi

当前已经安装了 MySQ(8.3.0),因为有时会需要用到多套系统数据(比如测试生产各一套数据),为了避免数据库名称冲突,希望安装多个 MySQL 实例。停止现有 MySQL 复制D:\soft\mysql-8.3.0-winx64\my.ini到D:\soft\my…

普赛斯

普赛斯关于我们-武汉普赛斯电子|全球光电芯片测试方案领跑者

claude code+openspec开发java代码基本流程

0️⃣ 准备:一次装好,终身可用 # 1. 装 Node ≥20 node -v # 出现 v22+ 就行# 2. 装 OpenSpec(规范驱动) npm i -g @fission-ai/openspec@latest# 3. 装 Claude Code(AI 编码) npm i -g cl…

【C】结构体赋值

结构体赋值 例如: #include <stdio.h> #include <string.h>struct Inner {int x;char name[20]; };struct Outer {int id;struct Inner inner; }; 初始化赋值(定义时): struct Outer o1 = {.id = 1,.i…

Office 2024 专业增强版下载安装教程:安装/下载/激活/全流程教程

大家好!最近总有朋友问 “Office 2024 专业增强版怎么装”“在哪能下安全的 Office 2024 安装包”,今天特意整理这份超详细的 Office 2024 专业增强版下载安装教程,从电脑能不能装的配置要求,到安全下载 Office 20…

Office 2024 专业增强版下载安装教程:安装/下载/激活/全流程教程

大家好!最近总有朋友问 “Office 2024 专业增强版怎么装”“在哪能下安全的 Office 2024 安装包”,今天特意整理这份超详细的 Office 2024 专业增强版下载安装教程,从电脑能不能装的配置要求,到安全下载 Office 20…

模拟赛 29

T1模拟即可,请输入文本。点击查看代码 #include<bits/stdc++.h> #define MAXN 10005 #define int long long using namespace std; const int inf=1e18; string tmp,ans[20]; int T,n,cnt,pos; char c[1005]; s…

11.3阅读笔记

​​1. 变化是必然的:拥抱“柔性”设计​​ “柔性设计”不是指设计能预测所有变化,而是指当变化来临时,​​修改所造成的连锁反应被降到最低​​。这直接回到了我们10月份讨论的​​正交性​​和​​DRY原则​​。…

fhq treap笔记

fhq(范浩强) treap 基本的操作就是split以及merge 需要pushup来维护siz属性的正确性 split分为按val以及按rank 用kth来得到第k个数的值 反过来,如果是一个排列的话,可以用维护出来的每个节点的fa以及pos来得到排名…

K8S最全详解 - 智慧园区

K8S K8S,全程是“Kubernetes”,是一个开源的容器编排平台,用于自动化应用的 部署、扩展和管理。 K8S,最早由 Google 开发,后捐赠给 CNCF,如今已经成为 云原生领域的事实标准。 K8S 解决了在生产环境中管理大量容…

11/3

今天下午Java考试,惊险度过

ICPC2025 武汉站 游记

rk11-北京大学-请输入文本 Pre 贵校的竞争还是太激烈了,在前两次选拔赛打炸的情况下最后一场极限翻盘,苟到了一个 ICPC 区域赛名额。 参加的网络赛 2 因为某个队友睡过头了所以只有两个人,打的也一坨,喜提 #161。 …

25.11.03

AGC003E 哎我好菜怎么这个题卡半天。 首先想到可以把 \(a_i\) 单调栈干掉,然后倒着扫求出前面要重复多少次。 但是会剩下一段,需要单独做。 先不要想太复杂,考虑如何暴力,因为额外部分只关心长度和次数,因此设计一…