2025-2 挖土机周赛 Round 42总结

news/2025/3/5 0:53:23/文章来源:https://www.cnblogs.com/amcplayer/p/18751823

1.总结

一共6道题,共得308分,具体如下表

古老的仪式 耳机电量 滑雪场的“鱼雷” 谁赢了? 数1的个数 Bojack看哪吒2
90 100 18 0 100 0

2.题目分析

T1 古老的仪式

这就是一个约瑟夫环的模拟题,无非就是根据题意让人出去,然后反反复复进行这一操作就好了。

考试时当成了要经过一些处理的约瑟夫环,于是就90pts含泪收场(悲

T2 耳机电量

肥肠煎蛋,不讲了。

#include <bits/stdc++.h>
#define int long long
#define N 1000+10
#define mod 1000000007
using namespace std;
signed main()
{
// freopen("P2880_1.in", "r", stdin);
// freopen("god.out", "w", stdout);ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int n;cin>>n;int ans=(n/5)*10;n%=5;if(n!=0){ans+=n/0.5;}cout<<ans/60<<' '<<ans%60;return 0;
}

T3 滑雪场的“鱼雷”

本题最大的难点就是坐标的处理,处理完然后就是一个简单的追击和相遇问题了,两个人能撞上需要满足,两个人位置左右移动 1 个单位能撞上。这里需要注意,既然两个人都可以移动 1 个单位,那么其实就可以理解为,在小马 宽度信息 −2和 +2 的范围内,如果有别人,两个人就在宽度上会相遇,长度相遇的条件就是小马在某人后面,但是速度更快(他会撞到别人),或者小马在某个人前面,但是速度更慢(他会被别人撞到)。

然后就用代码进行答案的保存,输出的时候判重就好了。

#include <bits/stdc++.h>
#define int long long
#define N 1000+10
#define mod 1000000007
using namespace std;
int x, y, v, n, flag = 1;
int a[1010], b[1010], c[1010], cnt, ans[1010]; 
signed main()
{ios::sync_with_stdio(0);cin.tie(0);cin >> n;for(int i = 1; i <= n; i++) cin >> a[i] >> b[i] >> c[i];cin >> x >> y >> v;for(int i = 1; i <= n; i++){if(max(0, b[i] - 2) <= y && y <= min(b[i] + 2, 40)){if((x > a[i] && v < c[i]) || (x < a[i] && v > c[i])){double t = 1.0 * (x - a[i]) / (c[i] - v);int wz = t * v + x;if(wz <= 3000) {ans[++cnt] = wz;flag = 0;}}}}if(flag == 1) cout << "safe\n";else {sort(ans + 1, ans + 1 + cnt);for(int i = 1; i <= cnt; i++){if(ans[i] != ans[i - 1]) {cout << ans[i] << '\n';		}}}return 0;
}

T4 谁赢了?

无脑if,end.

#include<bits/stdc++.h>
using namespace std;
int a[10], b[10], f1, f2;
void check1()
{if(a[1] == a[2] && a[2] == a[3] && a[3] == a[4]){f1 = 1;return;}if(a[2] == a[3] && a[3] == a[4] && a[4] == a[5]){f1 = 1;return;}if(a[1] == a[2] && a[3] == a[4] && a[4] == a[5]){f1 = 2;return;}if(a[1] == a[2] && a[2] == a[3] && a[4] == a[5]){f1 = 2;return;}if(a[1] + 1 == a[2] && a[2] + 1 == a[3] && a[3] + 1 == a[4] &&a[4] + 1 == a[5]){f1 = 3;return;}if(a[1] == a[2] && a[2] == a[3]){f1 = 4;return;}if(a[2] == a[3] && a[3] == a[4]){f1 = 4;return;}if(a[3] == a[4] && a[4] == a[5]){f1 = 4;return;}if(a[1] == a[2] && a[3] == a[4]){f1 = 5;return;}if(a[2] == a[3] && a[4] == a[5]){f1 = 5;return;}if(a[1] == a[2] || a[2] == a[3] || a[3] == a[4] || a[4] == a[5]){f1 = 6;return;}f1 = 7;
}
void check2()
{if(b[1] == b[2] && b[2] == b[3] && b[3] == b[4]){f2 = 1;return;}if(b[2] == b[3] && b[3] == b[4] && b[4] == b[5]){f2 = 1;return;}if(b[1] == b[2] && b[3] == b[4] && b[4] == b[5]){f2 = 2;return;}if(b[1] == b[2] && b[2] == b[3] && b[4] == b[5]){f2 = 2;return;}if(b[1] + 1 == b[2] && b[2] + 1 == b[3] && b[3] + 1 == b[4] &&b[4] + 1 == b[5]){f2 = 3;return;}if(b[1] == b[2] && b[2] == b[3]){f2 = 4;return;}if(b[2] == b[3] && b[3] == b[4]){f2 = 4;return;}if(b[3] == b[4] && b[4] == b[5]){f2 = 4;return;}if(b[1] == b[2] && b[3] == b[4]){f2 = 5;return;}if(b[2] == b[3] && b[4] == b[5]){f2 = 5;return;}if(b[1] == b[2] || b[2] == b[3] || b[3] == b[4] || b[4] == b[5]){f2 = 6;return;}f2 = 7;
}
int mbin()
{ios::sync_with_stdio(0);cin.tie(0);for(int i = 1; i <= 5; i++) cin >> a[i];for(int i = 1; i <= 5; i++) cin >> b[i];sort(a + 1, a + 1 + 5);sort(b + 1, b + 1 + 5);check1();check2();if(f1 < f2) cout << "TooY0ung\n";else if(f1 > f2) cout << "TooSimple\n";else{for(int i = 5; i >= 1; i--){if(a[i] > b[i]){cout << "TooY0ung\n";return 0;}if(a[i] < b[i]){cout << "TooSimple\n";return 0;}}}return 0;
}

T5 数1的个数

同T2,不讲了

#include <bits/stdc++.h>
#define int long long
#define N 1000+10
#define mod 1000000007
using namespace std;
signed main() 
{int n;cin >> n;int count = 0; for (int i = 1; i <= n; ++i) {string number=to_string(i);for (char c : number) {if (c == '1') {count++; }}}cout<<count<<endl; return 0;
}

T6Bojack看哪吒2

这是个简单贪心,首先先保证把哪吒电影的时间段预留出来,然后优先看结束时间早的电影就行了。我认为时间转化为分钟更简单亿点。

#include<bits/stdc++.h>
using namespace std;
int n,ans,f;
struct st{string name;int a,b;
};
st p[105];
int time(string s){int w=((s[0]-'0')*10+(s[1]-'0'))*60+(s[3]-'0')*10+(s[4]-'0');return w;
}
bool cmp(st A,st B){if(A.b==B.b){return A.a>B.a;}return A.b<B.b;
}
int main(){cin>>n;for(int i=1;i<=n;i++){cin>>p[i].name;string s,e;cin>>s>>e;p[i].a=time(s);p[i].b=time(e);if(p[i].name=="nezha2"){ans++;f=1;}}sort(p+1,p+1+n,cmp);/***/
//	for(int i=1;i<=n;i++){
//		cout<<p[i].name<<' '<<p[i].a<<' '<<p[i].b<<endl;
//	}
//	cout<<endl;/***/if(f==1){int id;for(int i=1;i<=n;i++){if(p[i].name=="nezha2"){id=i;break;}}int t=0;for(int i=1;i<id;i++){if(t<=p[i].a){ans++;t=p[i].b;}if(t>p[id].a){ans--;break;}}t=p[id].b;for(int i=id+1;i<=n;i++){if(t<=p[i].a){ans++;t=p[i].b;}}}else{int t=0;for(int i=1;i<=n;i++){if(t<=p[i].a){ans++;t=p[i].b;}}}cout<<ans;
}

\[----------------- The \ end----------------- \]

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

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

相关文章

当懒惰遇上AI:我如何用Coze让大模型帮我整理2.5万字课程笔记

能写代码绝不动手,能用AI绝不写代码 —— AI粉嫩特攻队信条通过本文学会打造这个AI工具,只有一个要求:识字且会上网! 一个小困扰 有朋友最近在上一位大佬的线上直播课程,感叹道: "老师讲得很好但节奏太快,根本来不及记录详细笔记,只能速记要点。课后想不起完整内容又…

WiFiGrab教程1:一键抓包隐藏WiFi并获取SSID

介绍图形化无线安全审计软件WiFiGrab,并演示使用其抓包隐藏WiFi获取无线网络名称。WiFiGrab一键抓握手包 WiFiGrab是一款实用的无线安全审计软件,该软件使用简单,图形化操作界面,无需安装,一键启动,一键捕获握手报文。可自动显示隐藏SSID、支持2.4G和5G抓包。软件下载链接…

什么是变异测试?

一、变异测试的目的 变异测试是一种软件测试技术,用于评估测试用例的有效性。其核心思想是通过在源代码中引入人为的缺陷(称为“变异”),然后运行测试用例,检查这些变异是否被检测到。如果测试用例能够发现这些变异,说明它们有效;否则,测试用例可能需要改进。 二、变异…

离散数学学习笔记

离散数学学习笔记图关系计数基本结构命题

记录一下用烧录夹给M710Q刷魔改bios

买了一台nec7想尝试一下linux桌面系统,机器本来仅仅支持六到七代的CPU,一开始选择的是G4600,但在Ubuntu24.04 桌面环境下有些卡顿,浏览器开的比较慢,于是萌生了上八代U的想法 于是买了CH341A编程器和烧录夹,直接开干 首先一定要说的是,烧录夹真的很不好用,夹成功的完全…

win11家庭版安装wsl2

开启功能 新建一个xxx.bat,右键编辑,将下面这段代码粘贴进去,保存回到桌面,然后右键以管理员身份运行。 然后需要重启。 pushd "%~dp0" dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt for /f %%i in (findstr /i . hyper-v.txt 2^>n…

1。11

@所有人 网络安全C10-2025.1.11作业:对bluecms进行代码审计,分析复现文件上传、ssti模板注入、文件删除等漏洞2、复习ThinkPHP框架基础知识,重点掌握url传参方式以及获取用户参数的写法3、复习ThinkPHP框架漏洞,重点掌握框架代码执行漏洞及工具使用,了解sql注入漏洞及常见…

1。18

@所有人 网络安全C10-2025.1.18作业:安装jdk并配置多版本jdk切换脚本。安装并破解最新版IDEA,并汉化使用IDEA创建java项目,输出helloworld并打包使用IDEA进行调试,熟练掌握调试方法5、复习java se基础,重点掌握面向对象编程。6、申请deepseek key,安装chatbox、continue、…

Day03_vhdl学习的完善

VHDL代码功能: 针对七段数码管的译码器,将输入的bcd码转换为适合共阴极七段数码管的并行输出代码功能: 不同的结构体使同一实体实现不同功能 注:下次采用Typora自带代码功能插入代码 补充注释,增加注释量 完成设计作业,具有一定创新性和难度英语单词注:今天为第一次练习…

几只毛毛虫?

几只毛毛虫? 题目描述 一天,在生物课上,老师带着小羊和他的同学去公园观察动物。 他看到了草丛里有很多毛毛虫,于是他想,毛毛虫有什么特征呢? 于是他把一条毛毛虫抽象成了一棵有 $n$ 个节点的树。树是一个有 $n$ 个点 $n−1$ 条无向边组成的连通图。 这棵树被称为一条毛毛…

C基础1

基础回顾 Hello World到底是什么🤔 //预处理 #include <stdio.h> //include是找的意思,找到stdio这个头文件//.h是头文件的后缀,.c是c语言源文件的后缀,.cpp是c++源文件的后缀//std是standard标准,i是input输入,o是output输出 //程序的主入口 int main( ) //int表示…

我的Redission使用初体验

本文记录作者第一次使用Redission实现分布式锁的体验。对于碰到的问题进行了一些总结。当我们实际使用redis手写实现分布式锁时,会产生不可重入、不可重试、超时释放和主从一致的问题,此时redission为我们提供的锁完美达成以上要求,适合我们生产时使用。Redisson的实际使用 …