『模拟赛』暑假集训CSP提高模拟9
.
保龄,不放出来丢人了。
A. 大众点评
手贱 -100pts。
看到交互被吓了一跳,看完题面还是很懵,直到看了附件里给的样例代码。
相当于只写一部分代码,有些函数给你封好了能直接用。
思路还是很容易的,用两个随便什么容器存一下可能的最大值和最小值,我用的 set,最后一个一个查就出答案了,在
但是样例程序里没有头文件,只有一个 #include "ramen.h"
,开始还没注意到,后来注意到了,把万能头删了,mac 上也试运行不了,所以就交了,然后 100pts -> 0pts。
还有为啥我赛后过了不显示啊。
点击查看代码
#include<bits/stdc++.h>
#include"ramen.h"
using namespace std;
void Ramen(int N)
{
set<int>mx,mn;
for(int i=0;i+1<=N-1;i+=2)
{
if(Compare(i,i+1)==1) mx.insert(i),mn.insert(i+1);
else mx.insert(i+1),mn.insert(i);
}
if(N&1) mx.insert(N-1),mn.insert(N-1);
while(mx.size()>1)
{
set<int>::iterator a,b;
a=mx.begin();mx.erase(a);
b=mx.begin();mx.erase(b);
if(Compare(*a,*b)==1) mx.insert(*a);
else mx.insert(*b);
}
while(mn.size()>1)
{
set<int>::iterator a,b;
a=mn.begin();mn.erase(a);
b=mn.begin();mn.erase(b);
if(Compare(*a,*b)==1) mn.insert(*b);
else mn.insert(*a);
}
set<int>::iterator a,b;
a=mx.begin(),b=mn.begin();
Answer(*b,*a);
}
B. 录取查询
原[ABC285F] Substring of Sorted String
赛时想到线段树但没多想,因为确实还没见过这种存储查询字符有关的题。
于是打 20pts 暴力,(没想到成了这场为一的 20pts思路是存一下每个字母总共出现的次数,然后找区间的时候判断字符更改到没到该字符出现的总数即可。
正解是线段树维护区间是否递增,两端字母和字母数量。
C. 精准打击
确实精准打击到我了不是吗?再次手贱 -100pts。
正解赛时通过找二叉树的性质找到了。先预处理出来深度为
关于为什么又挂了
这个新题库不是可以自测🐴,开始在上面测的时候发现 CE 了,直接就在上面改完就交了。
后来再看本地的代码时发现了唐错,然后就在本地的代码上改了,没测,直接交了。
点击查看代码
#include<bits/stdc++.h>
#define fo(x,y,z) for(register int (x)=(y);(x)<=(z);(x)++)
#define fu(x,y,z) for(register int (x)=(y);(x)>=(z);(x)--)
using namespace std;
typedef long long ll;
#define lx ll
inline lx qr()
{
char ch=getchar();lx x=0,f=1;
for(;ch<'0'||ch>'9';ch=getchar())if(ch=='-')f=-1;
for(;ch>='0'&&ch<='9';ch=getchar())x=(x<<3)+(x<<1)+(ch^48);
return x*f;
}
#undef lx
#define qr qr()
const int Ratio=0;
const int N=2e5+5;
ll d,k,x;
ll pf[N];
namespace Wisadel
{
void Wwork2()
{
pf[0]=1;ll ans=1e18;
fo(i,1,d) pf[i]=1ll*pf[i-1]*k+1;// 深i层总共
fo(i,0,d)
{
if(pf[i]>=x)
{
ll sheng=pf[i]-x,anss=0;
if(i!=d) anss=1;
int j=i-1;
while(sheng)
{
// cout<<cha<<' '<<j<<endl;
anss+=sheng/pf[j];
sheng%=pf[j],j--;
}
ans=min(ans,anss);
}
}
printf("%lld\n",ans);
}
short main()
{
// freopen(".in","r",stdin),freopen(".out","w",stdout);
int T=qr;
while(T--)
{
d=qr,k=qr,x=qr;
Wwork2();
}
return Ratio;
}
}
int main(){return Wisadel::main();}
D. 你画我猜
原P4459 [BJOI2018] 双人猜数游戏 咋又是道黑。
提交答案题。再再次手贱 -16pts。
其实一开始做完 T1 先看了看后三道题,发现这是个提交答案题,突然想到牛老师在游记里写的要给这种题准备点时间多跑会,果断开始想暴力。
结果发现暴力还不好想,每种情况都对应着好几种情况,就好像让一个不懂的人学多元拉反,然后发现要先看普通拉反,然后发现要先看 Laurent 级数,然后发现要先看生成函数。。
于是打了四个测试点就写上去摆了。
关于这又是怎么挂分的
感觉自己有点强迫症,就是有的题只用把一部分信息读进去之后就知道答案了,但是就是想都读进去再输出。
这个 b 题题面里给了个 s 作下界,还要输入一个字符串,那么直接定义了两个 s,本地 vscode 没报错还,上传的时候因为样例的 id 都是 0 觉得没啥好测的就直接交了,再次 -16pts。
末
这次真成挂分大王了,挂的分都够我上 Rank6 了。
好像每次这种长假的模拟赛都得大寄一场才行,寒假的 inline qr()
还历历在目。。
这次上了两种新题型,也算是学到了点,起码下次知道交互题也得打头文件了。
感觉有部分原因是昨天打好了今天浮躁导致的,下次不玩原了。
完结撒花~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探