NOIP2024 前集训:多校A层冲刺NOIP2024模拟赛26
1.初中信息奥赛模拟测试2.2024初三年前集训测试13.2024初三年后集训模拟测试34.2024初三年后集训模拟测试25.2024初三年后集训模拟测试16.初三奥赛模拟测试37.初三奥赛模拟测试28.初三奥赛模拟测试19.2024初三年后集训模拟测试410.初三奥赛模拟测试411.初三奥赛模拟测试512.2024暑假集训测试113.2024暑假集训测试214.2024暑假集训测试315.2024暑假集训测试416.2024暑假集训测试517.2024暑假集训测试618.2024暑假集训测试719.2024暑假集训测试820.2024暑假集训测试921.2024暑假集训测试1022.2024暑假集训测试1123.2024暑假集训测试1224.2024暑假集训测试1325.2024暑假集训测试1426.2024暑假集训测试1527.2024暑假集训测试1628.2024暑假集训测试1729.欢欢乐乐赛赛30.2024暑假集训测试1831.2024暑假集训测试1932.2024暑假集训测试2033.2024暑假集训测试2134.2024暑假集训测试2235.2024暑假集训测试2336.2024暑假集训测试2437.2024暑假集训测试2538.2024暑假集训测试26(发烧记)39.2024暑假集训测试2840.2024暑假集训测试2941.2024暑假集训测试3042.2024暑假集训测试3143.CSP2024 前集训:多校A层冲刺NOIP2024模拟赛0344.CSP2024 前集训:csp-s模拟945.CSP2024 前集训:csp-s模拟1046.CSP2024 前集训:多校A层冲刺NOIP2024模拟赛0447.CSP2024 前集训:多校A层冲刺NOIP2024模拟赛0548.CSP2024 前集训:多校A层冲刺NOIP2024模拟赛0649.CSP2024 前集训:多校A层冲刺NOIP2024模拟赛0750.CSP2024 前集训:csp-s模拟1151.CSP2024 前集训:多校A层冲刺NOIP2024模拟赛0852.CSP2024 前集训:多校A层冲刺NOIP2024模拟赛0953.CSP2024 前集训:多校A层冲刺NOIP2024模拟赛1054.CSP2024 前集训:csp-s模拟1255.CSP2024 前集训:多校A层冲刺NOIP2024模拟赛1156.CSP2024 前集训:多校A层冲刺NOIP2024模拟赛1257.NOIP2024 前集训:NOIP2024加赛 158.NOIP2024 前集训:多校A层冲刺NOIP2024模拟赛1859.NOIP2024 前集训:NOIP2024加赛 260.NOIP2024 前集训:多校A层冲刺NOIP2024模拟赛1961.NOIP2024 前集训:NOIP2024加赛 462.NOIP2024 前集训:多校A层冲刺NOIP2024模拟赛2163.NOIP2024 前集训:多校A层冲刺NOIP2024模拟赛2064.NOIP2024 前集训:NOIP2024加赛 3(欢乐赛)65.NOIP2024 前集训:MX 炼石计划 NOIP 模拟赛 2066.NOIP2024 前集训:NOIP2024加赛 5(兼假期闲话)67.NOIP2024 前集训:多校A层冲刺NOIP2024模拟赛2468.NOIP2024 前集训:NOIP2024加赛 669.NOIP2024 前集训:多校A层冲刺NOIP2024模拟赛2570.NOIP2024 前集训:【MX-S7】梦熊 NOIP 2024 模拟赛 3 & SMOI Round 2(同步赛)71.NOIP2024 前集训:MX 炼石计划 NOIP 模拟赛 23
72.NOIP2024 前集训:多校A层冲刺NOIP2024模拟赛26
73.NOIP2024 前集训:NOIP2024加赛 874.NOIP2024 前集训:多校A层冲刺NOIP2024模拟赛 27 终结篇前言
music
《看得最远的地方》 你是第一个发现我 越面无表情越是心里难过 所以当我不肯落泪地颤抖 你会心疼的抱我在胸口 你比谁都还了解我 内心的渴望比表面来得多 所以当我跌断翅膀的时候 你不扶我但陪我学忍痛 我要去看得最远的地方 和你手舞足蹈聊梦想 像从来没有失过望受过伤 还相信敢飞就有天空那样 我要在看得最远的地方 披第一道曙光在肩膀 被泼过太冷的雨滴和雪花 更坚持微笑要暖得像太阳 你比谁都还了解我 内心的渴望比表面来得多 所以当我跌断翅膀的时候 你不扶我但陪我学忍痛 我要去看得最远的地方 和你手舞足蹈聊梦想 像从来没有失过望受过伤 还相信敢飞就有天空那样 我要在看得最远的地方 披第一道曙光在肩膀 被泼过太冷的雨滴和雪花 更坚持微笑要暖得像太阳 有时候觉得我们很不一样 你能看见我看不到的地方 有时候又觉得我们很像 都爱仰起头不听命运的话 我要去看得最远的地方 和你手舞足蹈聊梦想 像从来没有失过望受过伤 还相信敢飞就有天空那样 我要在看得最远的地方 披第一道曙光在肩膀 被泼过太冷的雨滴和雪花 更坚持微笑要暖得像太阳
今天是拉开座位完全断网并强制使用 windows 打的,用局长 long long time ago 放在 ftp 上的虚拟机,我去不知道为啥那么“好用”,蚌埠煮了。
然后下虚拟机耽误了好长时间……
T1 又放贪心,丫的小样例没过我怎么敢测大样例的?大样例过了?我去那我做法是不是假的为啥小样例过不去……
之后做 T2,因为 T1 没过动不动回去看……
赛后看题解发现 T1 是对的,但我忘记算他连父亲那条边了……
昨天推了首毛不易的歌,所以【数据删除】了,后来发现太唐了不可能写完,就咕着吧,刚才又看了别人的【数据删除】,有点震撼,更多的是害怕,这种网文中才能看到的东西竟然会在身边的人身上发生,而我连想象的机会都没有,越发感到自己的卑微。
明天还有模拟赛,打了没啥问题,但我后天不想打,想打打板子,不知道能不能商量一下,huge 不是说可以在三场里选一场不打吗?
T1 随机游走
是道贪心,考虑临项交换(好吧我之前不知道这玩意叫这名字),发现
点击查看代码
#include<bits/stdc++.h> #define ll long long #define endl '\n' using namespace std; const int N=5e5+10; template<typename Tp> inline void read(Tp&x) { x=0;register bool z=true; register char a=getchar_unlocked(); for(;!isdigit(a);a=getchar_unlocked()) if(a=='-') z=0; for(;isdigit(a);a=getchar_unlocked()) x=(x<<1)+(x<<3)+(a^48); x=(z?x:~x+1); } template<typename T,typename ...Tp> inline void read(T &x,Tp &...y){read(x);read(y...);} template<typename Tp> inline void wt(Tp x){if(x>9)wt(x/10);putchar_unlocked((x%10)+'0');} template<typename Tp> inline void write(Tp x){if(x<0)putchar_unlocked('-'),x=~x+1;wt(x);} template<typename T,typename ...Tp> inline void write(T x,Tp ...y){write(x);putchar_unlocked(' ');write(y...);} int n,c[N],w[N],dis[N],sum[N]; ll ans,tim; vector<int>e[N]; inline void dfs1(int x) { dis[x]=c[x],sum[x]=w[x]; for(int y:e[x]) dfs1(y),dis[x]+=dis[y],sum[x]+=sum[y]; } inline void dfs2(int x) {ans+=tim*w[x]; for(int y:e[x]) tim+=c[y],dfs2(y);} signed main() { freopen("walk.in","r",stdin),freopen("walk.out","w",stdout); read(n); for(int i=2,fa;i<=n;i++) read(fa,c[i]),e[fa].push_back(i); for(int i=1;i<=n;i++) read(w[i]); dfs1(1); for(int i=1;i<=n;i++) sort(e[i].begin(),e[i].end(),[&](int x,int y){return 1ll*dis[x]*sum[y]<1ll*dis[y]*sum[x];}); dfs2(1),write(ans); }
T2 分发奖励
类似线段树分治到一个节点就把贡献加进去,出来就撤销,但这题本来就在树上所以直接跑就好,用线段树维护最小值个数。
点击查看代码
#include<bits/stdc++.h> #define ll long long #define endl '\n' #define sort stable_sort #define mid (l+r>>1) #define ls (mid<<1) #define rs (mid<<1|1) using namespace std; const int N=5e5+10; template<typename Tp> inline void read(Tp&x) { x=0;register bool z=true; register char a=getchar_unlocked(); for(;!isdigit(a);a=getchar_unlocked()) if(a=='-') z=0; for(;isdigit(a);a=getchar_unlocked()) x=(x<<1)+(x<<3)+(a^48); x=(z?x:~x+1); } template<typename T,typename ...Tp> inline void read(T &x,Tp &...y){read(x);read(y...);} template<typename Tp> inline void wt(Tp x){if(x>9)wt(x/10);putchar_unlocked((x%10)+'0');} template<typename Tp> inline void write(Tp x){if(x<0)putchar_unlocked('-'),x=~x+1;wt(x);} template<typename T,typename ...Tp> inline void write(T x,Tp ...y){write(x);putchar_unlocked(' ');write(y...);} int n,m,tot,in[N],out[N],dep[N],ans[N],sum[N<<1],val[N<<1],add[N<<1]; vector<int>e[N]; set<int>s[N]; inline void dfs(int x) {in[x]=++tot; for(int y:e[x]) dep[y]=dep[x]+1,dfs(y); out[x]=tot;} inline void pushup(int p,int l,int r) { if(val[ls]<val[rs]) val[p]=val[ls],sum[p]=sum[ls]; else if(val[ls]>val[rs]) val[p]=val[rs],sum[p]=sum[rs]; else val[p]=val[ls],sum[p]=sum[ls]+sum[rs]; } inline void build(int p,int l,int r) { if(l==r) return sum[p]=1,void(); build(ls,l,mid),build(rs,mid+1,r),pushup(p,l,r); } inline void spread(int p,int l,int r) {val[ls]+=add[p],add[ls]+=add[p],val[rs]+=add[p],add[rs]+=add[p],add[p]=0;} inline void change(int p,int l,int r,int vl,int vr,int d) { if(vl<=l&&vr>=r) return val[p]+=d,add[p]+=d,void(); if(add[p]) spread(p,l,r); if(vl<=mid) change(ls,l,mid,vl,vr,d); if(vr>mid) change(rs,mid+1,r,vl,vr,d); pushup(p,l,r); } inline void solve(int x) { for(int y:s[x]) change(1,1,n,in[y],out[y],1); ans[x]=val[1]?n-1:max(0,n-1-sum[1]); for(int y:e[x]) solve(y); for(int y:s[x]) change(1,1,n,in[y],out[y],-1); } signed main() { freopen("reward.in","r",stdin),freopen("reward.out","w",stdout); read(n,m); for(int i=2,x;i<=n;i++) read(x),e[x].push_back(i); dfs(1),build(1,1,n); for(int i=1,x,y;i<=m;i++) { read(x,y); if(dep[x]>dep[y]) swap(x,y); if(in[x]<=in[y]&&out[x]>=in[y]) s[x].insert(x); else s[x].insert(x),s[y].insert(y),s[x].insert(y),s[y].insert(x); } solve(1); for(int i=1;i<=n;i++) write(ans[i]),putchar_unlocked(' '); }
T3 卡路里
好像比前两题简单,赛时还没看,直接单调栈加二维查分就可以了。
点击查看代码
#include<bits/stdc++.h> #define ll long long #define endl '\n' #define sort stable_sort using namespace std; const int N=210,M=5010; template<typename Tp> inline void read(Tp&x) { x=0;register bool z=true; register char a=getchar_unlocked(); for(;!isdigit(a);a=getchar_unlocked()) if(a=='-') z=0; for(;isdigit(a);a=getchar_unlocked()) x=(x<<1)+(x<<3)+(a^48); x=(z?x:~x+1); } template<typename T,typename ...Tp> inline void read(T &x,Tp &...y){read(x);read(y...);} template<typename Tp> inline void wt(Tp x){if(x>9)wt(x/10);putchar_unlocked((x%10)+'0');} template<typename Tp> inline void write(Tp x){if(x<0)putchar_unlocked('-'),x=~x+1;wt(x);} template<typename T,typename ...Tp> inline void write(T x,Tp ...y){write(x);putchar_unlocked(' ');write(y...);} int n,m,l[M],r[M],sta[M],a[N][M]; ll ans=-1e9,d[M],sum[M][M]; signed main() { freopen("calorie.in","r",stdin),freopen("calorie.out","w",stdout); read(n,m); for(int i=2;i<=m;i++) read(d[i]),d[i]+=d[i-1]; for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) read(a[j][i]); for(int i=1;i<=n;i++) { sta[0]=0; for(int j=1,top=0;j<=m;j++) { while(top&&a[i][sta[top]]<=a[i][j]) top--; l[j]=sta[top]+1,sta[++top]=j; } sta[0]=m+1; for(int j=m,top=0;j;j--) { while(top&&a[i][sta[top]]<a[i][j]) top--; r[j]=sta[top]-1,sta[++top]=j; } for(int j=1;j<=m;j++) { sum[l[j]][j]+=a[i][j],sum[j+1][r[j]+1]+=a[i][j]; sum[j+1][j]-=a[i][j],sum[l[j]][r[j]+1]-=a[i][j]; } } for(int i=1;i<=m;i++) for(int j=1;j<=m;j++) sum[i][j]+=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]; for(int i=1;i<=m;i++) for(int j=i;j<=m;j++) ans=max(ans,sum[i][j]-d[j]+d[i]); write(ans); }
T4 传话游戏
咕咕咕。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律