2023.09.29 入门级 J2 模拟赛 赛后总结(尝试第一篇总结)
T1:变换(change)

一道大水题.
赛场上想都没想就切掉了
不难发现,转换的过程只和a 和b 的二进制位有关,且不同二进制位之间无关。我们可以将a 和b 转化为二进制表示,每一位分别判断,如果这位不同,答案+1
1 #include<bits/stdc++.h>
2 using namespace std;
3 int main(){
4 freopen("change.in", "r", stdin);
5 freopen("change.out", "w", stdout);
6 long long a, b;
7 scanf("%lld%lld", &a, &b);
8 printf("%d\n", __builtin_popcountll(a ^ b));
9 return 0;
10 }
PS:__builtin_popcount()函数可以在O(1)的复杂的计算一个数二进制 1的个数而__builtin_popcountll() 是其的 long long 版本。
T2:打地鼠 (mouse)

赛场上略加思考就切掉了
1 #include<bits/stdc++.h>
2 using namespace std;
3 const int N=2e5+10;
4 int n,k,ans;
5 char s[N];
6 int main(){
7 freopen("mouse.in","r",stdin);
8 freopen("mouse.out","w",stdout);
9 scanf("%d%d%s",&n,&k,s+1);ans=0;
10 for(int i=1;i<=n;++i)
11 if(s[i]=='1') ++ans,i+=k-1;
12 printf("%d\n",ans);
13 return 0;
14 }
还是来证明一下吧,不然文章太短了( ̄▽ ̄)"
用反证法,假设不按这种方式进行贪心,那么打击范围会有重复即贡献会有重复,造成浪费,因此当前方式即为最优解!
T3:删除(delete)

1 #include <bits/stdc++.h>
2 #define ll long long
3 using namespace std;
4 const int N = 1e5 + 5;
5 vector<int> to[N];
6 bool flag[N];
7 ll total[N], mx, value[N], a[N], fa[N], u, v;
8 int find(int x) { return fa[x] == x ? x : fa[x] = find(fa[x]); }
9 int main() {
10 freopen("delete.in", "r", stdin);
11 freopen("delete.out", "w", stdout);
12 int n, m;
13 cin >> n >> m;
14 for (int i = 1; i <= n; i++) cin >> value[i];
15 while (m--) {
16 cin >> u >> v;
17 to[u].push_back(v);
18 to[v].push_back(u);
19 }
20 for (int i = n; i; i--) cin >> a[i];
21 vector<long long> ans = { 0 };
22 for (int i = 1; i <= n; i++) fa[i] = i;
23 for (int i = 1; i < n; i++) {
24 int u = a[i];
25 flag[u] = 1, total[u] = value[u];
26 mx = max(mx, total[u]);
27 for (int v : to[u]) {
28 if (!flag[v])
29 continue;
30 int x = find(v), y = u;
31 if (x != y) {
32 fa[x] = y;
33 total[y] += total[x];
34 mx = max(mx, total[y]);
35 }
36 }
37 ans.push_back(mx);
38 }
39 reverse(ans.begin(), ans.end());
40 for (long long answer : ans) cout << answer << " ";
41 }
T4:刮彩票(lottery)

