【训练记录】山东济南齐鲁工业大学ACM集训队第二次入队赛同步赛(场外VP)

news/2024/10/7 21:31:57/文章来源:https://www.cnblogs.com/longxingx/p/18450507

https://icpc.qlu.edu.cn/contest/66ed8b746002253a77c10d5e

训练情况

场外 rk#2 AK

赛后反思

A题太菜了,没看出来是01背包DP,往前缀和上面想了,写了个假做法。

B题又不认真看题,忘记了 \(= 0\) 的情况。

C题博弈论乱猜

D题未考虑完全导致一次WA

A题

分两组,两组和相同,观察数据范围我们考虑 01 背包,先求出所有的和。显然,如果和为奇数则无法分组,当为偶数的时候,判断能否取出 \(\frac{sum}{2}\) 即可

#include <bits/stdc++.h>
#define int long longusing namespace std;const int N = 1e7 + 3;int dp[N];void solve(){int n; cin>>n;vector<int> a(n + 1);int sum = 0;dp[0] = 1;for(int i = 1;i<=n;i++) cin>>a[i],sum+=a[i];if(sum&1){cout<<"No"<<endl;return;}for(int i = 1;i<=n;i++){for(int j = sum/2;~j;j--){if(j-a[i] < 0) continue;if(dp[j-a[i]]) dp[j] = dp[j-a[i]];}}if(dp[sum/2]) cout<<"Yes"<<endl;else cout<<"No"<<endl;
}signed main(){// int T; cin>>T; while(T--)solve();return 0;
}

B题

找没被区间覆盖的点,考虑差分了再前缀和,坑点:\(0\) 也算。

#include <bits/stdc++.h>
#define int long longusing namespace std;const int N = 1e6 + 3;
int a[N];void solve(){int n,m; cin>>n>>m;for(int i = 1;i<=m;i++){int l,r; cin>>l>>r;a[l]++,a[r+1]--;}for(int i = 1;i<=n;i++) a[i]+=a[i-1];int ans = 0;for(int i = 0;i<=n;i++) if(!a[i]) ans++;cout<<ans<<endl;
}signed main(){// int T; cin>>T; while(T--)solve();return 0;
}

C题

逆天我不会的博弈论,逆天后手必胜的结论,通过玩 \(n \le 4\) 的样例,大胆猜测后手必胜

我又会了,后手有一个必胜策略,就是跟着先手的人走中心对称的那条边,最后出现一个正方形三条边的情况,直接去占即可

#include <bits/stdc++.h>
#define int long longusing namespace std;void solve(){cout<<"Tianmingren"<<endl;
}signed main(){// int T; cin>>T; while(T--)solve();return 0;
}

D题

考虑什么时候走不到 \(n\),当某一位为零的时候,并且前面的点没有办法跨过这个 \(0\)。维护一个最右的边界,同时遇到 \(0\) 判断即可,如果无法跨过答案就是 No,否则 Yes。

#include <bits/stdc++.h>
#define int long longusing namespace std;void solve(){int n; cin>>n;vector<int> a(n + 1);for(int i = 1;i<=n;i++) cin>>a[i];int last = 0;for(int i = 1;i<n;i++){if(a[i]) last = max(last,i+a[i]-1);if(!a[i] && last < i){cout<<"No"<<endl;return;}}cout<<"Yes"<<endl;
}signed main(){// int T; cin>>T; while(T--)solve();return 0;
}

E题

快读模板 + %99

#include <bits/stdc++.h>
#define int long longusing namespace std;inline int read(){int s = 0; char c = getchar();while(!isdigit(c))  c = getchar();while(isdigit(c)){s = (s << 1) + (s << 3) + (c ^ 48);s%=99;c = getchar();}return s;
}int ans = 0;void solve(){int x; x = read();if(!x) ans++;
}signed main(){int T; cin>>T; while(T--)solve();cout<<ans<<endl;return 0;
}

F题

模拟题,我们发现字母的位置是两倍的 \(i\)\(j\),其他都是 # 号。

#include <bits/stdc++.h>
#define int long longusing namespace std;const int N = 8007;char ans[N][N];void solve(){int n,m; cin>>n>>m;vector<string> s(n + 1);for(int i = 0;i<n;i++) cin>>s[i];for(int i = 0;i<n;i++){for(int j = 0;j<m;j++){if(s[i][j] >= 'A' && s[i][j] <= 'Z') s[i][j]+=32;else s[i][j] -= 32;}}for(int i = 0;i<n;i++){for(int j = 0;j<m;j++){ans[(i+1)*2][(j+1)*2] = s[i][j];}}for(int i = 1;i<=2*n+1;i++){for(int j = 1;j<=2*m+1;j++){if(!ans[i][j]) ans[i][j] = '#';}}for(int i = 1;i<=n*2+1;i++){for(int j = 1;j<=m*2+1;j++){cout<<ans[i][j];}cout<<endl;}
}signed main(){// int T; cin>>T; while(T--)solve();return 0;
}

G题

单调不降,我们可以发现减少前面的较大值比增加后面的较小值要更优,减小前面的最大值会让数列变得更容易单调不降,维护一个当前的最大值(考虑 \(O(nlogn)\) 优先队列),若出现比他还小的替换掉当前最大值更新答案即可

#include <bits/stdc++.h>
#define int long longusing namespace std;priority_queue<int> q;int ans;void solve(){int x; cin>>x;q.push(x);if(x<q.top()){ans+=q.top()-x;q.pop();q.push(x);}	
}signed main(){int T; cin>>T; while(T--)solve();cout<<ans<<endl;return 0;
}

