『模拟赛』CSP-S加赛1
1.模拟赛寄录-高一下二调22.高一高考集训欢乐赛3.『模拟赛』CSP提高组模拟14.『比赛记录』【LGR-193】洛谷 7 月月赛 I×ABC 3625.『模拟赛』暑假集训CSP提高模拟16.『模拟赛』暑假集训CSP提高模拟47.『模拟赛』暑假集训CSP提高模拟58.『模拟赛』暑假集训CSP提高模拟69.『模拟赛』暑假集训CSP提高模拟810.『模拟赛』暑假集训CSP提高模拟911.『模拟赛』暑假集训CSP提高模拟1012.『模拟赛』暑假集训CSP提高模拟1113.『模拟赛』暑假集训CSP提高模拟1214.『模拟赛』暑假集训CSP提高模拟1315.『模拟赛』暑假集训CSP提高模拟1416.『模拟赛』暑假集训CSP提高模拟1517.『模拟赛』暑假集训CSP提高模拟1718.『模拟赛』暑假集训CSP提高模拟1819.『模拟赛』暑假集训CSP提高模拟1920.『模拟赛』暑假集训CSP提高模拟2021.『模拟赛』暑假集训CSP提高模拟2122.『模拟赛』暑假集训CSP提高模拟2223.『模拟赛』暑假集训CSP提高模拟2324.『模拟赛』暑假集训CSP提高模拟2425.『模拟赛』暑假集训CSP提高模拟2526.『模拟赛』暑假集训CSP提高模拟2627.『模拟赛』暑假集训CSP提高模拟27 || The End28.『模拟赛』CSP-S模拟129.『模拟赛』CSP-S模拟2
30.『模拟赛』CSP-S加赛1
31.『模拟赛』CSP-S加赛232.『模拟赛』CSP-S模拟333.『比赛记录』ABC 37234.『模拟赛』CSP-S模拟435.『模拟赛』冲刺CSP联训模拟136.『模拟赛』CSP-S模拟537.『模拟赛』CSP-S模拟638.『模拟赛』CSP-S模拟739.『模拟赛』CSP-S模拟1040.『模拟赛』CSP-S模拟1141.『模拟赛』CSP-S模拟1242.『模拟赛』多校A层冲刺NOIP2024模拟赛0143.『模拟赛』冲刺CSP联训模拟244.『模拟赛』多校A层冲刺NOIP2024模拟赛0345.『模拟赛』多校A层冲刺NOIP2024模拟赛0446.『模拟赛』多校A层冲刺NOIP2024模拟赛0547.『模拟赛』多校A层冲刺NOIP2024模拟赛0648.『模拟赛』多校A层冲刺NOIP2024模拟赛0749.『模拟赛』多校A层冲刺NOIP2024模拟赛0850.『模拟赛』多校A层冲刺NOIP2024模拟赛0951.『模拟赛』信友队2024CSP-S第二轮(复赛)模拟赛52.『模拟赛』多校A层冲刺NOIP2024模拟赛1053.『模拟赛』多校A层冲刺NOIP2024模拟赛1154.『模拟赛』多校A层冲刺NOIP2024模拟赛1255.『模拟赛』多校A层冲刺NOIP2024模拟赛1556.『模拟赛』多校A层冲刺NOIP2024模拟赛1657.『模拟赛』多校A层冲刺NOIP2024模拟赛1758.『模拟赛』NOIP2024加赛159.『模拟赛』多校A层冲刺NOIP2024模拟赛1860.『模拟赛』NOIP2024加赛261.『模拟赛』多校A层冲刺NOIP2024模拟赛1962.『模拟赛』多校A层冲刺NOIP2024模拟赛2063.『模拟赛』NOIP2024加赛364.『模拟赛』NOIP2024加赛465.『模拟赛』多校A层冲刺NOIP2024模拟赛2166.『模拟赛』多校A层冲刺NOIP2024模拟赛22(炼石计划20)67.『模拟赛』NOIP2024加赛568.闲话 11.17(附『模拟赛』多校A层冲刺NOIP2024模拟赛23)69.『模拟赛』NOIP2024加赛670.『模拟赛』多校A层冲刺NOIP2024模拟赛24(更新 T2 详解)71.『模拟赛』多校A层冲刺NOIP2024模拟赛2572.『模拟赛』NOIP2024加赛773.『模拟赛』多校A层冲刺NOIP2024炼石计划2374.『模拟赛』【MX-S7】梦熊NOIP2024模拟赛375.『模拟赛』多校A层冲刺NOIP2024模拟赛2676.『模拟赛』NOIP2024加赛877.『模拟赛』多校A层冲刺NOIP2024模拟赛27终结篇Rank
一般
A. 小W与伙伴招募
仔细想了想,发现是贪心题。
赛时想了跟正解完全有些不太一样的做法,被顶针说假了,但其实开了 long long
能有 80pts。后来发现如果思路正确打
《对于 60% 的数据》
考虑正解的贪法,每天相当于将第 我们可以考虑输出前缀和 我们考虑用线段树来维护这个库存,线段树上二分来解决查询,这样就做到了
点击查看代码
#include<bits/stdc++.h>
#define fo(x,y,z) for(register ll (x)((y));(x)<=(z);(x)++)
#define fu(x,y,z) for(register ll (x)((y));(x)>=(z);(x)--)
using namespace std;
typedef __int128 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;
const int mod=1e9+9;
int n,m;
int c[N];
long long ans;
ll numb[N],sumcos[N];
ll num[N<<2],sum[N<<2],tag[N<<2],cle[N<<2];
struct rmm
{
ll a,b;
}b[N];
bool cmp(rmm A,rmm B)
{
if(A.a!=B.a) return A.a<B.a;
return A.b>B.b;
}
namespace Wisadel
{
#define ls (rt<<1)
#define rs (rt<<1|1)
#define mid ((l+r)>>1)
void Wpushup(int rt)
{
num[rt]=num[ls]+num[rs];
sum[rt]=sum[ls]+sum[rs];
}
void Wpushdown(int rt,int l,int r)
{
num[ls]+=tag[rt]*(numb[mid]-numb[l-1]);
num[rs]+=tag[rt]*(numb[r]-numb[mid]);
sum[ls]+=tag[rt]*(sumcos[mid]-sumcos[l-1]);
sum[rs]+=tag[rt]*(sumcos[r]-sumcos[mid]);
tag[ls]+=tag[rt],tag[rs]+=tag[rt];
tag[rt]=0;
}
void Wclerr(int rt)
{
num[ls]=num[rs]=0;
sum[ls]=sum[rs]=0;
cle[ls]=cle[rs]=1;
tag[ls]=tag[rs]=0;
cle[rt]=0;
}
void Wupd(int rt,int l,int r,int k)
{
if(k>0)
{
num[rt]+=numb[r]-numb[l-1];
sum[rt]+=sumcos[r]-sumcos[l-1];
tag[rt]++;
}
else
{
num[rt]=sum[rt]=tag[rt]=0;
cle[rt]=1;
}
}
ll Wq(int rt,int l,int r,int k)
{
if(l==r)
{
num[rt]-=k,sum[rt]-=b[l].a*k;
return b[l].a*k;
}
if(cle[rt]) Wclerr(rt);
if(tag[rt]) Wpushdown(rt,l,r);
ll res=0;
if(k<=num[ls])
{
res+=Wq(ls,l,mid,k);
Wpushup(rt);
return res;
}
res+=sum[ls]+Wq(rs,mid+1,r,k-num[ls]);
Wupd(ls,l,mid,-1);
Wpushup(rt);
return res;
}
short main()
{
freopen("a.in","r",stdin),freopen("a.out","w",stdout);
n=qr,m=qr;
fo(i,1,n) c[i]=qr;
fo(i,1,m) b[i].a=qr,b[i].b=qr,b[i].b=(b[i].b==-1?1e12:b[i].b);
sort(b+1,b+1+m,cmp);
fo(i,1,m)
{
numb[i]=numb[i-1]+b[i].b;
sumcos[i]=sumcos[i-1]+1ll*b[i].a*b[i].b;
if(b[i].b==1e12){m=i;break;}
}
fo(i,1,n) Wupd(1,1,m,1),ans+=Wq(1,1,m,c[i]);
printf("%lld\n",ans);
return Ratio;
}
}
int main(){return Wisadel::main();}
B. 小W与制胡串谜题
签,但想复杂了所以没签上。
一个排序就解决了,不过看到第二个样例发现直接比较不太行,像 bca
和 bc
,于是我就想到了如果存在前缀关系,判断长串后缀与短串的大小,然后由于不清楚 cmp 的比较关系返回值导致搞错了只有 55pts。实际上比较
点击查看代码
#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 int
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=5e5+5;
const int mod=1e9+9;
int n;
string s[N];
bool cmp(string s1,string s2){return string(s1+s2)<string(s2+s1);}
namespace Wisadel
{
short main()
{
freopen("a.in","r",stdin),freopen("a.out","w",stdout);
n=qr;
fo(i,1,n) cin>>s[i];
sort(s+1,s+1+n,cmp);
fo(i,1,n) cout<<s[i];
return Ratio;
}
}
int main(){return Wisadel::main();}
C. 小W与屠龙游戏
由于之前学过博弈论所以看出来了是 Nim Game 的变种,因为当时不会线性基就没看 Nim-k 的实现,后面补上。
末
突然的考试,有点慌其实。
此 W 非彼 W,差评
打到 1.5h 左右觉得 200pts 是大众分,于是开始被 T3 折磨,想到结束也没想出点啥,感觉学东西学一半就很难受。
看来大家都挂了不少分,致敬大黄首次不挂分反向挂分模拟赛!
完结撒花~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探