学弟模拟赛题解报告 - idle

news/2025/10/26 16:36:44/文章来源:https://www.cnblogs.com/idle-onlooker/p/19164213

验题报告 by idle_onlooker

T1sword

比较简单晦气的模拟。
注意点:

  • 1.输出的 \(id\) 是初始编号而不是当前位置。
  • 2.使用【寒川映月】时记得判断两边是否都有人。
  • 3.如果受到伤害大于当前血量则输出为当前血量。

最后按照题意模拟即可。
\(code:\)

//为什么要攀登?因为山就在那里。
#include<bits/stdc++.h>
#define mrx 0x7f7f7f7f7f7f7f7f
#define int long long
using namespace std;
inline int read(){int num=0,flag=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') flag=-1;ch=getchar();}while(ch>='0'&&ch<='9'){num=(num<<3)+(num<<1)+(ch^48);ch=getchar();}return num*flag;
}
inline void write(int num){if(num<0) putchar('-'),num=-num;if(num>9) write(num/10);putchar(num%10+'0');
}
inline void print(int num){write(num);putchar('\n');
}
inline void out(int num){write(num);putchar(' ');
}
inline int ksm(int a,int b,int mod){int ans=1;while(b){if(b&1) ans=ans*a%mod;a=a*a%mod,b>>=1;}return ans;
}
int n,x,y;
struct per{int hea,id;
}a[110];
int now;
int flag;
void solve(){for(int i=1;i<=now;i++){if(a[i].hea<=0){now--;for(int j=i;j<=now;j++) a[j]=a[j+1];i=0;//进行下一次循环时i会自动++,所以从头开始要把i赋值成0。}}
}
void harm(int id,int x){if(a[id].hea>=x) cout<<"T="<<flag<<" id="<<a[id].id<<" d="<<x<<'\n';else cout<<"T="<<flag<<" id="<<a[id].id<<" d="<<a[id].hea<<'\n';a[id].hea-=x;
}
signed main(){now=n=read(),x=read(),y=read();for(int i=1;i<=n;i++) a[i].hea=read(),a[i].id=i;while(1){flag++;if(!now) break;if(flag%3==0){int k=(now+1)>>1;if(k!=1) harm(k-1,y);harm(k,y);if(k!=now) harm(k+1,y);}else harm(1,x);solve();}return 0;
}
/**/

注意代码不要写的太屎山,尽量写的逻辑清楚一些。
难度:
代码难度:\(CSP-J\;T2+eps\)
阅读难度:\(CSP-J\;T2+eps\)
思维难度:\(CSP-J\;T1.5\)
有点难了,但是问题不大。
*注:\(T1\) 题目改了 \(6\) 遍,std 还错了一次,我验题的时候差点崩溃了。

T2climb

直接枚举使用第二种方式的次数即可,时间复杂度\(O(\frac{w}{k})\)
当然,你枚举第一种方式也是可以的。
\(code:\)

//为什么要攀登?因为山就在那里。
#include<bits/stdc++.h>
#define mrx 0x7f7f7f7f7f7f7f7f
#define int long long
using namespace std;
inline int read(){int num=0,flag=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') flag=-1;ch=getchar();}while(ch>='0'&&ch<='9'){num=(num<<3)+(num<<1)+(ch^48);ch=getchar();}return num*flag;
}
inline void write(int num){if(num<0) putchar('-'),num=-num;if(num>9) write(num/10);putchar(num%10+'0');
}
inline void print(int num){write(num);putchar('\n');
}
inline void out(int num){write(num);putchar(' ');
}
inline int ksm(int a,int b,int mod){int ans=1;while(b){if(b&1) ans=ans*a%mod;a=a*a%mod,b>>=1;}return ans;
}
int w,h,k,t;
int ans1=mrx,ans2;
signed main(){w=read(),h=read(),k=read(),t=read();for(int i=0;i*k<=w;i++){int num=max(0ll,h-t*i)+i*k;int tms=i*2+max(0ll,h-t*i);if(num>w) continue;if(tms<ans1){ans1=tms;ans2=w-num;}if(tms==ans1) ans2=min(ans2,w-num);}if(ans1==mrx) write(-1);else out(ans1),write(ans2);return 0;
}
/**/

值得一提的是,这道题搜索+卡时+大力剪枝能够获得\(98pts\)
\(code:\)

//为什么要攀登?因为山就在那里。
#include<bits/stdc++.h>
#define mrx 0x7f7f7f7f7f7f7f7f
#define int long long
using namespace std;
inline int read(){int num=0,flag=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') flag=-1;ch=getchar_unlocked();}while(ch>='0'&&ch<='9'){num=(num<<3)+(num<<1)+(ch^48);ch=getchar_unlocked();}return num*flag;
}
inline void write(int num){if(num<0) putchar_unlocked('-'),num=-num;if(num>9) write(num/10);putchar_unlocked(num%10+'0');
}
inline void print(int num){write(num);putchar('\n');
}
inline void out(int num){write(num);putchar(' ');
}
inline int ksm(int a,int b,int mod){int ans=1;while(b){if(b&1) ans=ans*a%mod;a=a*a%mod,b>>=1;}return ans;
}
int w,h,k,t;
int ans1=mrx,ans2;
int solve(int x){if(x<=0) return 0;return min({x,x/t*2+(x-x/t*t),((x-1)/t+1)*2});
}
int use_min(int x){if(x<=0) return 0;return min({x,x/t*k+(x-x/t*t),((x-1)/t+1)*k});
}
void dfs(int now,int num,int tim){if((double)clock()/CLOCKS_PER_SEC>0.08) return;//卡时,代码运行时间>0.08s直接退出搜索。if(num<0) return ;if(tim>ans1) return ;if(tim==ans1&&num>=ans2) return ;if(tim+solve(h-now)>ans1) return ;if(use_min(h-now)>num) return ;if(now>=h){if(tim<ans1){ans1=tim;ans2=num;}else if(tim==ans1) ans2=max(ans2,num);return ;}if(k<t){dfs(now+t,num-k,tim+2);dfs(now+1,num-1,tim+1);}else{dfs(now+1,num-1,tim+1);dfs(now+t,num-k,tim+2);}
}
signed main(){w=read(),h=read(),k=read(),t=read();//w:体力h:山的高度k:消耗体力t:爬升高度dfs(0,w,0);if(ans1==mrx) write(-1);else out(ans1),write(ans2);return 0;
}
/**/

原本此题的数据范围是现在的十分之一,时间也是现在的十倍,但是由于我太会剪枝,导致搜索能够直接\(AC\),出题人迫不得已做出了更改。
难度:
代码难度:\(CSP-J\;T1.5\)
阅读难度:\(CSP-J\;T1.5\)
思维难度:\(CSP-J\;T2\)
还算是比较友好的,感觉把这道题放\(T1\)会好一些。

T3decipher

考虑统计所有\(y\)对答案的贡献,对于下标为\(i\)\(s_i=y\),他对答案的贡献为\(s_1\sim s_{i-1}\)\(x\)的数量乘上\(s_{i+1}\sim s_{n}\)\(z\)的数量,可以直接使用一个前缀和,一个后缀和预处理,这样就能\(O(n)\)算出一次修改的答案,此时如果代码写得好大概有\(45pts\)

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

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

相关文章

鱼书学习笔记

第一章 python入门 1.4.2 类 用户自己定义新的类,可以自己创建数据类型、类的函数和属性。 class 类名:def __init__(self, 参数, ...): #构造函数...def 方法名1(self, 参数, ...): #方法1__init__是进行初始化的方法…

2025年店铺装修设计施工一体化推荐榜单:服装店/化妆品店/火锅店/商场店/餐厅/健身房/美容美发/珠宝店等专业装修公司精选

2025年店铺装修设计施工一体化推荐榜单:专业装修公司深度解析 在商业空间竞争日益激烈的今天,店铺装修已不再仅仅是简单的美化工程,而是直接影响品牌形象、顾客体验和经营效益的关键因素。随着消费者对购物环境要求…

20232423 2025-2026-1 《网络与系统攻防技术》实验三实验报告

20232423 2025-2026-1 《网络与系统攻防技术》实验三实验报告20232423 2025-2026-1 《网络与系统攻防技术》实验三实验报告 目录一、实验内容 二、实验要求 三、实验环境 四、学习内容 五、实验过程5.1 查看msfvenom支…

基于Sharding-JDBC的读写分离

1.整体架构2.详细配置 2.1 pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001…

2025年空调维保/末端保养/空调清洗/水处理厂家推荐排行榜:专业维护与高效服务口碑之选

2025年空调维保/末端保养/空调清洗/水处理厂家推荐排行榜:专业维护与高效服务口碑之选 随着现代建筑环境标准的不断提升,中央空调系统的维护保养已成为保障室内空气质量、降低能耗成本的关键环节。在工业、商业及公共…

XML-RPC接口安全漏洞分析与防护

本文详细分析了XML-RPC接口安全漏洞,包括pingback.ping和system.multicall方法的滥用风险,可能导致DDoS攻击和暴力破解放大攻击,严重影响网站可用性和安全性。XML-RPC接口启用且可访问漏洞报告 摘要 网站███启用…

102302135_陈霖_作业1

102302135_陈霖_作业1第一题 核心代码与运行结果:点击查看代码 import requests from bs4 import BeautifulSoupurl = "http://www.shanghairanking.cn/rankings/bcur/2020"resp = requests.get(url) resp.e…

InnoDB 存储引擎

1. 逻辑存储结构InnoDB 的逻辑存储结构是其管理数据、支撑核心能力的底层骨架,它以 “表空间→段→区→页→行” 的五层架构,将数据从宏观存储容器到微观记录层层划分。这套结构不仅决定了数据在磁盘的存储与访问规则…

20232320 2025-2026-1 《网络与系统攻防技术》实验三实验报告

1.实验内容 主要是各种工具和命令的使用 (1)MSFVenom编码器使用,生成EXE、JAR、PHP、Python等多种格式文件 使用-e参数选择编码器,如x86/shikata_ga_nai 使用-i参数设置编码次数 使用-f参数指定输出格式 (2)Veil…

2025年中央空调主机保养/维修/清洗/维保/维护公司推荐排行榜,水处理维保,物业公司/医院/写字楼/商场中央空调主机维保公司精选

2025年中央空调主机保养/维修/清洗/维保/维护公司推荐排行榜,水处理维保,物业公司/医院/写字楼/商场中央空调主机维保公司精选 行业背景与发展趋势 中央空调系统作为现代建筑的重要组成部分,其运行效率与稳定性直接…

251025 模拟测 总结

挂得很惨,分数就不说了。 Pro.A这种题目都做不出来,我可以退役了,哇哦!其实很简单的,想复杂了。 弄一个递归,考虑每种情况——由于这个所谓 \(c\) - 好串是有一侧全是 \(c\) 还有一侧是 \(c+1\) - 好串,可以把左…

参考文献

Charles M, Ochieng S B. Strategic outsourcing and firm performance: a review of literature[J]. International Journal of Social Science and Humanities Research (IJSSHR) ISSN, 2023, 1(1): 20-29. Kocot D,…

[java 锁 02 - synchronized vs ReentrantLock ]

ReentrantLock 是 JDK 提供的手动锁(位于 java.util.concurrent.locks 包),与 synchronized 同为可重入锁,但用法和特性有显著区别。下面从 用法、核心区别、适用场景 三个维度对比,讲清楚它们的“讲究”: synch…

AI Agent 与 Agentic AI 系统:真正的区别是什么?

大多数人把这两个词混用——但一个负责执行任务,另一个旨在达成目标。教你如何区分(以及各自的适用场景)。先来澄清当下 AI 讨论中最常见的一处混淆。 你可能经常看到大家把“AI agent”和“agentic AI system”当成…

2025 年 10 月门窗十大品牌榜单揭晓,聚焦专业制造与品牌口碑的品质之选

2025 年 10 月门窗十大品牌榜单正式揭晓,该榜单由中国建筑金属结构协会、全国工商联家具装饰业商会联合发布,是行业内兼具权威性与公信力的综合实力评选结果。本次评选突破传统单一性能评估框架,以《铝合金门窗》(…

[LangChain] 09.LCEL

LangChain Expression Language,是 LangChain 提供的一种声明式构建 链式 调用流程的方式。它允许开发者用 .pipe() 操作符将不同的模块(如提示模板、模型、解析器等)连接起来,形成一个完整的“链(Chain)”。 LC…

2025年饮料包装设备厂家权威推荐榜:缠膜机/吹瓶机/膜包机/杀菌机/水处理/套标机/贴标机/洗瓶机/卸垛机/旋盖机/液氮机/装箱机/灌装生产线/一条龙生产线/配件/灌装机

2025年饮料包装设备厂家权威推荐榜:缠膜机/吹瓶机/膜包机/杀菌机/水处理/套标机/贴标机/洗瓶机/卸垛机/旋盖机/液氮机/装箱机/灌装生产线/一条龙生产线/配件/灌装机 行业背景与发展趋势 饮料包装设备行业作为食品工业…

算法与数据结构 9 - 重链剖分

引言 尽管有些题会卡重链剖分,但它仍是一种强大的树上问题处理工具。 在许多资料中,『树链剖分』默认指重链剖分,因为它用得最多。本文明确区分『重链剖分』和『树链剖分』。 重链剖分 定义 本文中『树』默认为有根…

2025 年 10 月 AI 写标书系统最新推荐,技术实力与市场口碑深度解析

招投标领域数字化转型加速推动 AI 写标书系统成为企业核心竞争力工具,为破解选型难题,招标投标协会联合 AI 办公技术创新联盟于 2025 年第三季度启动权威测评。本次测评覆盖 42 家主流品牌,横跨政府采购、工程建设等…

AI浏览器comet拉新,一单20美元(附详细教程)

AI浏览器comet拉新,一单20美元(附详细教程)1. Comet浏览器 Perplexity出的AI浏览器Comet,最近在和OpenAI打仗,这种大厂博弈期间,普通用户是最大收益者,最近搞了一波付费拉新活动: 我们先邀请用户注册Comet,并…