当前位置: 首页 > news >正文

CSP-J2025总结

这是第一次S和J可以同时参赛。

T1

很简单,把所有的数字找出来,然后从大到小输出即可。

可爱的代码^_^
#include<bits/stdc++.h>using namespace std;int n;
string s;
vector<int> v;bool cmp(int a,int b){return a>b;
}signed main(){freopen("number.in","r",stdin);freopen("number.out","w",stdout);cin >> s;n = s.length();for(int i = 0;i < n;++ i){if(s[i] >= '0'&&s[i] <= '9')v.push_back(s[i]-'0');}sort(v.begin(),v.end(),cmp);for(int i = 0;i < v.size();++ i)cout << v[i];return 0;}

T2

也很简单,找一下小R是第几名,算一下就可以了。

可爱的代码w_w
#include<bits/stdc++.h>using namespace std;int read(){int x = 0,y = 1;char ch = getchar();while(ch > '9'||ch < '0'){if(ch == '-') y = -1;ch = getchar();}while(ch >= '0'&&ch <= '9'){x = x*10+ch-'0';ch = getchar();}return x*y;
}void print(int x){char ch = x%10+'0';if(x < 10){printf("%c",ch);return;}print(x/10);printf("%c",ch);
}int n,m;
int a[105];bool cmp(int x,int y){return x>y;
}signed main(){freopen("seat.in","r",stdin);freopen("seat.out","w",stdout);n = read();m = read();for(int i = 1;i <= n*m;++ i)a[i] = read();int xr = a[1];sort(a+1,a+1+n*m,cmp);int w = 0;for(int i = 1;i <= n*m;++ i){if(a[i] == xr){w = i;break;}}int ls = (w+n-1)/n;int hs = w-(ls-1)*n;if(ls%2 == 0) hs = n-hs+1;print(ls);printf(" ");print(hs);return 0;}

T3

贪心。
从第一个开始,我们记录出现过哪些前缀异或和,每当有异或起来为\(k\)的时候,我们就以这个作为一段,再以这个的下一个为开始重新贪心,复杂度\(O(n)\)

可爱的代码o_o
#include<bits/stdc++.h>using namespace std;int read(){int x = 0,y = 1;char ch = getchar();while(ch > '9'||ch < '0'){if(ch == '-') y = -1;ch = getchar();}while(ch >= '0'&&ch <= '9'){x = x*10+ch-'0';ch = getchar();}return x*y;
}void print(int x){char ch = x%10+'0';if(x < 10){printf("%c",ch);return;}print(x/10);printf("%c",ch);
}int n,k;
int a[500005];
int hav[2000005];signed main(){freopen("xor.in","r",stdin);freopen("xor.out","w",stdout);n = read();k = read();for(int i = 1;i <= n;++ i)a[i] = read();int gs = 0;for(int i = 1;i <= n;){int sum = 0;hav[sum] = gs+1;int j = i;for(;j <= n;++ j){sum ^= a[j];if(hav[sum^k] == gs+1) break;hav[sum] = gs+1;}i = j+1;if(j <= n) gs++;}print(gs);return 0;}

T4

也是不算难。
首先先考虑比较好想的一个\(dp\),就是一个普通的\(01dp\)
首先肯定要从小到大排序。
\(dp_s\)代表总和为\(s\)的方案数,那么我们可以在这个往后的位置再找一个木棍,让那个木棍的长度小于\(s\)即可,记这样的木棍个数为\(x\),那么把\(dp_s*x\)累计到答案中。
这时候我们可以发现\(s > max{a_i}\)时是没用的,统一记在\(dp_{max{a_i}}\)中即可,那么我们的复杂度就优化为了\(O(n^2)\),就可以过了。

可爱的代码x_x
#include<bits/stdc++.h>#define int long long
#define mod 998244353using namespace std;int read(){int x = 0,y = 1;char ch = getchar();while(ch > '9'||ch < '0'){if(ch == '-') y = -1;ch = getchar();}while(ch >= '0'&&ch <= '9'){x = x*10+ch-'0';ch = getchar();}return x*y;
}void print(int x){char ch = x%10+'0';if(x < 10){printf("%c",ch);return;}print(x/10);printf("%c",ch);
}int n;
int a[5005];
int f[5005][5005];
int q[5005];
int w[5005];
int m;
int ans;signed main(){freopen("polygon.in","r",stdin);freopen("polygon.out","w",stdout);n = read();for(int i = 1;i <= n;++ i)a[i] = read(),m += a[i];sort(a+1,a+1+n);a[n+1] = a[n]+1;for(int i = 1;i <= n+1;++ i)for(int j = a[i-1]+1;j <= a[i];++ j)w[j] = i-1;f[0][0] = 1;for(int i = 1;i <= n;++ i){for(int j = 0;j <= a[n+1];++ j){ans += f[i-1][j]*max(0ll,w[min(j+a[i],a[n+1])]-i)%mod;ans %= mod;}for(int j = 0;j <= a[n+1];++ j){f[i][j] += f[i-1][j];f[i][j] %= mod;f[i][min(j+a[i],a[n+1])] += f[i-1][j];f[i][min(j+a[i],a[n+1])] %= mod;}}print(ans);return 0;}
http://www.jsqmd.com/news/47027/

相关文章:

  • nju实验二 译码器和编码器
  • 如何最低成本注册一个域名?
  • 第四十六篇
  • 2025年送礼水果排行榜权威推荐,拉吾尤摩赣南脐橙荣登榜首
  • AI救星!8个写毕业论文的实用AI工具大揭秘
  • 数据血缘图在数据错误追溯中的应用指南
  • Luogu P10778 BZOJ3569 DZY Loves Chinese II 题解 [ 紫 ] [ Xor Hashing ] [ 线性基 ] [ DFS 树 ]
  • CSS基础语法 - 指南
  • MineContext:我第一次感觉 AI 真正在“主动帮我管理生活”
  • NCHU OOP-BLOG1-电梯调度-23207329-姚子康 - 翊尘
  • 操作系统的基本概念
  • 「Temp」目录
  • Linksys HTTPd缓冲区溢出远程代码执行漏洞深度解析
  • .NET+AI | MEAI | Function Calling 基础(3)
  • 开发智联笔记项目时所遇问题(8)
  • 高中学习机五大品牌终极横评:优缺点一览,找到最适合你的那一款!
  • NCHU-23207335-面向对象程序设计-BLOG-1
  • 开发智联笔记项目时所遇问题(4)
  • 开发智联笔记项目时所遇问题(3)
  • 20251121周五日记
  • 卡码网94: bellman_ford算法
  • CrewAI 上手攻略:多 Agent 自动化处理复杂任务,让 AI 像员工一样分工协作
  • 题解:AT_agc067_d [AGC067D] Unique Matching
  • 开发智联笔记项目所遇问题
  • 计算机视觉——从环境配置到跨线计数的完整实现基于 YOLOv12 与质心追踪器的实时人员监控优秀的系统
  • 搜维尔科技:利用MANUS数据手套实现灵巧远程操作:对20自由度灵巧手进行控制
  • 2025-11-21 早报新闻
  • CTF reverse入门记录
  • 开发智联笔记项目时的js问题
  • nju实验一选择器