H题

天数要向上取整,观察到取模有很好的周期性,把星期都偏移到 \(0 \sim 6\) 上,然后取模即可,然后再加回来

#include <bits/stdc++.h>
#define int long longusing namespace std;void solve(){int x,y,a; cin>>x>>y>>a;int add = (x+(y-1))/y;a--;a+=add;a%=7;a++;cout<<a<<endl;
}signed main(){// int T; cin>>T; while(T--)solve();return 0;
}

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

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

相关文章

期末考试复习宝典P19题7:特征图大小的计算(当计算得到小数时)

https://blog.csdn.net/qfqf123456/article/details/112389559#:~:text=本文介绍了如何计算卷 题目:输入图片大小为200乘200,依次经过一层卷积(kernel size 5乘5, padding 1,stride 2),pooling(kernel size 3乘3, padding 0,stride 1),又一层卷积(kernel size 3乘3, …

IDEA如何快速定位到当前打开文件所在的目录

前言 我们在使用IDEA开发时,经常需要知道当前打开的文件是在哪个目录,这个可以在上方看到具体的目录。 但是,当我们需要知道这个目录下有哪些文件或者想要复制当前文件的时候,就需要快速定位当前文件的目录了。 那么,我们应该如何操作呢? 如何操作定位当前打开文件目录 首…

Vulnhub 靶机 THE PLANETS: EARTH

0x01信息收集 1.1、nmap扫描 IP段扫描,确定靶机地址 平扫描 nmap 192.168.1.0/24扫描结果(部分) Nmap scan report for earth.local (192.168.1.129) Host is up (0.0015s latency). Not shown: 983 filtered tcp ports (no-response), 14 filtered tcp ports (admin-prohib…

基于 Prometheus+Grafana+Alertmanager 搭建 K8S 云监控告警平台(附配置告警至QQ、钉钉)

目录一、机器规划二、部署安装 node-exporter、prometheus、Grafana、kube-state-metrics1、创建 monitor-sa 命名空间2、安装node-exporter组件2.1、说明2.2、应用资源清单2.3、通过node-exporter采集数据3、k8s 集群中部署 prometheus3.1、创建一个 sa 账号3.2、将 sa 账号 m…

2024.10.7 鲜花

【UNR #3】百鸽笼【UNR #3】百鸽笼花の塔 君が持ってきた漫画 くれた知らない名前のお花 今日はまだ来ないかな? 初めての感情知ってしまった 窓に飾った絵画をなぞってひとりで宇宙を旅して それだけでいいはずだったのに 君の手を握ってしまったら 孤独を知らないこの街には…

基于 Prometheus+Grafana+Alertmanager 搭建 K8S 云平台系统(附配置告警至QQ、钉钉)

目录一、机器规划二、部署安装 node-exporter、prometheus、Grafana、kube-state-metrics1、创建 monitor-sa 命名空间2、安装node-exporter组件2.1、说明2.2、应用资源清单2.3、通过node-exporter采集数据3、k8s 集群中部署 prometheus3.1、创建一个 sa 账号3.2、将 sa 账号 m…

软件工程第二次结对作业

软件工程 https://edu.cnblogs.com/campus/fzu/SE2024作业要求 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13281作业目标 基于第一次结对作业项目程序的实现学号 102201127合作伙伴 102201129项目分工: 102201129周鑫: 前端开发: 设计和实现用户界面。 确保界面响…

20241007

sequence 我们会发现,我们每次删的一定是长度最短的那个,所以我们可以最开始按照长的排一下序,然后用线段树维护每一个区间中还有几个数,每次加上答案后在两个端点打上标记即可 #include <bits/stdc++.h> #define _1 (__int128)1using namespace std; using ll = long lo…

软件工程week2课程作业|“物品复活“软件开发

“物品复活”软件开发 作业要求 大学生经常有些物品觉得扔掉可惜,不处理又觉得浪费自己的地方。请你编写一个物品“复活”软件 该程序允许添加物品的信息(物品名称,物品描述,联系人信息),删除物品的信息,显示物品列表,也允许查找物品的信息 你实现的程序可以采用命令行…

[42] (多校联训) A层冲刺NOIP2024模拟赛03

今天的乐子今天的乐子2 昨天晚上做梦 梦见自己被关进戒网瘾学校 里面的老师全和疯子一样 然后我和这帮疯子老师比疯 疯子老师发现他们没我疯 所以就把我放了今天的乐子3 lhx 罗曼蒂克的辟谷A.五彩斑斓 赛时的想法 \(n^4\) 的做法,设 \(f_{i,j,k,l}\) 表示以 \((i,j)\) 为左上角…

Metasploit渗透测试框架学习(一)基本使用教程

1.Metasploit框架结构 1.1总览基础库文件Rex为最底层,实现网络套接字、网络应用协议、客户端服务端交互、数据库支持等 framework-core实现与上层模块交互的接口 framework-base对framework-core的扩展封装,用于提供各种接口供用户调用基于framework-base实现的六大模块Explo…

统计学(十三)——相关分析

img { display: block; margin-left: auto; margin-right: auto } table { margin-left: auto; margin-right: auto } 相关分析是用于研究多个变量之间相互关系的统计方法,最早由英国统计学家卡尔皮尔逊(Karl Pearson)于1896年提出。皮尔逊通过对变量间线性关系的深入研究,…