首页 > 其他分享 >CSP-J2024题解

CSP-J2024题解

时间:2024-11-05 22:16:30浏览次数:3  
标签:数字 扑克牌 题解 yy xx visd J2024 CSP 题意

T1 扑克牌

本题要求:在给定的扑克牌的基础上,还需要多少张牌可以让扑克牌凑成一整套,试题中读入的字符串每个都代表一张合法的扑克牌。

可以使用 C++ STL 中的 set(集合)完成本题。这是因为,set 可以自动去重,去除重复的牌(字符串)后,剩下的字符串就是实际拥有的不同的牌。而一副扑克牌有 52 张牌,使用 52 减去该集合的大小即可求出答案。 set <string> S;  S.insert(s); 

T2 地图探险

题意:题目链接。dfs模拟设置新的坐标xx,yy在不同的d下更新不同的xx,yy分别为

if(d==0) xx=x,yy=y+1;

if(d==1)xx=x+1,yy=y;

if(d==2)xx=x,yy=y-1;

if(d==3)xx=x-1,yy=y;

判断此时的xx>=1&&xx<=n&&yy>=1&&yy<=m&&a[xx][yy]=='.'  是继续搜索dfs(xx,yy,d,t+1);

否则 dfs(x,y,(d+1)%4,t+1); 换方向 t为执行的次数开头要确保t<=k次 t>k 就return;

同时此时标记走过的路程vis[x][y]=1;        

最后遍历vis[x][y]标记为1的个数ans++ 最后输出ans

注意!!!:多测清空!!!

T3 小木棍

题意

此题先看到数据范围:

题目给了明显的提醒n是7的倍数或n=7*k+1;

此时想到是一个规律题

0 1 2 3 4 5 6 7 8 9

6,2,5,5,4,5,6,3,7,6;

对应

现在前四十里面打表

不难发现有很多8并且是产生火柴最多的数字根据特殊性质发现规律 找出7的倍数和7的倍数+1的n

发现n%7余数为0时 全输出8 个数为n/7个。

余1时解释:n%7余数为1时 先输出10 剩下全输出8 个数为(n-8)/7个。 为了凑出7的倍数并且满足多加一个只能是7+1为8所以找数字中最小组成8个火柴的组合为10

其余同理

mans
110 后面 (n−8)​/7个8
21 后面 (n−2)/7个8
3200 后面 (n−17)/7​个8
420 后面 (n−11)/7个8
52 后面 (n−5)​/7个8
6

6 后面 (n−6)​/7个8

T4 接龙

题意:题目链接

简化题意:我们要找是否存在 r 个头尾相接、长度为 2∼k 的序列(第一个序列一定以1开头)。

发现是序列类的问题,首先考虑 dp。题目有三个关键条件:轮数、结尾数字、上一轮选择的行。

发现q<=1e5所以不能用q循环查询要O(1)查询

定义状态g[i][j][t]​表示在第i轮中,能否以第j个数字序列的第t个位置作为终点。

若 S[j][t]​=1,则f[1][j][t]​=true,否则f[1][j][t]​=false。

