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 [题目描述 ...
随机推荐
- .NETCore项目在Windows下构建Docker镜像并本地导出分发到CentOS系统下
在Windows下使用Docker,我们选择Docker Desktop这个软件,非常方便. Docker Desktop介绍及安装 Docker Desktop是适用于Mac.Linux或Windo ...
- 【C#/.NET】探究Task中ConfigureAwait方法
目录 引言 ConfigureAwait方法的作用和原理 ConfigureAwait方法的使用场景 非UI线程场景 避免上下文切换 避免死锁 ConfigureAwait方法的注意事项 在UI ...
- ERP查询Q报表开发代码
一,按照一般ERP开发流程可参考ERP开发流程,直到下载程序. 当我们的查询页签存在栏位需要判断或者特殊处理时,在global中的自定义模组变数下添加,例如: 1 #add-point:自定義模組變數 ...
- .NET EF查询需要注意的点
记录下在公司中混乱使用跟踪和非跟踪查询的坑. var blog = context.Blogs.Single(b => b.BlogId == 1); // 查询时放回一条 如果存在多条引发异常 ...
- Vue基础技术之——数据绑定
Vue数据大致绑定分为两类: 1.单向数据绑定(v-bind): 数据只能从data流向页面. 2.双向数据绑定(v-model):数据不仅能从data流向页面,还能从页面流向data. 话不多说,先 ...
- CF546E Soldier and Traveling 题解
CF546E Soldier and Traveling 英文原题: 当然Luogu有中文翻译 对于这种类型的题目,又是增加,又是减少的,我们可以使用网络流进行转化. 说句废话: 网络流这个东西,趣味 ...
- 2023-07-12:RocketMQ如何做到消息不丢失?
2023-07-12:RocketMQ如何做到消息不丢失? 答案2023-07-12: RocketMQ通过刷盘机制.消息拉取机制和ACK机制等多种方式来确保消息投递的可靠性,防止消息丢失. 1.刷盘 ...
- DLL注入-Windows消息钩取
0x01 钩子 钩子,英文Hook,泛指钓取所需东西而使用的一切工具.后来延伸为"偷看或截取信息时所用的手段或工具". 挂钩:为了偷看或截取来往信息而在中间设置岗哨的行为 钩取:偷 ...
- Git:GitLab使用AD账户报错——remote: HTTP Basic: Access denied
错误原因 当第一次使用AD账户进入GitLab时,需要进行密码重置,之后重新登录并进行克隆操作即可.
- python将两个列表组合成元组
point_x = [A_x, B_x, C_x, D_x] point_y = [A_y, B_y, C_y, D_y] points_tulpe = list(zip(point_x, point ...