赛场上状态转移方程没想清楚,70pts( ̄▽ ̄)",祭了
1 #include<bits/stdc++.h>
2 using namespace std;
3 const int N=2e5+10;
4 int n,f[N][2];
5 char s[N];
6 int main(){
7 freopen("lottery.in","r",stdin);
8 freopen("lottery.out","w",stdout);
9 scanf("%d%s",&n,s+1);
10 int la=0;
11 f[0][0]=-n;
12 for(int i=1;i<=n;++i)
13 if(s[i]=='B'){
14 f[i][0]=max(f[la][0]+i-la-1,f[la][1]);
15 f[i][1]=max(f[la][0],f[la][1])+i-la-1;
16 la=i;
17 }
18 printf("%d\n",max(f[la][0]+n-la,f[la][1]));
19 return 0;
20 }
总370pts
完结,撒花*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。
2023.09.29 入门级 J2 模拟赛 赛后总结(尝试第一篇总结)的更多相关文章
- [luogu#2019/03/10模拟赛][LnOI2019]长脖子鹿省选模拟赛赛后总结
t1-快速多项式变换(FPT) 题解 看到这个\(f(x)=a_0+a_1x+a_2x^2+a_3x^3+ \cdots + a_nx^n\)式子,我们会想到我们学习进制转换中学到的,那么我们就只需要 ...
- 【CYH-02】noip2018数论模拟赛:赛后题解
1.小奔的矩阵 2.大奔的方案 3.小奔与不等四边形 4.小奔的方案 当然本次比赛肯定难度不会仅限于此啦!后续还会--
- 6.29 省选模拟赛 坏题 AC自动机 dp 图论
考场上随手构造了一组数据把自己卡掉了 然后一直都是掉线状态了. 最后发现这个东西不是subtask -1的情况不多 所以就没管无解直接莽 写题有点晚 故没调出来.. 考虑怎么做 容易想到建立AC自动机 ...
- 5.29 省选模拟赛 树的染色 dp 最优性优化
LINK:树的染色 考场上以为这道题要爆蛋了 没想到 推出正解来了. 反正是先写了爆搜的 爆搜最近越写越熟练了 容易想到dp 容易设出状态 f[i][j]表示以i为根的子树内白色的值为j此时黑色的值怎 ...
- 5.29 省选模拟赛 波波老师 SAM 线段树 单调队列 并查集
LINK:波波老师 LINK:同bzoj 1396 识别子串 不过前者要求线性做法 后者可以log过.实际上前者也被我一个log给水过了. 其实不算很水 我自认跑的很快罢了. 都是求经过一个位置的最短 ...
- 3.29省选模拟赛 除法与取模 dp+组合计数
LINK:除法与取模 鬼题.不过50分很好写.考虑不带除法的时候 其实是一个dp的组合计数. 考虑带除法的时候需要状压一下除法操作. 因为除法操作是不受x的大小影响的 所以要状压这个除法操作. 直接采 ...
- contesthunter暑假NOIP模拟赛第一场题解
contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...
- NOIP模拟赛-2018.10.22
模拟赛 今天第一节课是历史,当然是不可能上的,一来到机房发现今天高二考试... 老师说以后可能还要给高一考...那还不如现在跟着做好了,毕竟在学长学姐中垫底显得没那么丢人 这套题风格挺奇怪的...为什 ...
- 洛谷 P5594 【XR-4】模拟赛
洛谷 P5594 [XR-4]模拟赛 洛谷传送门 题目描述 X 校正在进行 CSP 前的校内集训. 一共有 nn 名 OIer 参与这次集训,教练为他们精心准备了 mm 套模拟赛题. 然而,每名 OI ...
- 9.11 myl模拟赛
9.11 myl 模拟赛 100 + 100 + 0 第一题耗费了太多的时间,导致最后一题没有时间想,直接去写了暴力,而且出题人没有给暴力分.... Problem 1. superman [题目描述 ...
随机推荐
- Spring Boot实现高质量的CRUD-5
(续前文) 9.Service实现类代码示例 以用户管理模块为例,展示Service实现类代码.用户管理的Service实现类为UserManServiceImpl.UserManServi ...
- 在线免费ChatGPT,官方api
作为一款强大的语言模型,ChatGPT在自然语言处理领域享有较高声誉.现在,您可以在我们的在线平台上免费体验ChatGPT的功能了! 经过不断地优化和改进,我们的在线聊天机器人已经能够针对各种话题展示 ...
- Python编程和数据科学中的机器学习:如何处理和可视化具有噪声和干扰的数据
目录 随着数据科学和机器学习的快速发展,处理和分析具有噪声和干扰的数据成为了一个日益重要的挑战.在数据科学和机器学习中,噪声和干扰通常来自于各种因素,例如随机性和非随机性,数据缺失,数据集中的错误或错 ...
- 无缝数据转换!使用C++ 实现 Excel文件与CSV之间的相互转换
CSV格式是一种通用的文本文件格式,可在多个应用程序之间共享和使用.相比之下,Excel文件是一种电子表格格式,通常只能在Microsoft Excel中编辑和查看.因此,将Excel文件转换为CSV ...
- 【java-Err】 Generating equals/hashCode implementation but without a call to superclass,
@EqualsAndHashCode 默认不继承父类 修复此问题的方法很简单: 1. 使用@Getter @Setter @ToString代替@Data并且自定义equals(Object ot ...
- Python数据分析易错知识点归纳(三):Pandas
三.pandas 不带括号的基本属性 df.index # 结果是一个Index对象, 可以使用等号重新赋值,如: df.index = ['a', 'b', 'c'] df.columns # 结果 ...
- HTB靶场之OnlyForYou
准备: 攻击机:虚拟机kali. 靶机:OnlyForYou,htb网站:https://www.hackthebox.com/,靶机地址:https://app.hackthebox.com/mac ...
- 使用Locust进行分布式性能测试
Locust是一个强大的性能测试工具,用于评估系统的性能和可扩展性.本文将简洁地介绍使用Locust进行分布式性能测试的步骤和优势. 步骤: 1. 配置测试环境:在主节点和多个从节点上安装相同版本的L ...
- Unity的BuildPlayerProcessor:深入解析与实用案例
Unity BuildPlayerProcessor Unity BuildPlayerProcessor是Unity引擎中的一个非常有用的功能,它可以让开发者在构建项目时自动执行一些操作.这个功能可 ...
- Go的任务调度单元与并发编程
摘要:本文由葡萄城技术团队于博客园原创并首发.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 前言 本文主要介绍Go语言.进程.线程.协程的出现背景原因以及 ...