我们维护两个辅助数组(作为桶数组):

  1. visd[j][x]​表示在当前轮中,第1到j个数字序列是否能够到达值等于x的数字那么visd[j][S[j][t]]​​=visd[j−1][Sj][t]​​||g[i][j][t]​。
  2. visu[j][x]​表示在当前轮中,第j到n个数字序列是否能够到达值等于x的数字,那么visu[j][S[j][t]]​​=visd[j+1][S[j][t]​​||g[i][j][t]​。

维护好辅助数组visd和visu 后我们就可以实现f[i]到下一轮的转移

转移方程:f[i+1][j][t]​=visd[j−1][S[j][t]​​]||visu[j+1][S[j][t]]​​

设ans数组存g数组

最后输出ans中r,c对应的值即可

注意:多测清空,需要初始化,

标签:数字,扑克牌,题解,yy,xx,visd,J2024,CSP,题意
From: https://blog.csdn.net/2403_87651351/article/details/143527177

相关文章

  • CSP-S2024 山 西 迷 惑 行 为 大 赏
    前作CE之家A人叉叉人丢饭碗的车万人万事开头难人定义头文件人透气人逆行人系统治疗人多系统治疗人windows操作系统单推人缺失符号人转义人读入分号人零个小于人一个小于......
  • CSP2024 - J/S 年度总结大会报告
    CSP2024-J/S年度总结大会报告J组预估和总分都为:\(100+100+100+15=315.\)\(T_1,T_2\)还挺弱智的,就是没有\(15\min\)内\(A\)掉。\(T_3\)想了\(1h\)的完全背包做法加上\(1h\)的调试,真的慢(本质是对于\(dp\)没有深刻理解)。\(T_4\)是一个\(dp\),考场上没有想出来......
  • CSP2024 前集训:NOIP2024加赛 1
    前言赛时本来rk3,赛后自己加hack卡自己于是成rk4了。因为这场是假做法大战,T1假贪心有\(92pts\);T2\(O(n^2m)\)能过(是因为数据里\(m\le10\));T3相当抽象,赛时我打的爆搜只加了一个剪枝能得\(70pts\),赛后发现无解的时候会跑满,于是提前判掉无解就过了甚至最优解\(30ms\)......
  • CSP2024-S GD 迷惑行为大赏
    CSP2024-SGD迷惑行为大赏CSP2024-SGD迷惑行为大赏:编译错误(版本一)-caijianhong-博客园CSP2024-SGD迷惑行为大赏:编译错误(版本二)-caijianhong-博客园CSP2024-SGD迷惑行为大赏:英文注释-caijianhong-博客园CSP2024-SGD迷惑行为大赏:中文字符-caijianhong-......
  • ABC378 E 题解
    ABC378E题解题意给定序列\(A\),求\(\sum_{1\lel\ler\len}(\sum_{l\lei\ler}A_i\modM)\)计算所有区间和取模之后的结果再求和。注意外层是没有取模的。如果是外层也要取模的情况,那还是十分好办的,直接贡献法计算每个数字被统计了多少次就可以了。问题就在于外层没......
  • CSP 2024 反思
    考试经历上午考普及组,写了前三道题(T4看了两眼,感觉没思路,就没有细想),就开始休息了,本意是为了下午脑子能清醒一点.(结果脑子还是糊的)幸好成绩下来前三题没有挂分.(不然J1=都没有)提高组考前,也没有怎么再复习模板了,觉得越复习越昏,不如在床上睡一会儿.拿到考......
  • CSP2024 总结
    CSP2024总结目标第一题要写出来第二题尽量写出来,若写不出来就尽量把能拿的暴力和特殊性质都拿了第三题写出暴力与特殊性质第四题尽量写出暴力预计:180+场上情况刚开始10分钟用指针把T1给写出来了然后去看后面的题刚看到T2感觉不太会,于是打算写特殊性质A,B1.5个小......
  • 2024强网杯web题解
    PyBlocklyfromflaskimportFlask,request,jsonifyimportreimportunidecodeimportstringimportastimportsysimportosimportsubprocessimportimportlib.utilimportjsonapp=Flask(__name__)app.config['JSON_AS_ASCII']=Falseblacklis......
  • 2024newstarweb题解
    w1headach3会赢吗源码flag碎片X1:ZmxhZ3tXQTB3再次查看源码flag碎片X2:IV95NF9yM2Fs第三个页面也是直接查看源码直接改源码flag碎片X3:MXlfR3I0c1B下一个页面直接禁用jsflag碎片X4:fSkpKcyF9ZmxhZ3tXQTB3IV95NF9yM2FsMXlfR3I0c1BfSkpKcyF9base64解码即......
  • WPF程序弹出页中按钮在触摸屏(电容屏)上点击事件需要点十次才能触发的问题解决方法
    一、事件背景介绍1.功能简述:主页面是一个DataGrid列表,点击DataGrid行,弹出子页面;子页面根据数据加载多个Button按钮,如下图,就是这个页面中的按钮,在触摸屏上触摸点击,需要点击十次才能成功,使用鼠标点击一下就能成功。 主要代码如下://WPF前端<DataGridx:Name="scanDtl......